導航:首頁 > 操作系統 > linuxd狀態進程

linuxd狀態進程

發布時間:2023-06-19 05:23:30

linux下的進程有哪三種狀態

Linux內核中定義了以下幾種狀態:
#define TASK_RUNNING 0
#define TASK_INTERRUPTIBLE 1
#define TASK_UNINTERRUPTIBLE 2
#define TASK_ZOMBIE 4
#define TASK_STOPPED 8
其中:
TASK_RUNNING是就緒態,進程當前只等待CPU資源。
TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE都是阻塞態,進程當前正在等待除CPU外的其他系統資源;前者可以被信號喚醒,後者不可以。
TASK_ZOMBIE是僵屍態,進程已經結束運行,但是進程式控制制塊尚未注銷。
TASK_STOPPED是掛起狀態,主要用於調試目的。進程接收到SIGSTOP信號後會進入該狀態,在接收到SIGCONT後又會恢復運行。

Ⅱ Linux系統CPU/內存使用率過高的問題排查

    伺服器出現由內存問題引發的故障,例如系統內部服務響應速度變慢、伺服器登錄不上、系統觸發 OOM(Out Of Memory)等。通常情況下當實例內存使用率持續高於90%時,可判斷為實例內存使用率過高。CPU/內存使用率過高的問題原因可能由硬體因素、系統進程、業務進程或者木馬病毒等因素導致。

    筆者以前寫過一篇文章- Linux 下的 60 秒分析的檢查清單 ,適用於 任何性能問題 的分析工作,這一篇文章是關於CPU/內存使用率的具體的排查思路總結。

    執行 top 命令後按  M ,根據駐留內存大小進行排序,查看 「RES」 及 「SHR」 列是否有進程佔用內存過高。按 P,以 CPU 佔用率大小的順序排列進程列表,查看是否有進程佔用cpu過高。

    如果有異常進程佔用了大量 CPU 或內存資源,記錄需要終止的進程 PID,輸入k,再輸入需要終止進程的 PID ,按 Enter。

    另外說明一下,top 運行中可以通過 top 的內部命令對進程的顯示方式進行控制,最常用的是M和P。

    CPU 空閑但高負載情況,Load average 是 CPU 負載的評估,其值越高,說明其任務隊列越長,處於等待執行的任務越多。執行ps -axjf命令,查看進程狀態,並檢查是否存在 D 狀態進程。D 狀態指不可中斷的睡眠狀態,該狀態進程無法被殺死,也無法自行退出。若出現較多 D 狀態進程,可通過恢復該進程依賴資源或重啟系統進行解決。

    Linux 系統通過分頁機制管理內存的同時,將磁碟的一部分劃出來作為虛擬內存。而 kswapd0 是 Linux 系統虛擬內存管理中負責換頁的進程。當系統內存不足時,kswapd0 會頻繁的進行換頁操作。換頁操作非常消耗 CPU 資源,導致該進程持續佔用高 CPU 資源。

    執行top命令,找到 kswapd0 進程。觀察 kswapd0 進程狀態,若持續處於非睡眠狀態,且運行時間較長並持續佔用較高 CPU 資源,執行 vmstat ,free,ps 等指令,查詢系統內進程的內存佔用情況,重啟系統或終止不需要且安全的進程。如果 si,so 的值也比較高,則表示系統存在頻繁的換頁操作,當前系統的物理內存已經不能滿足您的需要。  si  表示每秒從交換區寫入內存的大小(單位:kb/s) , so  每秒從內存寫到交換區的大小。

    執行cat/proc/meminfo |grep-i shmem命令查看共享內存。

        buddy可以以頁為單位獲取連續的物理內存了,即4K為單位。slab負責需要頻繁的獲取/釋放並不大的連續物理內存,比如幾十位元組。執行cat /proc/meminfo | grep -i SUnreclaim命令查看slab 內存。

        標準的 4KB 大小的頁面外,內存大頁管理內存中的巨大的頁面,處理較少的頁面映射表,從而減少訪問/維護它們的開銷。執行cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize" 查看內存大頁。

內存使用率計算:

 (Total - available)100% / Total

(Total - Free - Buffers - Cached - SReclaimable + Shmem)* 100% / Total

  cat /proc/meminfo查看信息含義:

Ⅲ linux 下查看進程用什麼命令

linux 下查看進程可以使用的命令:

1、ps命令查找與進程相關的PID號:

2、ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。

3、ps -A 顯示所有程序。

4、ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。

5、ps -e 此參數的效果和指定"A"參數相同。

6、ps e 列出程序時,顯示每個程序所使用的環境變數。

7、ps f 用ASCII字元顯示樹狀結構,表達程序間的相互關系。

8、ps -H 顯示樹狀結構,表示程序間的相互關系。

9、ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。

10、ps s 採用程序信號的格式顯示程序狀況。

11、ps S 列出程序時,包括已中斷的子程序資料。

12、ps -t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。

13、ps u 以用戶為主的格式來顯示程序狀況。

14、ps x 顯示所有程序,不以終端機來區分。

閱讀全文

與linuxd狀態進程相關的資料

熱點內容
手機怎麼調整app大小 瀏覽:451
加密門禁卡揭秘 瀏覽:135
詞釋pdf 瀏覽:989
安卓手機上如何停止自動續費 瀏覽:880
加密編碼摘要 瀏覽:785
疫情命令黨 瀏覽:496
java轉sql 瀏覽:705
android獲取apn 瀏覽:74
phpfpm進程池 瀏覽:793
解壓掏耳朵音頻 瀏覽:674
爬香山解壓 瀏覽:952
演算法導論回溯 瀏覽:343
開盤指標源碼查詢 瀏覽:528
有道雲保存伺服器出錯 瀏覽:641
生成360文件夾 瀏覽:1004
圖庫的文件夾是哪個 瀏覽:506
程序員為什麼葯學日語 瀏覽:424
熟悉linux常用命令 瀏覽:860
印度外賣小哥是程序員 瀏覽:414
紹興程序員開發駐場流程 瀏覽:548