解決方法一,修改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