MySql數據庫(InnoDB存儲類型)占用I/O資源高處理
一.檢查確認占用I/O高的進程
Windows
1.打開任務管理器查看較占資源的進程.
2.資源監視器-磁盤-按讀、寫排序進一步核查:
圖片1.png
Linux
1.運行top命令查看較占資源的進程.
圖片2.png
參數:78.2%wa :數值較高,表示cpu 中出現嚴重硬件I/O等待問題,通常就是讀寫磁盤 I/O 造成的
2.使用iotop命令進一步核查
[root@ebs-xxx ~]# iotop -o # 僅顯示占用I/O的進程
# 如提示未安裝iotop,運行以下命令進行安裝:
[root@ebs-xxx ~]# yum install -y iotop
圖片3.png
二.優化innodb格式表數據庫的配置
修改mysql配置文件調整或添加以下參數就能解決mysql占I/O資源的問題:
innodb_flush_log_at_trx_commit = 2 #保存后重啟mysql服務
注意:
★ 該解決方案主要針對數據庫表存儲類型為:InnoDB 有效。
★ innodb_flush_log_at_trx_commit=2 會犧牲一定的的數據安全性。如果對數據安全性,可靠性有較高要求的,如支付類、金融類、較大的訂單系統類等建議不要調整。
來源:西部數碼