PostgreSQL 并行计算 在 xfs, ext4 下的表现

关于PostgreSQL 9.6 基于CPU并行计算的文章,之前写过几篇,请参考

本文主要是对EXT4和XFS进行测试比较,两者在并行度上的性能差异。
文件系统的格式化参数以及挂载参数如下
XFS

mkfs.xfs -f -b size=4096 -l logdev=/dev/dfc1,size=2047868928,sunit=16 -d agsize=536862720 /dev/dfc2

/dev/dfc2 /u03 xfs defaults,allocsize=16M,inode64,nobarrier,nolargeio,logbsize=262144,noatime,nodiratime,swalloc,logdev=/dev/dfc1 0 0

EXT4

mkfs.ext4 /dev/dfc1

e2label /dev/dfc1 u03

LABEL=u03               /u03            ext4            defaults,noatime,nodiratime,nodelalloc,barrier=0,data=writeback 0 0

测试数据和 一样, 90GB。
xfs
测试发现直到22个并发,性能才开始出现拐点,并且在64个并发时回落没有EXT4那么明显。

postgres=# set max_parallel_degree =64 ;
postgres=# select count(*) from t_bit2 ;
   count
------------
 1600000000
(1 row)
Time: 18310.130 ms

postgres=# set max_parallel_degree =32;
postgres=# select count(*) from t_bit2 ;
   count
------------
 1600000000
(1 row)
Time: 21144.919 ms

postgres=# set max_parallel_degree =17;
postgres=# select count(*) from t_bit2 ;
   count
------------
 1600000000
(1 row)
Time: 8905.510 ms

postgres=# set max_parallel_degree =21;
postgres=# select count(*) from t_bit2;
   count
------------
 1600000000
(1 row)
Time: 7583.344 ms

ext4
测试发现直到17个并发,性能开始出现拐点。

postgres=# set max_parallel_degree =64;
postgres=# select count(*) from t_bit2 ;
   count
------------
 1600000000
(1 row)
Time: 32580.853 ms

postgres=# set max_parallel_degree =32;
postgres=# select count(*) from t_bit2 ;
   count
------------
 1600000000
(1 row)
Time: 30209.980 ms

postgres=# set max_parallel_degree =17;
postgres=# select count(*) from t_bit2 ;
   count
------------
 1600000000
(1 row)
Time: 9313.369 ms

从测试结果来看,XFS要优于EXT4,主要体现在可以做到更高的并发,以及更好的性能。
测试环境是centos 6,如果是7的话,XFS表现可能还会更好。

xfs的组策略,对并行的写I/O有较大帮助(如可以在多个组里面并行分配block和inode),格式化时的agcount选项。
所以, XFS对于高并发的写入优势会更加明显,例如单机多实例,或者Greenplum,都是典型的应用场景。

分配组
XFS文件系统内部被分为多个“分配组”,它们是文件系统中的等长线性存储区。
每个分配组各自管理自己的inode和剩余空间。文件和文件夹可以跨越分配组。
这一机制为XFS提供了可伸缩性和并行特性 —— 多个线程和进程可以同时在同一个文件系统上执行I/O操作。
这种由分配组带来的内部分区机制在一个文件系统跨越多个物理设备时特别有用,使得优化对下级存储部件的吞吐量利用率成为可能。

参考
http://baike.baidu.com/view/1222157.htm
man xfs

agcount=value
This is used to specify the number of allocation groups.
The data section of the filesystem is divided into allocation groups to improve the performance of XFS. More allocation groups imply that more  parallelism  can  be  achieved  when  allocating blocks and inodes.
The minimum allocation group size is 16 MiB;
the maximum size is just under 1 TiB.
The data section of the filesystem is divided into value allocation groups (default value is scaled automatically based on the underlying device size).

agsize=value
This is an alternative to using the agcount suboption.
The value is the desired size of the allocation group expressed in bytes (usually using the m or g suffixes).
This value must be a  multiple  of  the filesystem  block  size,  and  must  be  at least 16MiB, and no more than 1TiB, and may be automatically adjusted to properly align with the stripe geometry.
The agcount and agsize suboptions are mutually exclusive.
时间: 2024-12-20 16:33:59

PostgreSQL 并行计算 在 xfs, ext4 下的表现的相关文章

PostgreSQL 运行在 FreeBSD 和 Linux 的表现的测试数据 【已翻译100%】

