为什么MYSQL在差异虚拟机上插入相同的ram和cpu

时间:2017-09-01 02:28:43

标签: mysql performance virtual-machine vmware

我有一个问题,哪个MYSQL性能在差异机器上插入相同的ram和cpu。

我在VM Window 2k3上运行MYSQL 4GB Ram,在我的PC上运行的VMWare Workstaion 12上运行的4个CPU与VM Window 2k3 4GB Ram,4个CPU构建在服务器上的ESXi 6.5上。当然,服务器的所有硬件都比我的PC好。

我的PC上的MYSQL执行3000次查询,插入1.5s但在服务器上执行3000次查询插入48s。有什么问题?

2 VM具有相同的my.ini配置:

[client]

port=3306

[mysql]

default-character-set=latin1


[mysqld]
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"

datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"
character-set-server=latin1

default-storage-engine=INNODB

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=500

query_cache_size=0

table_cache=256

tmp_table_size=18M

thread_cache_size=8

myisam_max_sort_file_size=100G

myisam_sort_buffer_size=35M

key_buffer_size=25M

read_buffer_size=64K

read_rnd_buffer_size=256K

sort_buffer_size=256K

innodb_additional_mem_pool_size=2M

innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=1M

innodb_buffer_pool_size=47M

innodb_log_file_size=24M

innodb_thread_concurrency=18

当我将innodb_flush_log_at_trx_commit配置为0或2时,服务器在0.5秒内运行速度非常快,但我想知道当我的PC上的innodb_flush_log_at_trx_commit为1时,在1.5秒内执行时有什么区别,但是服务器执行48S?

5 个答案:

答案 0 :(得分:1)

3000/48是关于旋转驱动器的速度(经验法则:每I / O 10ms)。这听起来像innodb_flush_log_at_trx_commit=1

3000 / 1.5听起来甚至比SSD还好,所以我猜测有一个带有电池备份写缓存的RAID控制器,这会使大多数写操作几乎是即时的。拥有1的集合是没有问题的。或者驱动器可能已启用写入缓存。

答案 1 :(得分:0)

将其保持为1将有助于innodb成为ACID COMPLIANT。如果将其设置为1,则每次事务提交后,日志缓冲区将很快写入日志文件。但是如果设置innodb_flush_log_at_trx_commit = 0,则每秒执行一次。实际上,这可能是插入时间不同的原因。默认情况下,它设置为1.当设置为2时,将在提交事务时将日志写入文件,但每次都不会执行刷新到磁盘操作。

答案 2 :(得分:0)

为什么可以通过提供确定 共享VM主机的VM主机TOTAL RAM的类似帐户的VM号。并从您的两个MySQL主机进行比较/分析, RAM中的GB和

SHOW GLOBAL STATUS;
SHOW GLOBAL VARIABLES;
SHOW ENGINE INNODB STATUS:

这将是一个有趣的评估。

答案 3 :(得分:0)

@Vuong Minh我们只能用

确定为什么
SHOW GLOBAL STATUS;
SHOW GLOBAL VARIABLES;
SHOW ENGINE INNODB STATUS;

为您的每个主人。希望您能将此信息添加到您的问题中。

答案 4 :(得分:0)

如果您即将使用50 - 80% of performance from your VM with MySQL,那么就虚拟化开销而言,这将是非常正常的。鉴于您从VM中看到的性能几乎只有3.125%,这听起来像是磁盘I / O问题-主机OS和来宾OS之间的某种情况似乎使磁盘写入速度降低了大约30倍。

要证明(或反证)此假设,请在VM和虚拟机管理程序配置中的虚拟磁盘上启用写缓存,然后尝试再次运行相同的测试。您应该看到更多可比的性能。另外,请确保已为虚拟磁盘分配了“厚”分配,而不是延迟分配-如果分配了精简卷,这将导致很多随机磁盘I / O而不是顺序磁盘I / O,这很容易导致速度降低了30倍。