io高的原因?
占用IO過高,可以做如下考慮:
1)首先考慮寫日志內容過多(或者訪問量較大)
日志打印的內容是否合理( 前端應用服務器,要避免程序頻繁打本地日志、或者異常日志)
日志級別是否合理
考慮異步寫日志(一般可以解決CPU鋸齒波動),為減少磁 盤IO操作,將日志寫如內存分區;但日志量太大,很容易將內存 寫滿,再考慮將日志進行壓縮。
2)磁盤滿(壓測過程中現象:TPS降低,響應時間增加)
找到導致磁盤滿的大文件,合理的刪除,最好有定期清理腳本,可以定期清理
對磁盤空間進行擴大磁盤容量
不好清理的,在主硬盤上進行讀寫操作,基礎數據定時移動 到掛載硬盤上。
3)數據庫連接數超限制,導致sleep比較多,sleep任務太多的處理:
程序里每次連接數據庫后,記得關閉數據庫。
或者,在mysql配置文件中,設置mysql超時時間wait_timout, 默認是八小時,設置低一點
4)數據庫IO過高,查詢量大,可以進行讀寫分離(增加讀庫)或者分庫操作,減小磁盤壓力,調優一些buffer參數以降低IO寫的頻率
5)磁盤IO過高是由于讀寫文件導致的: 可以利用raid來減輕壓力
6)磁盤本身性能不足: 考慮更換新磁盤(性能強勁的)