萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL服務器進程CPU占用100%解決辦法

MySQL服務器進程CPU占用100%解決辦法

現在使用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

copyright © 萬盛學電腦網 all rights reserved