Linux服務器性能監控:使用 top 指令實時查看進程和系統資源

一、什麼是 top 指令

top 是 Linux 系統下常用的性能監控工具,它用於以實時方式顯示系統總體運行情況及各個進程的資源佔用情況。通過 top 指令,可以快速了解系統的運行狀態,察看 CPU、內存、I/O 等關鍵性能指標,以及了解每個進程的 CPU、內存、線程等佔用情況,幫助我們及時發現系統異常情況。

二、如何使用 top 指令

下面我們以 CentOS 系統為例,介紹 top 指令的使用方法:

$ top

top 會按照資源使用率從高到低的順序顯示當前系統運行的進程,每個進程都會展示 CPU 佔用率、內存佔用率、運行狀態、運行時間、進程 ID 等信息。我們可以看到最上面的幾條記錄,它們是 CPU、內存、swap 的概略信息:

top - 05:38:19 up 2 days,  2:33,  1 user,  load average: 2.55, 2.35, 2.15
Tasks: 389 total,   8 running, 381 sleeping,   0 stopped,   0 zombie
%Cpu(s): 15.6 us,  1.9 sy,  0.0 ni, 79.8 id,  2.6 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem : 16064896 total,  7399676 free,  5780848 used,  2885372 buff/cache
KiB Swap:  1048572 total,   992836 free,    55192 used.  8841872 avail Mem

其中:

  • load average 表示系統的負載;
  • Task 表示進程數量;
  • %Cpu(s) 表示 CPU 的使用情況;
  • KiB Mem 表示內存使用情況。

除了上面的系統概況外,top 指令還會列出各進程的實時 CPU、內存等資源佔用情況:

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1244 root      20   0 36.075g 2.983g  16012 S 281.2 19.0  27:45.86 java
20850 root      20   0  0.390t 1.298g  27200 S  43.8  8.3 423:27.65 java
19128 mysql     20   0 538.5m  92.8m  12148 S  17.2  0.6 709:49.90 mysqld
25151 nginx     20   0  159488  27572   4364 R   7.3  0.2   0:00.09 php-fpm
   23 root      20   0       0      0      0 S   1.3  0.0  13:23.38 ksoftirqd/2

其中每一列的含義如下:

  • PID:進程 ID;
  • USER:運行進程的用戶;
  • %CPU:進程佔用 CPU 資源的百分比;
  • %MEM:進程佔用內存資源的百分比;
  • TIME+:進程運行的時間。

我們還可以通過一些快捷鍵改變 top 界面的顯示內容,例如:

  • 輸入 P,將根據 CPU 百分比大小降序排列進程;
  • 輸入 M,將根據內存佔用大小降序排列進程。

三、top 命令的常用選項

top 指令有一些比較常用的參數,下面我們來介紹一些常用的參數:

1、-d/–delay=秒數

此選項指定 top 每次更新的時間間隔,默認為 5 秒。

2、-n/–iterations=次數

此選項指定 top 的更新次數,例如,top -n 3 將輸出 top 的前三次更新結果。

3、-p/–pid=進程號

此選項指定 top 只顯示指定進程 ID 的信息,進程 ID 以逗號分隔,例如,top -p 1234,5678 顯示進程 ID 為 1234 和 5678 的進程信息。

四、top 命令的實戰使用

在實際運維工作中,top 指令是非常常用的,下面我們以一些例子來介紹 top 在實戰中的使用。

1、查看進程佔用 CPU 資源最高的前 10 條記錄

top -bn 1 -o %CPU | head -n 17

此命令將會輸出 CPU 佔用率最高的前 10 個進程。

2、實時監控某個進程的佔用情況

top -p 進程ID -d 5

此命令將會每隔 5 秒刷新一次進程 ID 為指定ID的進程佔用信息。

3、查看指定用戶運行的進程

top -U 用戶名

此命令將會輸出用戶名下的所有進程佔用情況。

4、查看系統的負載情況

top -bn 1 | grep "load average:"

此命令將會輸出系統的負載情況。

五、小結

top 指令是 Linux 系統下非常實用的性能監控工具,其可以幫助我們快速定位進程資源佔用較高的原因,從而優化系統的運行。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150947.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-10 01:11
下一篇 2024-11-10 01:11

相關推薦

  • 如何優化 Git 性能和重構

    本文將提供一些有用的提示和技巧來優化 Git 性能並重構代碼。Git 是一個非常流行的版本控制系統,但是在處理大型代碼倉庫時可能會有一些性能問題。如果你正在處理這樣的問題,本文將會…

    編程 2025-04-29
  • 如何通過jstack工具列出假死的java進程

    假死的java進程是指在運行過程中出現了某些問題導致進程停止響應,此時無法通過正常的方式關閉或者重啟該進程。在這種情況下,我們可以藉助jstack工具來獲取該進程的進程號和線程號,…

    編程 2025-04-29
  • 使用@Transactional和分表優化數據交易系統的性能和可靠性

    本文將詳細介紹如何使用@Transactional和分表技術來優化數據交易系統的性能和可靠性。 一、@Transactional的作用 @Transactional是Spring框…

    編程 2025-04-28
  • Python性能優化方案

    本文將從多個方面介紹Python性能優化方案,並提供相應的示例代碼。 一、使用Cython擴展 Cython是一個Python編譯器,可以將Python代碼轉化為C代碼,可顯著提高…

    編程 2025-04-28
  • Python AUC:模型性能評估的重要指標

    Python AUC是一種用於評估建立機器學習模型性能的重要指標。通過計算ROC曲線下的面積,AUC可以很好地衡量模型對正負樣本的區分能力,從而指導模型的調參和選擇。 一、AUC的…

    編程 2025-04-28
  • Python性能分析: 如何快速提升Python應用程序性能

    Python是一個簡潔高效的編程語言。在大多數情況下,Python的簡潔和生產力為開發人員帶來了很大便利。然而,針對應用程序的性能問題一直是Python開發人員需要面對的一個難題。…

    編程 2025-04-27
  • Java中的殭屍進程簡介與解決方法

    本文將對Java中的殭屍進程進行詳細闡述,並給出幾種解決方法。 一、殭屍進程的概念 在操作系統中,進程是指正在執行的程序。當一個進程創建了一個子進程,而該子進程完成了任務卻沒有被父…

    編程 2025-04-27
  • 多線程和多進程的應用

    多線程和多進程是現代編程中常用的技術,可以提高程序的效率和性能。本文將從不同的角度對多線程和多進程進行詳細的介紹和應用。 一、多線程 vs 多進程 多線程和多進程都是為了實現程序並…

    編程 2025-04-27
  • Python多進程讀取數據

    本文將從多個方面詳細闡述在Python中如何通過多進程讀取數據,並給出完整的代碼示例。 一、多進程概述 在計算機科學中,進程是正在執行的程序實例。多進程是指計算機系統同時執行多個進…

    編程 2025-04-27
  • 進程a與進程b共享變量s1

    本文將從多個方面對進程a與進程b共享變量s1做詳細的闡述,並給出代碼示例。 一、定義全局變量s1 進程a與進程b共享變量s1,意味着s1是一個全局變量。在C語言中,可以使用關鍵字e…

    編程 2025-04-27

發表回復

登錄後才能評論