我们正在运行2台Web服务器,它们承载Amazon EC2上的Magento电子商务网站和1台MySQL数据库服务器。Amazon EC2上的MySQL/Magento性能问题
我们正在经历重大的性能问题,死锁,“锁等待超时超标” MySQL服务器上的错误等,并真正地奋斗得到这些解决。
我们的数据库服务器最近升级到m1.xlarge实例(从m1.large),仍然我们将继续遇到这些问题。
我们已经归于这些问题向坏磁盘IO,我们经常在EC2服务器上看到的,但最近我已经看到了死锁等,即使磁盘IO是罚款的问题。
的“特区”命令显示,我们在高峰时段盘非常不好的IO性能,或当我们执行像通过Magento的API创建发票数据库密集型操作。我们经常看到爱荷华州达到20%以上。
下面是截图链接最近的一个问题,我们必须在那里查询是导致缓慢整个数据库的下跌过程中表现出的“MTOP”的结果:
该截图显示一个或其他查询将执行其余的查询。它也表现出相当低的平均负载,当执行密集命令时,经常会看到平均负载高达3.0。
这里是my.cnf
设置:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
innodb_file_per_table=1
key_buffer=512M
max_allowed_packet=64M
table_cache=512
innodb_thread_concurrency=5
innodb_buffer_pool_size=4976M
innodb_additional_mem_pool_size=8M
innodb_log_file_size=128M
innodb_log_buffer_size=8M
thread_cache_size=150
sort_buffer_size=4M
read_buffer_size=4M
read_rnd_buffer_size=2M
myisam_sort_buffer_size=64M
tmp_table_size=256M
query_cache_type=1
query_cache_size=128M
max_connections=400
wait_timeout=28800
innodb_lock_wait_timeout=120
max_heap_table_size=256M
long_query_time=3
log-slow-queries=...mysql-slow.log
[mysqld_safe]
log-error=...mysqld.log
pid-file=...mysqld.pid
我们已经使用了pt-query-digest
功能广泛地分析我们的MySQL慢查询日志。
基本上我们看到sales_flat_quote table
的更新和插入速度非常慢,但其他表格也是如此。
sales_flat_quote
不是特别大,虽然,只有100k左右表中的行。
我现在不知道我们应该尝试或接下来做什么,并且任何建议都会真正被赞赏!
我也不清楚需要什么其他信息,以帮助诊断这样的问题,所以请与我裸露。
嗨Adrien,这些查询是Magento软件平台中的标准查询,所以这些我们可以改变的很少。这并不是说它们是“优化的”,因为该软件已知有很多错误。 – nickwes
对不起,我忘了添加,我们已经在使用pt-query-digest工具,它允许我们总结mysql慢速查询日志并确定最慢的查询。 但是,关于如何解决这些问题的建议方式很少提供。 – nickwes