Linux top 命令詳解:從入門到高級用法

Linux top 命令詳解:從入門到高級用法

在 Linux 系統中,top 是一個強大的實時監控工具,用于查看系統資源使用情況和進程狀態。它可以幫助你快速了解 CPU、內存、負載等信息,是系統管理員和開發者的日常利器。本文將從基本用法開始,逐步深入到日常場景和高級用法,帶你全面掌握 top

一、top 命令基本用法

1. 啟動 top

在終端輸入以下命令即可啟動 top

top

啟動后,你會看到一個動態更新的界面,顯示系統狀態和進程列表。

2. top 界面解析

top 的輸出分為兩大部分:系統概要(頂部)和進程列表(底部)。

系統概要
  • 第一行:系統時間、運行時間、用戶會話數和平均負載(1、5、15 分鐘)。
    • 示例:10:30:45 up 1 day, 2:30, 2 users, load average: 0.25, 0.30, 0.35
    • 平均負載表示系統繁忙程度,通常與 CPU 核心數對比(小于核心數為正常)。
  • 第二行:任務統計,包括運行中(running)、睡眠(sleeping)、停止(stopped)和僵尸(zombie)進程數量。
  • 第三行:CPU 使用率(us 用戶態、sy 內核態、id 空閑等)。
  • 第四、五行:內存使用情況(物理內存和交換空間)。
進程列表
  • PID:進程 ID。
  • USER:運行進程的用戶。
  • %CPU:CPU 使用百分比。
  • %MEM:內存使用百分比。
  • COMMAND:啟動進程的命令。

3. 退出 top

按下 q 鍵即可退出 top

二、日常使用場景

top 在日常運維和開發中有許多實用場景,以下是幾個典型例子:

1. 檢查系統負載

通過第一行的 load average,你可以判斷系統是否過載。例如,在 4 核 CPU 上,如果負載超過 4,可能需要優化或排查問題。

2. 定位高 CPU/內存占用進程

%CPU%MEM 列觀察,找到占用資源最多的進程。例如,發現某個進程(如 httpd)占用 80% CPU,可能需要檢查服務配置或日志。

3. 監控實時性能

在開發或調試時,運行程序后打開 top,觀察其資源占用是否符合預期。比如測試一個 Python 腳本時,確認它是否意外吃滿內存。

4. 檢測僵尸進程

如果第二行顯示較多 zombie 進程,說明有進程未被父進程回收,可以用 ps 進一步排查。

三、top 的交互操作(基礎用法)

top 是一個交互式工具,運行時可以通過按鍵調整顯示內容:

  • h:顯示幫助菜單。
  • f:進入字段管理界面,選擇顯示哪些列(如添加 RSS 實際內存列)。
  • P:按 CPU 使用率排序(默認)。
  • M:按內存使用率排序。
  • k:輸入 PID 殺死進程(需有權限)。
  • r:輸入 PID 修改進程優先級(renice)。
  • 1:顯示所有 CPU 核心的獨立使用率。
  • z:啟用顏色高亮顯示。

示例:按內存排序

運行 top 后按 M,列表會按 %MEM 從高到低排序,快速找到內存大戶。

四、高級用法

除了基礎功能,top 還支持命令行參數和定制化操作,適合高級用戶。

1. 命令行參數

直接在啟動時指定選項,避免交互式調整:

  • -d 秒數:設置刷新間隔(默認 3 秒)。
    top -d 1  # 每秒刷新一次
    
  • -p PID:只監控指定進程。
    top -p 1234  # 監控 PID 為 1234 的進程
    
  • -u 用戶名:只顯示某用戶的進程。
    top -u alice  # 只看用戶 alice 的進程
    
  • -b:批處理模式(非交互),適合腳本輸出。
    top -b -n 1 > output.txt  # 運行一次并保存到文件
    

2. 保存自定義配置

top 的顯示設置(如列順序、排序方式)可以保存:

  1. 運行 top,按 W 保存配置。
  2. 配置會保存到 ~/.toprc,下次啟動時自動加載。

3. 結合管道和腳本

在腳本中,top 的批處理模式非常實用。例如,獲取 CPU 使用率最高的進程:

top -b -n 1 | grep -A 1 "PID" | tail -n 1 | awk '{print $1 " " $9}'

輸出 PID 和 %CPU,例如:

1234 45.6

4. 高級過濾與高亮

