記一次伺服器掛掉,cpu占用過大的問題

2021-08-19 08:16:26 字數 569 閱讀 7246

喂:伺服器掛掉了,你查檢視問題,然後處理下。

我:好的。

從日誌看幾乎所有的logic日誌全都掛掉,不再列印日誌,然後logic程序僵死,占用cpu百分90多,有些可怕。

第一反應是邏輯迴圈問題。

因為是公司自己的框架採用lua編寫。單程序單執行緒。

網上找了很多這個,查了下都是top -h , jstack, gdb等。

但是對於我們的專案不管用啊,jstack不能用,gdb沒有,top -h 是單執行緒單程序。就顯示一行沒了。

然後看了下掛掉的日誌,都是在凌成00:00分掛掉的,然後想到了定時器問題,(我們專案會在這個時間點,定時處理一些事情)

加上當天更新了資料片,新的**。然後使用git log 檢視到底策劃加了什麼**,對比定時器的問題。找到新增的新**。

然後逐個對比,這個效率很慢,可是沒辦法,就這樣磨著磨著,發現策劃加的乙個表定時器時間設定為-1.

這個肯定有問題啊,  然後通過封裝的定時器**,找到源**,新增了乙個驗證

assert(time>=0 )

殺死對應的logic程序,重啟,然後全服更新**。

至此解決。

記一次伺服器 cpu 過高 問題

先看了當前測試機是否有在跑的指令碼 crontab l 列出當前使用者定時服務內容 crontab e 編輯當前使用者的定時服務檢視後沒有。如果有,就看找那個時間段會卡死,進而縮小範圍。我這個測試機,沒有乙個固定的時間。檢視nginx error log 日誌 找到nignx.conf檔案,開啟 有...

linux伺服器(雲伺服器)快取占用過大問題解決

不知道伺服器是什麼原因,有些時候 buff cache 非常囂張,占用了大量記憶體,buff cache你不幹活還占用那麼多資料,實在是叔可忍,嬸子不可忍 廢話不多說,直接來解決辦法 自己動手寫乙個定時清理快取的指令碼 切換到 root目錄下 建立清理的指令碼 touch cleancache.sh...

記一次伺服器事故

mysql資料庫報錯 can t create write to file tmp sql 6ccc 0.myi 在開始刪除之後,所有服務就已經恢復正常執行了,接下來就是優化那個session了,哎又是埋坑.最後附上inode擴容的方法 但是需要注意,手動擴inode,一般是新建分割槽時設定的,該操...