Recent Posts

Linux cgroup资源隔离各个击破之 - io隔离

2 minute read

背景 Linux Cgroup blkio子系统的用法. blkio子系统支持的两种IO隔离策略 1. (Completely Fair Queuing 完全公平队列)cfq io调度策略,支持按权重分配IO处理的时间片,从而达到IO在各资源组直接的调度和限制的目的,权重取值范围100-1000。 通过以下两...

B-Tree和B+Tree

1 minute read

背景 本文介绍一下索引结构b-tree, b+tree. 部分内容转载自互联网 https://en.wikipedia.org/wiki/B-tree https://en.wikipedia.org/wiki/B%2B_tree B-Tree 为了描述B-Tree,首先定义一条数据记录为一个二元组[k...

从尿检取中段谈数据库压测

less than 1 minute read

背景 想必大家都参加过一年一次的体检,在进行尿液体检的时候,医生会告诉你要留中段尿!要留中段尿!要留中段尿!重要的事情说三遍。 为什么尿液化验要取中段尿呢? 因为前段尿和后段尿容易被污染,所以在进行尿常规和尿培养检查时都建议留取中段尿。 我们在做数据库压测时,也会遇到类似的情况,比如一个持续数天的TPCC压...

Linux中进程内存RSS与cgroup内存的RSS统计 - 差异

5 minute read

背景 转载一篇关于进程内存计算和CGROUP内存计算差异的文章 http://hustcat.github.io/memory-usage-in-process-and-cgroup/ 在Linux内核,对于进程的内存使用与Cgroup的内存使用统计有一些相同和不同的地方。 进程的内存统计 一般来说,业务...

精确度量Linux下进程占用多少内存的方法

7 minute read

背景 在Linux中,要了解进程的信息,莫过于从 proc 文件系统中入手去看。 proc的详细介绍,可以参考内核文档的解读,里面有很多内容 yum install -y kernel-doc cat /usr/share/doc/kernel-doc-3.10.0/Documentation/files...

PostgreSQL on ECS 横向版本TPCB性能测试

5 minute read

背景 本文对比的是PostgreSQL 9.4, 9.5, 9.6, 以及某基于9.4的国产数据库在ECS上的性能。 硬件环境和搭配 Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz 32核 128G 内存 500G 高效本地SSD , 15000 IOPS ...

PostgreSQL ECPG ifdef include等预处理用法

2 minute read

背景 PostgreSQL 社区版本的ecpg在一些预处理的用法上和Oracle的PROC有一些不一样的地方,使用者需要注意。 例如社区版本的ecpg不支持c里面使用的#ifdef或者#ifndef这样的预处理语法,需要用其他写法来替代。 所以你如果使用#ifdef这样的写法在.pgc里面,在使用ecpg编译...

PostgreSQL 函数稳定性与constraint_excluded分区表逻辑推理过滤的CASE

2 minute read

背景 PostgreSQL 函数稳定性我在以前写过一些文章来讲解,而且在PG的优化器中,也有大量的要用函数稳定性来做出优化选择的地方。 http://www.tudou.com/programs/view/p6E3oQEsZv0/ 本文要分享的这个CASE也和函数稳定性有关,当我们在使用分区表时,Postgr...

PostgreSQL ECPG 开发 DEMO

2 minute read

背景 ECPG 是在C中嵌套SQL的一种用法。 写好pgc文件后,需要使用ecpg程序将pgc编程成C文件来使用。 详细的用法请参考 https://www.postgresql.org/docs/9.5/static/ecpg.html ecpg的用法, 以EXEC SQL开头表示后面是SQL写法...

EDB PPAS(Oracle 兼容版)的坑 不兼容PostgreSQL一例

less than 1 minute read

背景 这样一段正常的兼容ORACLE的代码,在使用社区版本的psql连接到PPAS时,执行异常 postgres=> create table about_we (id int, info text); create sequence SEQ_ABOUT_WE_ID; postgres=>...