運行 top 后:

  • o,輸入過濾條件(如 COMMAND=nginx),只顯示符合條件的進程。
  • = 清除過濾。

5. 分析多核 CPU

1 查看每個核心的使用率,判斷負載是否均衡。如果某個核心占用率長期 100%,可能存在單線程瓶頸。

五、與替代工具的對比

top 雖然強大,但并非唯一選擇:

  • htop:增強版 top,界面更友好,支持鼠標操作。
  • ps:靜態快照,適合腳本處理。
  • free:專注于內存信息。
    根據需求選擇合適的工具,比如日常監控用 top,復雜分析用 htop

六、注意事項

  1. 權限問題:普通用戶只能殺死自己的進程,root 用戶可操作所有進程。
  2. 資源占用top 本身占用很少,但頻繁刷新(如 -d 0.1)可能略微增加負載。
  3. 數據解讀%CPU 超過 100% 可能是多核累加,需結合核心數理解。

七、總結

top 是 Linux 中不可或缺的工具,簡單易用又功能強大。日常使用時,它能幫你快速定位問題;高級用法則讓它成為腳本化運維的得力助手。無論是新手還是老手,花點時間掌握 top,都能顯著提升系統管理效率。

試試在你的服務器上運行 top,觀察資源使用情況,或者用 -p 監控某個關鍵進程,體會它的實用性吧!


希望這篇博客對你理解和使用 top 命令有所幫助!如果有其他問題,歡迎留言討論。

后記

2025年3月18日21點59分于上海。在Grok 3大模型輔助下完成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898287.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898287.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898287.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uniapp-x vue 特性

生命周期 在組合式API中,組件可以監聽應用和頁面的生命周期。但由于應用和頁面都有onShow和onHide,導致重名。所以在組合式的組件中監聽頁面的顯示隱藏,改為了onPageShow和onPageHide。 這個和uniapp不一樣,uniapp自定義組件無法…

HTML5掃雷游戲開發實戰

HTML5掃雷游戲開發實戰 這里寫目錄標題 HTML5掃雷游戲開發實戰項目介紹技術棧項目架構1. 游戲界面設計2. 核心類設計 核心功能實現1. 游戲初始化2. 地雷布置算法3. 數字計算邏輯4. 掃雷功能實現 性能優化1. DOM操作優化2. 算法優化 項目亮點技術難點突破1. 首次點擊保護2. 連鎖…

Qt之自定義界面組件 一

通過qt中的painter繪圖事件繪制一個電池電量圖的變化。效果如下圖 創建一個基于界面widget工程,在wdiget界面添加一個widget界面,將添加的widget界面的類提升為Tbattery.在Tbattery類中重寫painEvent電池電量代碼 文件目錄結構 主要部分代碼 //Tbattery.cpp #inc…

LeRobot源碼剖析——對機器人各個動作策略的統一封裝:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 過去2年多的深入超過此前7年,全靠夜以繼日的勤奮,一天當兩天用,摳論文 摳代碼 和大模型及具身同事討論,是目前日常 而具身庫里,idp3、π0、lerobot值得反復研究,故,近期我一直在摳π0及l…

數據結構篇——線索二叉樹

一、引入 遍歷二叉樹是按一定規則將二叉樹結點排成線性序列,得到先序、中序或后序序列,本質是對非線性結構線性化,使結點(除首尾)在線性序列中有唯一前驅和后繼;但以二叉鏈表作存儲結構時,只能獲…

汽車保養記錄用什么軟件記錄,汽車維修記錄查詢系統,佳易王汽車保養維護服務記錄查詢管理系統操作教程

一、概述 本實例以佳易王汽車保養維護服務記錄查詢管理系統為例說明,其他版本可參考本實例。試用版軟件資源可到文章最后了解,下載的文件為壓縮包文件,請使用免費版的解壓工具解壓即可試用。 軟件特點:1、功能實用,操…

Sqlmap注入工具簡單解釋

安裝 1. 安裝 Python SQLMap 是基于 Python 開發的,所以要先安裝 Python 環境。建議安裝 Python 3.9 或更高版本,可從 Python 官方網站 下載對應操作系統的安裝包,然后按照安裝向導完成安裝。 2. 獲取 SQLMap 可以從 SQLMap 的官方 GitHu…

LLM自動化評測

