MySql數據庫(InnoDB存儲類型)佔用I/O資源高處理

發佈時間:2020-08-07

一.檢查確認佔用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 會犧牲一定的的數據安全性。如果對數據安全性,可靠性有較高要求的,如支付類、金融類、較大的訂單系統類等建議不要調整。