現在使用mysql數據庫服務器的朋友有很多,我們也經常會碰到mysql進程CPU占用100%,下面我來總結一些解決方法.
解決方法一,修改my.cnf文件,找到
query_cache_size=0
估計就是這個問題在造成的,沒有開查詢緩存,一般1G 就64M緩存,我的服務器的內存4G,調整到如下代碼:
query_cache_size =256M
如果你系統需要大的臨時緩存我們可以再找到如下代碼:
tmp_table_size
修改 My.ini,將 tmp_table_size 賦值到 200M 這個大小大家可自行調整.
linux系統 占用cpu 100% 問題處理
原因分析:部署的應用每30秒與master report一次,每次report,都新建一個到mysql的連接,處理完之后,再關閉mysql連接,但是在mysql連接關閉之后,tcp資源并沒有釋放,在2-3分鐘內還是會處于TIME_WAIT狀態.
在高IO操作時,會造成對mysq請求的堆積,新建大批的mysql連接,然后再關閉,所以就會有超多TIME_WAIT的tcp連接.
最終導致新來的mysql連接,沒有tcp資源可以用,最后mysql connect fail.
可能的解決方案:
1.更改應用連接的方式,更改為每個線程對應一個mysql長連接,變短連接為長連接.
2.改變mysql數據庫所用磁盤,使得與應用不部署在同一臺物理機上,或者使用獨立的磁盤。
3.更改mysql配置項:innodb_flush_log_at_trx_commit = 2
新聞熱點
疑難解答