3 回答

TA貢獻1744條經(jīng)驗 獲得超4個贊
首先,我想您可能要關閉持久性連接,因為它們幾乎總是弊大于利。
其次,我想您要仔細檢查您的MySQL用戶,以確保任何人都無法從遠程服務器進行連接。這也是要檢查的主要安全事項。
第三,我想說你想打開MySQL Slow Query Log(MySQL慢查詢?nèi)罩荆﹣肀O(jiān)視花費很長時間的所有查詢,并使用它來確保沒有任何查詢會長時間鎖定鍵表。
您可以檢查的其他一些事情是在CPU負載很高時運行以下查詢:
SHOW PROCESSLIST;
這將向您顯示當前正在運行或正在運行的隊列中的任何查詢,查詢的內(nèi)容以及查詢的狀態(tài)(如果該查詢時間太長,該命令將截斷查詢,您可以使用SHOW FULL PROCESSLIST查看完整的查詢文本) 。
您還需要注意緩沖區(qū)大小,表緩存,查詢緩存和innodb_buffer_pool_size(如果使用的是innodb表)之類的東西,因為所有這些內(nèi)存分配都可能影響查詢性能,這可能導致MySQL吃光CPU。
您可能還想對以下內(nèi)容進行重新閱讀,因為它們包含一些有用的信息。
MySQL如何使用內(nèi)存
MySQL系統(tǒng)變量
使用探查器也是一個很好的主意。您可以在需要時啟用一些功能,以向您顯示應用程序正在運行的查詢,是否存在重復的查詢,查詢需要花費多長時間等。類似的示例就是我一直在努力的一個示例。PHP Profiler,但是有很多。如果您使用的是Drupal,Joomla或Wordpress之類的軟件,您可能想在社區(qū)中四處詢問,因為可能有可用的模塊可以讓您獲得此信息而無需手動集成任何東西。

TA貢獻2016條經(jīng)驗 獲得超9個贊
由于這是如果您在Google上搜索MySQL高CPU使用率或負載的熱門文章,我將添加一個附加答案:
2012年7月1日,當前的UTC時間增加了a秒,以補償由于潮汐引起的地球自轉(zhuǎn)緩慢。運行ntp(或ntpd)時,此秒已添加到計算機/服務器的時鐘中。在某些操作系統(tǒng)上,MySQLd似乎并不想多花一秒鐘的時間,并且會產(chǎn)生很高的CPU負載。快速修復是(作為根):
$ /etc/init.d/ntpd stop
$ date -s "`date`"
$ /etc/init.d/ntpd start
添加回答
舉報