添加CPU会降低MySQL 5.5(Debian)的性能


8

我即将在OpenVZ容器中设置数据库服务器(MySQL),我一直在想应该为它分配多少CPU。我决定进行基准测试。我比较了两个OS / MySQL发行版,并测试了它们在1、2、3和4个CPU上的性能。

第一个软件配置是:

  • CentOS版本6.5(最终版)
  • 适用于redhat-linux-gnu(x86_64)的mysql Ver 14.14 Distrib 5.1.71,使用readline 5.1

第二:

  • Debian GNU / Linux 7 \ n \ l
  • 适用于使用readline 6.2的debian-linux-gnu(x86_64)的mysql Ver 14.14 Distrib 5.5.31

两者都在同一内核上运行-2.6.32-openvz-042stab083.2-amd64#1 SMP Fri Nov 8 17:59:25 MSK 2013 x86_64 GNU / Linux。

所有软件都是从软件包中安装的,并且可以直接使用,而无需进行任何自定义配置调整。

硬件:6GB RAM,1-4个CPU 3.5 GHz。

为了进行基准测试,我在以下情况下使用了sysbench:

sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

在这两种情况下,表的引擎都是InnoDB。

我正在查看的输出是每秒的事务数。结果非常稳定-误差小于1%。

结果不错,对于CentOS / MySQL5.1来说是预期的,但对于Debian / MySQL5.5来说却很奇怪: 在此处输入图片说明

如您所见,Debian上的MySQL5.5无法正确利用多个CPU。虽然2个CPU的性能高于1个CPU,但明显低于CentOS / MySQL5.1。而且,当我们在2个CPU之上添加更多CPU时,它会下降,这确实很奇怪。

有人可以解释一下发生了什么吗?为什么在地球上添加CPU时MySQL的性能会变差?


资源争用可能在这里发挥作用-您是否在此主机上运行许多其他虚拟服务器/容器?在您进行Debian安装基准测试期间,物理处理器是否有可能处于负载状态?
blacklight

结果是非常可重复的。那是我自己的家用裸机服务器,在测试过程中没有加载其他任何东西。
Greendrake

我的意思是,服务器上当然还有其他一些虚拟机,但是它们却处于空闲状态。
Greendrake

我曾经说过内核,但它是相同的...您能在两个系统上尝试使用相同的版本吗?
miniBill 2014年

一个不同的debian使用eglibc en.wikipedia.org/wiki/Embedded_GLIBC,也许这不是问题
c4f4t0r 2014年

Answers:



1

嗯,这是一个真正的领先问题,首先没有您正在运行的体系结构的知识。.但是通常在增加CPU容量时总线吞吐量会成倍增加,特别是支持多个多核处理器的体系结构,停下来思考一下在任何部署的总线带宽限制下对中断周期的影响....在任何性能情况下...了解您的体系结构将成为瓶颈I / O或每周期位数,再次记住,多个CPU需要多个线程..因此,无论您的FSB的速度如何...如果您的硬件只有64位,则物理电连接将必须在同一时钟周期内跨多个内核共享此限制...现在停下来,想一想从64位系统板升级到256位系统板的积极意义,因为x1将花费在线程化/维护操作开销上,因此在全倾斜时您的吞吐量可能会提高x3倍。.但是,在正常操作期间,您可能会遇到当您只需要一个处理器/操作员时,有关开销的令人不舒服的现实。我想这是平衡的举动,或更具体地说,是正确路线的正确选择。。Steveo Reedo nextfriend@live.co.uk我认为这是一种平衡行为,或更确切地说,是正确路线的正确选择。.Steveo Reedo nextfriend@live.co.uk我认为这是一种平衡行为,或更确切地说,是正确路线的正确选择。.Steveo Reedo nextfriend@live.co.uk


0

当您添加CPU时,它将并行执行更多操作。如果您没有增加RAM的数量,则可能会发生交换,特别是如果您使用正在测试的软件的更高版本(更新的版本通常意味着更胖)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.