今天下午我本想测试下DragonFly dports, 突然我想为什么不比较下PostgreSQL在BSD和Linux下的性能的差异. 为此我定了一些标准来比较在不同操作系统上的性能差异. 我使用相同的硬件和软件以便更准确的获得数据.这些测试是基于PGSQL9.1下的. 当我在 Debian Linux 下测试之后,结果令我非常吃惊,于是我又在其他的Linux系统做了测试, 如类Redhat的Centos6.4. 以下是我测试的一些操作系统: DragonFlyBSD 3.4.1 (Hammer

关于onchange事件在IE和FF下的表现及解决方法

 本篇文章主要是对关于onchange事件在IE和FF下的表现及解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在最近做的一个项目中,有这么一个功能点:页面上有一个checkbox,当用户选择或者取消选择该checkbox时会向后台发一个jsonp请求.当时的实现是为这个checkbox添加一个onchange事件,但结果却出人意料,为此,我深入的研究了一下,发现了onchange事件在IE和FF下的表现存在着以下问题.   问题①:在FF下,当改变checkbox的选中状态时

关于onchange事件在IE和FF下的表现及解决方法_javascript技巧

在最近做的一个项目中,有这么一个功能点:页面上有一个checkbox,当用户选择或者取消选择该checkbox时会向后台发一个jsonp请求.当时的实现是为这个checkbox添加一个onchange事件,但结果却出人意料,为此,我深入的研究了一下,发现了onchange事件在IE和FF下的表现存在着以下问题. 问题①:在FF下,当改变checkbox的选中状态时,会马上触发onchange事件.但在IE下改变checkbox的选中状态时,并不会马上出发onchange事件,而是需要等待chec

placeholder在不同浏览器下的表现及兼容方法

1.什么是placeholder? placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或输入内容)时,提示文字消失. 写法如下: 2.placeholder的浏览器兼容性和在不同浏览器下的表现 由于placeholder是html5的新属性,可想而知,仅支持html5的浏览器才支持placeholder,目前最新的firefox.chrome.safari以及ie10都支持,ie6到ie9都

PostgreSQL 并行计算tpc-h测试和优化分析

PostgreSQL 并行计算tpc-h测试和优化分析 作者 digoal 日期 2016-11-08 标签 PostgreSQL , 并行计算 , TPC-H 背景 PostgreSQL 9.6首次推出支持聚合.全表扫描.HASH JOIN.nestloop的并行计算. https://www.postgresql.org/docs/9.6/static/release-9-6.html Parallel queries (Robert Haas, Amit Kapila, David Row

段正淳的css笔记(7)-表单在各个浏览器下的表现统一

http://ued.taobao.com/blog/wp-content/uploads/2008/01/input.html 在工作之余抽了点时间写了一下这个,在ie6-ie7-ff下显示位置基本都一致了. (发现demo页面用栅格线做背景,调试还真的容易得多 .热力推荐!这个栅格是从photoshop里拷贝来的.) 这样子定义了input等标签,做提交表单的时候就不用担心ie6-ie7-ff下radio.checkbox.text等高低不平,参差不齐的状况了. 但是有一点疑惑.这样根据in

PostgreSQL 9.6 并行计算 优化器算法浅析

背景 之前写过几篇 PostgreSQL 并行计算的文章,文中并没有仔细描述PostgreSQL是如何决策并行计算,以及并行度的. 开源数据库PostgreSQL攻克并行计算难题https://yq.aliyun.com/articles/44655 PostgreSQL 并行计算 在 xfs, ext4 下的表现https://yq.aliyun.com/articles/53985 PostgreSQL 并不需要用户在SQL中使用HINT来启用并行计算,因为优化器会从成本的角度做出选择,是否

德哥的PostgreSQL私房菜 - 史上最屌PG资料合集

看完并理解这些文章,相信你会和我一样爱上PostgreSQL,并成为一名PostgreSQL的布道者. 资料不断更新中... ... 沉稳的外表无法掩饰PG炙热的内心 . 扩展阅读,用心感受PostgreSQL 内核扩展 <找对业务G点, 体验酸爽 - PostgreSQL内核扩展指南>https://yq.aliyun.com/articles/55981 <当物流调度遇见PostgreSQL - GIS, 路由, 机器学习 (狮子,女巫,魔衣橱)>https://yq.aliy

PostgreSQL 最佳实践 - 读写分离

背景 一直以来PostgreSQL数据库在scale up和scale out的方向都走得比较靠前,例如 单元化技术 oleg postgrespro的 PostgreSQL cluster,在分布式事务性能提升,选举算法方面的贡献非常大.https://github.com/postgrespro/postgres_cluster sim 他们的udr, bdr已经趋于成熟.https://2ndquadrant.com/en/resources/bdr/ 分片技术 10年前postgresq