本文是 Unix/Linux 系統管理自動化系列中的一篇,主要講述如何實現自動化監控進程狀態和性能並及時通知系統管理員。
進程監控是 Unix/Linux 系統管理中一個非常重要的組成部分。它可以監控進程狀態、進程的 CPU 利用率等信息,並且可以在發現進程出現異常情況的時候,發送告警信息給系統管理員或者做出指定的反應。我們可以使用系統進程監控信息進行合理的進程調度從而優化系統性能,或者根據這些信息調整系統的行為。
不同的操作系統監控進程的命令可能略有不同。本文將介紹 Unix/Linux 操作系統進程管理命令及相關信息,並論述 Unix/Linux 操作系統上進程監控的自動化腳本實現。
Unix/Linux 進程管理相關命令介紹
進程是操作系統用於控制系統資源使用的實體。Unix/Linux 進程管理相關的命令主要有以下幾個,在後面的腳本實現中會用到部分命令。
顯示進程屬性命令
ps 命令:該命令是最基本同時也是非常強大的進程查看命令,用於報告進程標識、用戶、CPU 時間消耗以及其他屬性。利用它可以確定有哪些進程正在運行及運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等。ps 命令可以監控後台進程的工作情況,因為後台進程是不和屏幕鍵盤這些標准輸入 / 輸出設備進行通信的,如果需要檢測其情況,可以使用 ps 命令。
單獨使用 ps 命令所看到的進程列表,都是在前台執行的進程,但並非所有進程都在前台執行,也有不少進程隱藏在後台執行。使用命令 ps -e 可以顯示所有進程。
進程性能檢測命令
top 命令:Linux 使用 top 命令來顯示 CPU 占用率為前幾位的進程。該命令可以按 CPU 使用率、內存使用率、執行時間對任務進行排序,而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定。top 主要字段的含義如下:
topas 命令:AIX 使用 topas 命令在字符終端上報告有關本地系統上的活動的至關重要的統計信息,包括顯示 CPU 占用率為前幾位的進程。topas 命令以缺省的兩秒間隔從系統中提取並顯示統計信息。通過命令 topas -P 可以進入 topas 的 process 子部分,顯示活動進程的列表。各進程將按它們在監視間隔期間的 CPU 使用率進行排序。topas 針對每個進程所顯示的字段含義如下: