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

zoujiaqing 投递于 2014/07/10 21:54 (共 6 段, 翻译完成于 07-28)
阅读 9956
收藏 42
3
加载中

今天下午我本想测试下DragonFly dports, 突然我想为什么不比较下PostgreSQL在BSD和Linux下的性能的差异。 为此我定了一些标准来比较在不同操作系统上的性能差异。 我使用相同的硬件和软件以便更准确的获得数据。这些测试是基于PGSQL9.1下的。

当我在 Debian Linux 下测试之后,结果令我非常吃惊,于是我又在其他的Linux系统做了测试, 如类Redhat的Centos6.4。

以下是我测试的一些操作系统:

  • DragonFlyBSD 3.4.1 (Hammer)

  • FreeBSD 9.1-p3 (UFS2+J)

  • FreeBSD 9.1-p3 (ZFS v28)

  • Debian 7: Wheezy (ext4, kernel 3.2)

  • Debian 7: Wheezy (ext4, kernel 3.2, barrier=0)

  • Centos 6.4 (ext4, kernel 2.6.32)

  • Centos 6.4 (ext4, kernel 2.6.32, nobarrier)

我是彩笔
翻译于 2014/07/21 15:48
3

对于硬件部分,我使用的是基于KVM (libvirt)系统的24G内存和一个Phenom x6 1055T 处理器。版本如下:

qemu 1.4.1-3
libvirt 1.0.5-4

    每个虚拟机都使用相同的配置:

  • 50GB 硬盘 (除了 FreeBSD)

  • 12GB 内存

  •  4核 CPU

现在测试。命令遵循: pgbench -T 60 -cX -jX

在数据库上60秒内做 pgbench 实例测试,使用X用户和X线程(一个线程一个用户)

每个数据库都是默认的配置,同时支持300个需求同时连接

我是彩笔
翻译于 2014/07/21 15:57
2

第一部分: 虚拟驱动

第一个图展示了实时事务处理量,第二个图是每秒事务出来量。

PGBench1 PGBench2

    性能测试的结果是令人吃惊的。DragonflyBSD(默认的操作系统) 的性能超过其他所有的系统,紧随其后的是FreeBSD。DragonflyBSD的性能比FreeBSD有25%的提升比Linux(s)有200%的提升!

    我们有2个Linux远远的超过其他系统,达到7000事务的处理量。如过不考虑客户端的数量还是无法超越它。曲线图是令人吃惊的统一。只有Debian 没有达到测试的终点,因为不手动修改参数Debian PostgreSQL 不能同时有100个连接

我是彩笔
翻译于 2014/07/22 10:18
1

实际上,这7000条曲线解释了ext4栅栏系统(barrier system)保护的文件系统,在PostgreSQL上性能是非常差的。在第二项测试中,我们已经对ext4添加nobarrier/barrier=0选项(通过/etc/fstab)。这个选项处理(debrid)的FS,但是它是一个非常有风险的选项。仅当你有一个磁盘阵列的 1/5/6 控制器时才去使用它。当有一个写操作在你的磁盘上完成的时候,如果你的服务器重启(例如:电力故障......),文件或者整个磁盘可能就会崩溃,并且要是处于数据库实例中,那后果将非常悲惨。

总之,我们的FreeBSD在ZFS上的工作弥补了Linux(s).也许是由于虚拟化?或者是问题出在ZFS的概念上吗?

溪边九节
翻译于 2014/07/24 22:28
1

第二部分:物理驱动器


为了验证我们的研究结果,我们意识到,同一基准的物理驱动器上。我只有保持性能与优化,除了 ZFS,必须有一个点在这种支持的比较。在这里 Centos 被删除,因为它的性能与Debian相差不多。

第一张曲线图是每1分钟的处理量:

benchpostgrereal1

第二张曲线图是每1秒的处理量:

benchpostgrereal2

DragonFlyBSD 在物理和虚拟之间的性能很接近, 我们可以说 virtio 的驱动程序非常好。Debian 有同样的问题,以每分钟 50,000 次请求。

zoujiaqing
翻译于 2014/07/25 16:02
1

