我们正在运行两个网络服务器,分别是Magento eCommerce网站和亚马逊EC2上的 MySQL 数据库服务器。
我们正在MySQL服务器上遇到重大性能问题、僵局、锁定等待超时错误等,
我们最近将db服务器升级为m1.x大实例(从m1.大),我们仍然在继续经历这些问题。
我们一直把这些问题归咎于坏磁盘 IO, 我们经常在EC2服务器上看到,
“ Sar” 指令显示,我们在高峰期或当我们通过Magento API 创建发票等数据库密集操作时, 磁盘 IO 性能相当差。 我们经常看到 iO 等值高达 20% 以上 。
以下是一个截图的链接, 显示一个“mtop”的结果, 我们最近遇到一个问题, 询问导致整个数据库减速:
https://i.sstatic.net/iKMLk.png" rel=“不跟随 nofollow noreferrer>>https://i.sstatic.net/iKMLk.png
此屏幕截图显示一个或另一个问题, 使其余的查询无法执行。 它还显示相当低的负载平均值, 通常我们看到当执行密集命令时负载平均值会高达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_flap_quote table
在更新和插入方面非常缓慢,但其他一些表格也是如此。
sales_flap_quote
虽然并不特别大,但表格中只有大约100公里的行。