早上發現訪問伺服器非常慢,趕緊登入控制台,原來cpu正在滿負荷執行。
一、ssh到伺服器,先使用top命令確定一下當前的伺服器負載:
top
發現 mysql 的 cpu 占用已經達到了 375%(因為是4核心),那就初步確定是 mysql 的問題了。
二、看看哪些sql造成的cpu占用過高
執行一條語句,用來檢索當前執行時間最長的sql:
select * from information_schema.processlist
where command != 'sleep'
order by time desc limit 20;
排到上面的都是占用時間比較長的,發現都是幾個資料量和併發都比較大的表。
處理方式也很簡單,直接加索引就好,過一會cpu負載就會慢慢降下來。
三、停止個別超時或掛起的sql執行緒
新增索引後,一般情況下很多的慢sql都會有所改善,但如果還有個別sql一直在假死狀態,就需要手動kill掉才能**伺服器資源。
執行以下sql,拼接出需要手動kill的命令:
select concat('kill ', id, ';') from information_schema.processlist
where command != 'sleep' and time > 200
order by time desc;
複製並執行生成的kill命令,過一會cpu就會緩過勁來了。 CPU100 排查總結
系統 centos7 openjdk 1.8 1 簡單介紹 1 若cpu100 可能所有程序都不能正常幹活 假死 2 cpu100 出現情況 沒有多餘cpu切換 所有cpu均被占用,且不能被釋放 3 cpu100 出現條件 死迴圈 迴圈裡無阻塞 只有計算型任務 注 system.out.printl...
客戶伺服器CPU100 無奈的改表名
快下班了,客服的乙個小朋友,跑來找我救命,說現在服務卡爆了,cpu一直100 開啟頁面乙個複雜查詢的地方,一直loadding.等了27秒,正常一般1秒左右,看了下活動監視器,等待型別基本是latch和lock,以為是有死鎖了,檢視阻塞,一直在變化,沒有固定的阻塞,那就不是死鎖了.想著之前遇到過的乙...
伺服器日誌排查
more命令,功能 類似 cat cat命令 是整個檔案的內容從上到下顯示在螢幕上。more more命令從前向後讀取檔案,因此在啟動時就載入整個檔案。1 命令格式 more dlfpcsu num pattern linenum file 2 命令功能 more命令和cat的功能一樣都是檢視檔案裡...