有两点你要注意:

  • UFS 性能(async和noatime选项),(能提高)两倍或者三倍性能,但是你也必须同样保证是ext4(nobarrier选项

  • 通过设置sync=disabled和atime=off选项,使ZFS增加10-15左右的性能,胜过所有其他的FS及其所提供的联合性能。此外,sync=disabled选项相比于nobarrier/async选项的危险性低。

ZFS是这个物理指标的领导者。

你可以看一下下面这个精确基准数据的链接:
Benchmarks – PostGreSQL

最后,如果你为你的PostgreSQL数据库选择一个系统,使用BSD不用犹豫,即使你没有磁盘阵列控制器,你也可以选择FreeBSD(UFS)或者DragonFlyBSD(Hammer),其次再选择Linux。

感谢Emmanuel Florac和Axel Perrier为ext4 barrier选项提供精准的(数据)。

溪边九节
翻译于 2014/07/28 21:11
2
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(26)

wcrack
wcrack
freebsd是很优秀。这个不用质疑
化境
化境
无聊
littleant
littleant
看样子我视力貌似不行了
eechen
eechen

引用来自“ZeroOne”的评论

没看懂这个图的意思,
看图上的数据应该是CentOS性能最好?
还是我理解错了?

引用来自“eechen”的评论

"只有Debian 没有达到测试的终点,因为不手动修改参数Debian PostgreSQL 不能同时有100个连接。" 第一部分虚拟驱动里的Debian7(ext4,barrier=0)在100个连接以内的事务处理能力都是压着CentOS6.4(ext4,barrier=0)稳居第一的好不好. 注: "EXT4文件系统是默认开启barrier的,以便保证数据完整性,但也不可避免地会影响性能,因此如果在执行挂接(mount)命令的时候加上“nobarrier”参数,也就是执行“mount -o barrier=0”,那么性能会有明显提升。"

引用来自“ZeroOne”的评论

牛银。。。 听课了。

引用来自“eechen”的评论

我只是仔细看了文章引用而已,没必要讽刺我. 而且在第二部分:物理驱动器里的DragonflyBSD也像开挂一样遥遥领先其他操作系统,包括FreeBSD.

引用来自“ZeroOne”的评论

大锅,这不是讽刺,这是夸奖。不过我还是没听太懂。。。可能是因为我确实只是一个程序员吧。对系统维护玩操作系统这种东西不熟悉。
看错了,应该是FreeBSD(ZFS+opti)在第2部分像开挂,优化后的ZFS简直就是无敌了.
t
tony_trh
ZFS主要是大磁盘管理能力强,数据安全性强,速度一般吧,

POSTGRESQL数据库确实非常优秀,功能强大,稳定,跟ORACLE过程语言非常接近,

没有ORACLE那么庞大臃肿,我最喜欢的数据库。
甘薯
甘薯

引用来自“ZeroOne”的评论

没看懂这个图的意思,
看图上的数据应该是CentOS性能最好?
还是我理解错了?

引用来自“eechen”的评论

"只有Debian 没有达到测试的终点,因为不手动修改参数Debian PostgreSQL 不能同时有100个连接。" 第一部分虚拟驱动里的Debian7(ext4,barrier=0)在100个连接以内的事务处理能力都是压着CentOS6.4(ext4,barrier=0)稳居第一的好不好. 注: "EXT4文件系统是默认开启barrier的,以便保证数据完整性,但也不可避免地会影响性能,因此如果在执行挂接(mount)命令的时候加上“nobarrier”参数,也就是执行“mount -o barrier=0”,那么性能会有明显提升。"

引用来自“ZeroOne”的评论

牛银。。。 听课了。

引用来自“eechen”的评论

我只是仔细看了文章引用而已,没必要讽刺我. 而且在第二部分:物理驱动器里的DragonflyBSD也像开挂一样遥遥领先其他操作系统,包括FreeBSD.
大锅,这不是讽刺,这是夸奖。不过我还是没听太懂。。。可能是因为我确实只是一个程序员吧。对系统维护玩操作系统这种东西不熟悉。
上海什么大学
上海什么大学
难道我是色盲?
eechen
eechen

引用来自“ZeroOne”的评论

没看懂这个图的意思,
看图上的数据应该是CentOS性能最好?
还是我理解错了?

引用来自“eechen”的评论

"只有Debian 没有达到测试的终点,因为不手动修改参数Debian PostgreSQL 不能同时有100个连接。" 第一部分虚拟驱动里的Debian7(ext4,barrier=0)在100个连接以内的事务处理能力都是压着CentOS6.4(ext4,barrier=0)稳居第一的好不好. 注: "EXT4文件系统是默认开启barrier的,以便保证数据完整性,但也不可避免地会影响性能,因此如果在执行挂接(mount)命令的时候加上“nobarrier”参数,也就是执行“mount -o barrier=0”,那么性能会有明显提升。"

引用来自“ZeroOne”的评论

牛银。。。 听课了。
我只是仔细看了文章引用而已,没必要讽刺我. 而且在第二部分:物理驱动器里的DragonflyBSD也像开挂一样遥遥领先其他操作系统,包括FreeBSD.
Raymin
Raymin
在虚拟机里测合适吗?
http://www.dragonflybsd.org/performance/
甘薯
甘薯

引用来自“ZeroOne”的评论

没看懂这个图的意思,
看图上的数据应该是CentOS性能最好?
还是我理解错了?

引用来自“eechen”的评论

"只有Debian 没有达到测试的终点,因为不手动修改参数Debian PostgreSQL 不能同时有100个连接。" 第一部分虚拟驱动里的Debian7(ext4,barrier=0)在100个连接以内的事务处理能力都是压着CentOS6.4(ext4,barrier=0)稳居第一的好不好. 注: "EXT4文件系统是默认开启barrier的,以便保证数据完整性,但也不可避免地会影响性能,因此如果在执行挂接(mount)命令的时候加上“nobarrier”参数,也就是执行“mount -o barrier=0”,那么性能会有明显提升。"
牛银。。。 听课了。
返回顶部
顶部