我有一个问题,哪个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?
答案 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倍。