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

今天下午我本想测验下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)

关于硬件部分,我运用的是根据KVM (libvirt)体系的24G内存和一个Phenom x6 1055T 处理器。版别如下:

  1. qemu1.4.1-3
  2. libvirt1.0.5-4

每个虚拟机都运用相同的装备:

  • 50GB 硬盘 (除了 FreeBSD)
  • 12GB 内存
  • 4核 CPU

现在测验。指令遵从: pgbench -T 60 -cX -jX

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

每个数据库都是默许的装备,一起支撑300个需求一起衔接

***部分:虚拟驱动

***个图展现了实时业务处理量,第二个图是每秒业务处理量。

PostgreSQL运行在 FreeBSD 和 Linux 的体现的测试数据  PostgreSQL 第1张PostgreSQL运行在 FreeBSD 和 Linux 的体现的测试数据  PostgreSQL 第2张

功能测验的成果是令人吃惊的。‍DragonflyBSD(默许的操作体系) 的功能逾越其他一切的体系,紧随其后的是FreeBSD。DragonflyBSD的功能比FreeBSD有25%的进步比Linux(s)有200%的进步!

咱们有2个Linux远远的逾越其他体系,到达7000业务的处理量。如过不考虑客户端的数量仍是无法逾越它。曲线图是令人吃惊的一致。只要Debian 没有到达测验的结尾,由于不手动修正参数Debian PostgreSQL 不能一起有100个衔接。

实际上,这7000条曲线解说了ext4栅门体系(barrier system)维护的文件体系,在PostgreSQL上功能是十分差的。在第二项测验中,咱们现已对ext4添加nobarrier/barrier=0选项(经过/etc/fstab)。这个选项处理(debrid)的FS,可是它是一个十分有危险的选项。仅当你有一个磁盘阵列的 1/5/6 控制器时才去运用它。当有一个写操作在你的磁盘上完结的时分,假如你的服务器重启(例如:电力毛病......),文件或许整个磁盘或许就会溃散,而且要是处于数据库实例中,那结果将十分凄惨。

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

第二部分:物理驱动器

为了验证咱们的研究成果,咱们意识到,同一基准的物理驱动器上。我只要坚持功能与优化,除了 ZFS,有必要有一个点在这种支撑的比较。在这里 Centos 被删去,由于它的功能与Debian相差不多。

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

PostgreSQL运行在 FreeBSD 和 Linux 的体现的测试数据  PostgreSQL 第3张

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

PostgreSQL运行在 FreeBSD 和 Linux 的体现的测试数据  PostgreSQL 第4张

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。

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

原文链接:http://www.oschina.net/translate/PostgreSQL-comparative-benchmark-between-FreeBSD-and-linux

转载请说明出处
知优网 » PostgreSQL运行在 FreeBSD 和 Linux 的体现的测试数据

发表评论

您需要后才能发表评论