当前位置: 首页 > 科技观察

PostgreSQL在FreeBSD和Linux上运行的测试数据

时间:2023-03-13 23:51:18 科技观察

今天下午想测试一下DragonFlydports,突然想到为什么不比较一下PostgreSQL在BSD和Linux下的性能差异。为此,我设定了一些标准来比较不同操作系统上的性能差异。我使用相同的硬件和软件来获得更准确的数据。这些测试基于PGSQL9.1。在DebianLinux下测试的时候,结果让我大吃一惊,于是又在其他Linux系统上测试,比如Redhat-likeCentos6.4。以下是我测试的一些操作系统:DragonFlyBSD3.4.1(Hammer)FreeBSD9.1-p3(UFS2+J)FreeBSD9.1-p3(ZFSv28)Debian7:Wheezy(ext4,kernel3.2)Debian7:Wheezy(ext4,kernel3.2,barrier=0)Centos6.4(ext4,kernel2.6.32)Centos6.4(ext4,kernel2.6.32,nobarrier)对于硬件部分,我使用的是基于KVM(libvirt)的系统,具有24GRAM和Phenomx61055T处理器。版本如下:qemu1.4.1-3libvirt1.0.5-4每个虚拟机使用相同的配置:50GB硬盘(FreeBSD除外)12GB内存4核CPU现测试。命令如下:pgbench-T60-cX-jX在60秒内对数据库做一个pgbench实例测试,使用X用户和X线程(一个线程,一个用户)每个数据库是默认配置,支持300个并发连接***部分:VirtualDrive第一张图是实时交易处理量,第二张图是每秒的交易处理量。性能测试的结果令人震惊。?DragonflyBSD(默认操作系统)优于所有其他系统,其次是FreeBSD。DragonflyBSD的性能比FreeBSD高25%,比Linux(s)高200%!我们有2个Linux远远超过其他系统,达到了7000笔交易的处理能力。如果不考虑客户数量,还是无法超越。这些图表出奇地均匀。只有Debian没有达到测试的终点,因为DebianPostgreSQL在不手动修改参数的情况下不能同时连接100个。其实这7000条曲线说明了ext4屏障系统(barriersystem)保护的文件系统,在PostgreSQL上的性能很差。在第二个测试中,我们向ext4添加了nobarrier/barrier=0选项(通过/etc/fstab)。此选项处理(清理)FS,但这是一个非常冒险的选项。仅当您有RAID1/5/6控制器时才使用它。当你对磁盘进行写操作时,如果你的服务器重启(例如:电源故障...),文件或整个磁盘可能会崩溃,如果是在数据库实例中,后果将是非常悲惨的。无论如何,我们在ZFS上的FreeBSD工作弥补了Linux(s)。也许是由于虚拟化?还是ZFS的概念有问题?第二部分:物理驱动器为了验证我们的发现,我们意识到在物理驱动器上执行了相同的基准测试。除了ZFS之外,我只保留性能与优化,在这种支持比较中一定有一点。这里去掉了Centos,因为它的性能和Debian差不多。第一张图是每分钟的吞吐量:第二张图是每秒的吞吐量:DragonFlyBSD性能接近物理和虚拟,可以说virtio驱动非常好。Debian有同样的问题,每分钟50,000个请求。有两点需要注意: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。感谢EmmanuelFlorac和AxelPerrier为ext4屏障选项提供精确的(数据)。原文链接:http://www.oschina.net/translate/postgresql-comparative-benchmark-between-freebsd-and-linux