使用的數據集:ceval-exam import requests from datasets import load_dataset, concatenate_datasets import re from tqdm import tqdm import re, time, tiktoken, ollama from ollama import ChatResponse from ollama import Optionsdef llm(model, query, te…

Python IP解析器 ip2region使用

說明:最近需要在python項目內使用IP定位所在城市的需求,沒有采用向外部ISP服務商API請求獲取信息的方案,則翻了翻,在搞Java時很多的方案,在Python端反而可選擇范圍很小。 # 示例查詢 ips ["106.38.188.214"…

python開發訂單查詢功能(flask+orm bee)

1. 搭建python環境。 可以參考其它文檔。 此處python使用 3.12 IDE隨意,PyCharm 或 Eclipse PyDev也可以。 2. Flask 2.1 安裝Flask pip install Flask 2.2 一個最簡單的flask實例 創建一個工程, 新建一個 main.py文件, 輸入以下內容…

哈爾濱服務器租用托管流程

哈爾濱服務器租用托管流程可分為三個階段實施,具體操作如下: 一、前期準備階段 業務需求評估 明確計算資源需求:CPU核心數/線程數、內存容量、存儲類型(HDD/SSD/NVMe)及容量、帶寬標準(獨享/共享) 確定網絡架構要求:多線接入、國際…

音頻大語言模型可作為描述性語音質量評價器

論文《AUDIO LARGE LANGUAGE MODELS CAN BE DESCRIPTIVE SPEECH QUALITY EVALUATORS》學習 推動多模態代理從"能聽"到"懂好壞"的進化 摘要: . 研究背景與問題 核心內容:現有音頻大語言模型缺乏對輸入語音質量的感知能力&#xff…

CVPR2025自動駕駛端到端前沿論文匯總

自動駕駛 文章目錄 自動駕駛前言自動駕駛的軌跡預測論文端到端自動駕駛論文 前言 匯總CVPR2025自動駕駛前沿論文 自動駕駛的軌跡預測論文 Leveraging SD Map to Augment HD Map-based Trajectory PredictionModeSeq: Taming Sparse Multimodal Motion Prediction with Seque…

我在哪,要去哪

在直播間聽到一首好聽的歌《我在哪,要去哪》-湯倩。 遇見的事:21~24號抽調去招生。 感受到的情緒:公假嗎?給工作量嗎?月工作量不夠扣錢嗎?報銷方便嗎?有事情,從來不解決后顧&#x…

某快餐店用戶市場數據挖掘與可視化

1、必要庫的載入 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns2、加載并清洗數據 # 2.1 加載數據 df pd.read_csv(/home/mw/input/survey6263/mcdonalds.csv)# 2.2 數據清洗 # 2.2.1 檢查缺失值 print(缺失值情況:) print(df.isn…

Easysearch 索引生命周期管理實戰

如果你的使用場景是對時序型數據進行分析,可能你會更重視最新的數據,并且可能會定期對老舊的數據進行一些處理,比如減少副本數、forcemerge、 刪除等。Easysearch 的索引生命周期管理功能,可以自動完成此類索引的管理任務。 創建…

《心理學與生活》2025最新網課答案

《心理學與生活》2025最新網課答案 文章目錄 《心理學與生活》2025最新網課答案發展與教育單元測試情緒與情感單元測驗人格與動機單元測試感知與記憶單元測試文化與社會單元測試 發展與教育單元測試 題數 20 棉花糖實驗中哪些小孩長大后的表現更好()。 …

Modbus通信協議基礎知識總結

1. 數據類型與存儲區分類 Modbus協議將數據分為四類存儲區,通過存儲區代號區分: 輸出線圈(0x):可讀寫,對應二進制開關量(如繼電器狀態),地址范圍000001-065536&#xff…

docker環境下安裝flink

前言 flink在實時計算領域中有著舉足輕重的地位。這篇文章來介紹一下,在linux的docker環境下,怎么快速安裝一個單機版本的flink。 操作流程 環境準備 檢查docker環境是不是正常,如果在拉取鏡像的時候比較慢,建議使用鏡像加速&…

LeetCode 2614.對角線上的質數:遍歷(質數判斷)

【LetMeFly】2614.對角線上的質數:遍歷(質數判斷) 力扣題目鏈接:https://leetcode.cn/problems/prime-in-diagonal/ 給你一個下標從 0 開始的二維整數數組 nums 。 返回位于 nums 至少一條 對角線 上的最大 質數 。如果任一對角線上均不存在質數&…