一次伺服器IO佔用率高的定位分析

2021-12-29 22:40:35 字數 387 閱讀 6087

背景:請事假在外中,聽平台組同事反饋了乙個問題,在往生產資料庫中匯入部分資料時會造成客戶端的訪問超時,初步定位是因為伺服器磁碟占用io過高,導資料時io會飆公升到100%,因此引起了不少資料庫的慢查詢操作導致客戶端響應超時,無奈只好暫時停止了匯入資料的指令碼,同時也延誤了針對這部分資料的生產測試工作。於是我第二天回到公司就投入了對這個問題的跟蹤定位工作。

環境描述:

由於我們的業務資料的特點,對資料可靠性並不如金融、訂單系統那麼高於是在權衡下就把sync_binlog設定為每500次重新整理一次磁碟,而將innodb_flush_log_at_trx_commit設定為2,再用iotop等工具檢視系統io情況,大大降了下來。好吧,這個借刀殺io的罪犯終於找到並被處理了。

後記:在這次處理問題的過程中有兩個小插曲。

一次伺服器IO佔用率高的定位分析

檔案系統 資料庫 如果innodb flush log at trx commit設定為1,每次事務提交時mysql都會把log buffer的資料寫入log file,並且flush 刷到磁碟 中去.如果innodb flush log at trx commit設定為2,每次事務提交時mysql...

一次伺服器IO佔用率高的定位分析

檔案系統 資料庫 高效能mysql 這本書的第10章 複製的章節 從上面的環境描述中可以看到我使用了mysql的主主複製 找到了對sync binlog的說明 如果innodb flush log at trx commit設定為1,每次事務提交時mysql都會把log buffer的資料寫入log...

一次伺服器CPU佔用率高的定位分析

ps h e o pid,tid,pcpu,cmd sort pcpu grep freeswitch背景 通過效能監控發現上線伺服器cpu某核佔用率已經達到了100 而且是由我們的某個核心服務導致的。幸虧由於我們的服務程序由多個相同worker 執行緒 排程承擔的,所以除了cpu佔用率高之外,並沒...