Linux系統(tǒng)CPU100%的處理步驟和方法
1. 確認(rèn)問題:檢查 CPU 使用情況
1.1 使用top或htop查看實(shí)時(shí) CPU 使用情況
執(zhí)行以下命令查看哪個進(jìn)程占用了最多的 CPU:
top
或安裝并使用 htop(更直觀):
htop
- 重點(diǎn)觀察以下內(nèi)容:
- CPU 使用率:查看是否接近或達(dá)到 100%。
- 進(jìn)程信息:找出占用 CPU 最高的進(jìn)程(
PID、進(jìn)程名等)。 - 負(fù)載均值(load average):
load average的三個值分別代表最近 1 分鐘、5 分鐘和 15 分鐘的平均負(fù)載。- 如果第一個值顯著高于系統(tǒng) CPU 核心數(shù)(如 8 核 CPU 的負(fù)載均值超過 8),說明系統(tǒng)超負(fù)載。
1.2 使用ps定位高 CPU 占用的進(jìn)程
按 CPU 使用率列出進(jìn)程:
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head
- 輸出說明:
PID:進(jìn)程 ID。PPID:父進(jìn)程 ID。CMD:進(jìn)程名稱或啟動命令。%CPU:進(jìn)程占用的 CPU 百分比。
1.3 使用iostat檢查 I/O 是否影響 CPU
安裝 sysstat 工具(如未安裝):
sudo apt install sysstat # Debian/Ubuntu sudo yum install sysstat # CentOS/RHEL
查看 CPU 和 I/O 狀態(tài):
iostat -c -x 1
- 關(guān)注以下內(nèi)容:
- %iowait:表示 CPU 等待 I/O 操作的時(shí)間。如果該值較高,可能是磁盤 I/O 瓶頸導(dǎo)致 CPU 閑置。
2. 解決問題:降低 CPU 使用率
2.1 殺死高 CPU 占用的進(jìn)程
如果確認(rèn)某個進(jìn)程異常且不影響業(yè)務(wù),可以直接終止:
sudo kill -9 <PID>
如果進(jìn)程無法被殺死,可能需要重啟服務(wù)或檢查相關(guān)配置。
2.2 優(yōu)化高負(fù)載進(jìn)程
- 分析進(jìn)程來源:
- 查看進(jìn)程所屬的用戶和啟動命令,確認(rèn)其是否為必要服務(wù)。
- 優(yōu)化進(jìn)程配置:
- 例如,對于 Web 服務(wù)器(如 Nginx、Apache):
- 限制最大并發(fā)連接數(shù)。
- 減少子進(jìn)程數(shù)量。
- 優(yōu)化請求處理邏輯。
- 對于數(shù)據(jù)庫(如 MySQL、PostgreSQL):
- 調(diào)整緩存大小。
- 限制最大連接數(shù)。
- 例如,對于 Web 服務(wù)器(如 Nginx、Apache):
2.3 降低進(jìn)程優(yōu)先級
如果無法殺死高負(fù)載進(jìn)程,可以降低其優(yōu)先級:
sudo renice 10 <PID>
renice參數(shù)說明:- 值越大,優(yōu)先級越低(范圍 -20 到 19)。
2.4 檢查是否存在僵尸進(jìn)程
使用以下命令查看僵尸進(jìn)程:
ps aux | grep 'Z'
- 如果發(fā)現(xiàn)僵尸進(jìn)程,嘗試重啟其父進(jìn)程或直接手動結(jié)束。
2.5 檢查是否為惡意程序或挖礦軟件
- 如果高 CPU 占用來源不明,可能是惡意程序(如病毒、挖礦軟件):
檢查系統(tǒng)中是否有異常用戶:
cat /etc/passwd
檢查是否有可疑的進(jìn)程:
ps aux | grep -E 'minerd|cryptominer|xmrig'
如果發(fā)現(xiàn)異常進(jìn)程,立即終止并清理:
sudo kill -9 <PID>
建議:
更新系統(tǒng)補(bǔ)丁,修復(fù)安全漏洞。
檢查 SSH 登錄記錄:
last
- 安裝防病毒或安全檢測工具(如
chkrootkit、rkhunter)掃描系統(tǒng)。
2.6 檢查內(nèi)核或系統(tǒng)問題
查看系統(tǒng)日志:
檢查 /var/log/ 下的日志文件,尋找可能導(dǎo)致 CPU 占用的系統(tǒng)問題:
tail -f /var/log/syslog # Debian/Ubuntu tail -f /var/log/messages # CentOS/RHEL
檢查內(nèi)核更新:
確保系統(tǒng)內(nèi)核和軟件包是最新的,使用以下命令更新:
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu sudo yum update -y # CentOS/RHEL
3. 預(yù)防 CPU 100% 的問題
3.1 限制單個進(jìn)程的資源使用
使用 ulimit 為用戶或進(jìn)程設(shè)置資源限制:
ulimit -u 200 # 限制最大進(jìn)程數(shù)為 200
使用 cgroups 配置資源分配(如 CPU、內(nèi)存限制):
sudo cgcreate -g cpu:/mygroup sudo cgset -r cpu.shares=512 mygroup sudo cgexec -g cpu:/mygroup <command>
3.2 定期監(jiān)控系統(tǒng)性能
- 安裝性能監(jiān)控工具:
使用 sar 查看歷史 CPU 使用情況:
sar -u 1 5
- 使用
monitoring tools(如Zabbix、Prometheus)設(shè)置告警,提前發(fā)現(xiàn)高 CPU 使用。
3.3 優(yōu)化系統(tǒng)配置
- 調(diào)整 I/O 調(diào)度算法:
將磁盤調(diào)度算法改為性能更高的 deadline 或 noop:
echo deadline > /sys/block/sda/queue/scheduler
- 啟用 SWAP 內(nèi)存(防止內(nèi)存不足導(dǎo)致 CPU 負(fù)載過高):
sudo fallocate -l 1G /swapfile sudo mkswap /swapfile sudo swapon /swapfile
3.4 定期清理無用進(jìn)程
停止和禁用無用的后臺進(jìn)程和服務(wù):
sudo systemctl disable <service_name> sudo systemctl stop <service_name>
總結(jié)
當(dāng) Linux 系統(tǒng) CPU 使用率達(dá)到 100% 時(shí),應(yīng)按以下步驟處理:
- 確認(rèn)問題來源:使用
top、htop或ps等工具找出高 CPU 占用的進(jìn)程。 - 快速解決:殺死進(jìn)程或降低優(yōu)先級,優(yōu)化配置或資源分配。
- 深入分析:檢查是否存在系統(tǒng)配置問題、惡意程序或硬件瓶頸。
- 長期預(yù)防:優(yōu)化系統(tǒng)配置,定期監(jiān)控性能,限制資源使用。
通過上述方法,不僅能快速解決 CPU 100% 的問題,還能有效預(yù)防類似情況再次發(fā)生。
以上就是Linux系統(tǒng)CPU100%的處理步驟和方法的詳細(xì)內(nèi)容,更多關(guān)于Linux系統(tǒng)CPU100%的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux下查看nginx apache mysql php的編譯參數(shù)
由于工作的需要,有時(shí)候需要在一臺不是你參與編譯的環(huán)境調(diào)試環(huán)境,這就需要知道nginx,apache,mysql,php的編譯參數(shù),以下小方法能快速讓你了解默認(rèn)的服務(wù)器里的編譯參數(shù)2014-03-03
淺談Linux 網(wǎng)絡(luò) I/O 模型簡介(圖文)
這篇文章主要介紹了淺談Linux 網(wǎng)絡(luò) I/O 模型簡介(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
Apache 配置多端口 多虛擬主機(jī) 局域網(wǎng)訪問示例
這篇文章主要介紹了Apache如何配置多端口 多虛擬主機(jī) 局域網(wǎng)訪問,需要的朋友可以參考下2014-05-05
Nginx出現(xiàn)500 Internal Server Error 錯誤的解決方案
這篇文章主要介紹了Nginx出現(xiàn)500 Internal Server Error 錯誤的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Ubuntu 20.04 apt 更換國內(nèi)源的實(shí)現(xiàn)方法
這篇文章主要介紹了Ubuntu 20.04 apt 更換國內(nèi)源的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Ubuntu下安裝rsh實(shí)現(xiàn)無密碼訪問詳解
這篇文章主要為大家詳細(xì)介紹了Ubuntu下安裝rsh實(shí)現(xiàn)無密碼訪問的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Ubuntu Server 18.04.5 LTS服務(wù)器版安裝配置圖解教程
Ubuntu分為桌面版(desktop)和服務(wù)器版(Server),下面為大家介紹服務(wù)器版本Ubuntu Server 18.04.5 LTS的詳細(xì)安裝過程,需要的朋友可以參考下2021-01-01
Linux服務(wù)器SSH客戶端連接目標(biāo)服務(wù)器失敗的解決方法
Linux服務(wù)器SSH客戶端連接目標(biāo)服務(wù)器失敗怎么辦?在出現(xiàn)問題時(shí)我們先用排除法查找原因,以下是根據(jù)幾種情況列出的解決方法,希望可以幫助到你,需要的朋友可以參考下2025-10-10

