日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

linux?top命令基本實戰_linux shell

作者:我是沐風曉月 ? 更新時間: 2023-04-02 編程語言

前言??????
想要學好Linux,命令是基本功,企業中常用的命令大約200多個,不管是寫shell腳本還是管理操作系統,最常用的命令必須要牢牢掌握,像我們以前學乘法口訣一樣,爛熟于心,唯有如此,才能打牢基礎。

一. top命令介紹

top命令的功能是用于實時顯示系統運行狀態,包含處理器、內存、服務、進程等重要資源信息。

我們常常會把top命令比作是“加強版的Windows任務管理器”,因為除了能看到常規的服務進程信息以外,還能夠對處理器和內存的負載情況一目了然。

使用top命令可以實時感知系統全局的運行狀態,非常適合作為接手服務器后執行的第一條命令。

在top命令中按f按可以查看顯示的列信息,按對應字母來開啟/關閉列,大寫字母表示開啟,小寫字母表示關閉。帶*號的是默認列

二. 語法格式及常用選項

依據慣例,拿到一個命令首先查看 幫助, top 沒有hlep幫助命令,可以使用man top查看

root@itlaoxin41 ~]# man top
[root@itlaoxin41 ~]# man top >> man_top.txt
[root@itlaoxin41 ~]# vim man_top.txt 

man的幫助手冊一千多行,我們可以放到一個文檔中只挑選對自己有用的,后續再去看參數。

命令格式:
top [參數】

常用選項:

-b:以批處理模式操作;
-c:顯示完整的進程信息;
-d:屏幕刷新間隔時間;
-I:忽略失效過程;
-s:保密模式;
-S:累積模式;
-i<時間>:設置間隔時間;
-u<用戶名>:指定用戶名;
-p<進程號>:指定進程;
-n<次數>:循環顯示的次數。

三. 參考案例

3.1 顯示進程信息

此時,無需加任何參數 直接執行top即可

#top

執行結果如下圖:

在這里插入圖片描述

3.2 顯示完整的進程命令

-c 參數 ,與不使用-c參數做對比,查看后面的command的變化

#top -c 

在這里插入圖片描述

如果我們要查看前10行,可以使用

 top -c |head 

但這么查看不會一直動態顯示,會自動退出。

3.3 以批處理的形式展示

這里會用到-b的參數

[root@mufeng ~]# top -b 

此時需要執行ctrl +c 才能退出。

3.4 設置信息更新頻次

-n 參數,用來設置信息的更新次數,這里改成5,意味著刷新5次后自己退出。

# top -n 5

-d 參數是用來設置秒數,默認為三秒,可以改為5

top -d 5

兩個參數也可以一起用:

[root@mufeng ~]# top -d 1 -n 3 

表示每一秒鐘刷新一次,一共刷新3次后退出。

3.5 顯示指定進程號的信息

我們先查看到進程號,比如 17447
這時候用 -p 參數后面直接跟17447即可:

root@mufeng ~]# top -p 17447

在這里插入圖片描述

3.6 top面板中常用參數

  • 鍵盤數字1 : 可以查看每個邏輯cpu的狀況,再按一次1 就返回top的基本界面

在這里插入圖片描述

  • 字母b 可以打開和關閉正在運行的進程高亮顯示
  • 字母y 可以關閉或者打開運行態進程的加亮效果

下圖是敲擊b之后的效果,要注意如果沒有正在運行的進程,可能沒啥效果:

在這里插入圖片描述

3.7 其他用法

顯示某個進程的信息

# top -u httpd

顯示線程信息而不是進程的信息

# top -H

找出系統中使用CPU最多的進程:

運行top , 找出使用CPU最多的進程 ,按大寫的P,可以按CPU使用率來排序顯示

在這里插入圖片描述

四. top的相關說明

4.1 交互命令介紹

在top命令執行過程中可以使用的一些交互命令。這些命令都是單字母的,如果在命令行中使用了-s選項, 其中一些命令可能會被屏蔽。

參數 描述
h 顯示幫助畫面,給出一些簡短的命令總結說明;
k 終止一個進程;
i 忽略閑置和僵死進程,這是一個開關式命令;
q 退出程序;
r 重新安排一個進程的優先級別;
S 切換到累計模式;
s 改變兩次刷新之間的延遲時間(單位為s),如果有小數,就換算成ms。輸入0值則系統將不斷刷新,默認值是5s;
f或者F 從當前顯示中添加或者刪除項目;
o或者O 改變顯示項目的順序;
l 切換顯示平均負載和啟動時間信息;
m 切換顯示內存信息;
t 切換顯示進程和CPU狀態信息;
c 切換顯示命令名稱和完整命令行;
M 根據駐留內存大小進行排序;
P 根據CPU使用百分比大小進行排序;
T 根據時間/累計時間進行排序;
w 將當前設置寫入~/.toprc文件中。

top命令交互

1.基礎操作

  • 1:顯示CPU詳細信息,每核顯示一行
  • d / s :修改刷新頻率,單位為秒
  • h:可顯示幫助界面
  • n:指定進程列表顯示行數,默認為滿屏行數
  • q:退出top

2.面板隱藏顯示

  • l:隱藏/顯示第1行負載信息;
  • t:隱藏/顯示第2~3行CPU信息;
  • m:隱藏/顯示第4~5行內存信息;

3.進程列表排序

  • M:根據駐留內存大小進行排序;
  • P:根據CPU使用百分比大小進行排序;
  • T:根據時間/累計時間進行排序;

這里使用頻率最高的是P、T、M

因為通常使用top,我們就想看看是哪些進程最耗cpu資源、占用的內存最多;

注:通過”shift + >”或”shift + <”可以向右或左改變排序列;

如果只需要查看內存:可用free命令。

只查看uptime信息(第一行),可用uptime命令;

詳細交互指令:h / ? 可顯示幫助界面

Help for Interactive Commands - procps-ng version 3.3.10
Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.

  Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
  l,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
  0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
  f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width

  L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
  R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
  c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
  u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
  n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
  C,...   . Toggle scroll coordinates msg for: up,down,left,right,home,end

  k,r       Manipulate tasks: 'k' kill; 'r' renice
  d or s    Set update interval
  W,Y       Write configuration file 'W'; Inspect other output 'Y'
  q         Quit
          ( commands shown with '.' require a visible task display window ) 
Press 'h' or '?' for help with Windows,
Type 'q' or <Esc> to continue 

4.2 top面板每行信息的含義

在這里插入圖片描述

4.2.1 第一行信息詳解

第一行內容和uptime彈出的信息一樣

參數 描述
09:42:57 當前時間
up 5:38 系統運行時間,說明服務器運行了5個小時38分
3users 當前登錄用戶數
load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度。 三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。

4.2.2 第二三行信息詳解

此處當有多個CPU時,這些內容可能會超過兩行

信息 描述
Tasks210 total 進程總數
4running 正在運行的進程數
204 sleeping 睡眠的進程數
2 stopped 停止的進程數
0 zombie 僵尸進程數
Cpu(s): 0.0% us 系統用戶進程使用CPU百分比。
4.8% sy 內核中的進程占用CPU百分比
0.0% ni 用戶進程空間內改變過優先級的進程占用CPU百分比
94.4% id 空閑CPU百分比
0.0% wa cpu等待I/0完成的時間總量,也就是等待輸入輸出的CPU時間百分比
0.0% hi CPU服務于硬件中斷所耗費的時間, 也就是硬中斷占的CPU百分比。
0.0% si 軟中斷消耗時間也就是軟中斷占的CPU百分比。
0.0 st st:虛擬機hypervisonr偷去的cpu的時間。比如:物理機已經運行了KVM,XEN虛擬機。KVM虛擬機也占用物理機的cpu時間

這里提到了幾個概念: 硬中斷,軟中斷

  • 硬中斷是由硬件產生的,比如,像磁盤,網卡,鍵盤,時鐘等。每個設備或設備集都有它自己的IRQ(中斷請求)。

  • 軟中斷: 通常,軟中斷是一些對I/O的請求。

軟中斷: 通常,軟中斷是一些對I/O的請求。

這些請求會調用內核中可以調度I/O發生的程序。對于某些設備,I/O請求需要被立即處理,而磁盤I/O請求通常可以排隊并且可以稍后處理。

根據I/O模型的不同,進程或許會被掛起直到I/O完成,此時內核調度器就會選擇另一個進程去運行。I/O可以在進程之間產生并且調度過程通常和磁盤I/O的方式是相同。

4.2.3 第四五行信息詳解

第四五行是內存信息

在這里插入圖片描述

信息 描述
Mem : 1863252 total 物理內存總量
72956 free 空閑內存總量
786372 used, 使用的物理內存總量
1003924 buff/cache 用作內核緩存的內存量和free -k是一個意思
Swap: 2017948k total 交換分區總量
2048756free 空閑交換分區總量
48392 used 使用的交換區總量
6960648 avail Mem 緩沖的交換區總量

這里還要解釋一下緩沖(buffer)和緩存(cache)的區別:

  • 緩存(cache)是在讀取硬盤中的數據時,把最常用的數據保存在內存的緩存區中,再次讀取該數據時,就不去硬盤中讀取了,而在緩存中讀取。
  • 緩沖(buffer)是在向硬盤寫入數據時,先把數據放入緩沖區,然后再一起向硬盤寫入,把分散的寫操作集中進行,減少磁盤碎片和硬盤的反復尋道,從而提高系統性能。

簡單來說,緩存(cache)是用來加速數據從硬盤中"讀取"的,而緩沖(buffer)是用來加速數據"寫入"硬盤的。

4.2.4 第7行進程信息

在這里插入圖片描述

信息 含義
PID 進程ID
user 進程所有者的用戶名
PR 優先級(由內核動態調整),用戶不能自己調整
NI 進程優先級。 nice值,負值表示高優先級,正值表示低優先級,用戶可以自己調整
VIRT(virtual memory usage) 虛擬內存,是進程正在使用的所有內存(ps中標為VSZ)
RES(resident memory usage) 是進程所使用的物理內存。實際實用內存(ps中標為RSS) ,常駐內存
SHR 共享內存
S 進程的狀態
%CPU 上次更新到現在的CPU時間占用百分比
%MEM 進程使用的物理內存百分比
TIME+ 進程使用的CPU時間總計,單位1/100秒
COMMAND 命令名/命令行

五. 更強大的工具htop推薦

htop 是一個 Linux 下的交互式的進程瀏覽器,可以用來替換Linux下的top命令。不過這個工具再2018年之后就沒有在更新過了,目前最新的包是:

在這里插入圖片描述

與Linux傳統的top相比,htop更加人性化。它可讓用戶交互式操作,支持顏色主題,可橫向或縱向滾動瀏覽進程列表,并支持鼠標操作。

與top相比,htop有以下優點:

  • 可以橫向或縱向滾動瀏覽進程列表,以便看到所有的進程和完整的命令行。
  • 在啟動上,比top 更快。
  • 殺進程時不需要輸入進程號。
  • htop 支持鼠標操作。

總結

top是超級難的命令了,主要原因在于參數太多,需要把每個參數吃透,又得大半天的時間,你學會了嗎?

原文鏈接:https://blog.csdn.net/wisdom_futrue/article/details/128843916

欄目分類
最近更新