TOP[Linux工具]

系統管理員可用運行top命令監視進程和Linux整體性能

top命令是最流行Unix/Linux的性能工具之一。系統管理員可用運行top命令監視進程和Linux整體性能。

使用許可權:所有使用者

使用方式:top [-] [d delay] [q] [c] [S] [s] [n]

說明:即時顯示 process 的動態

d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s

q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的許可權則 top 將會以最高的優先序執行

c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來

s : 安全模式,將交談式指令取消, 避免潛在的危機

i : 不顯示任何閒置 (idle) 或無用 (zombie) 的行程

n : 更新的次數,完成後將會退出 top

b : 批次檔模式,搭配 “n” 參數一起使用,可以用來將 top 的結果輸出到檔案內

範例:

顯示更新十次後退出 ;

top -n 10

使用者將不能利用交談式指令來對行程下命令 :

top -s

將更新顯示二次的結果輸入到名稱為 top.log 的檔案里 :

top -n 2 -b > top.log

對下面top進行說明:
top - 10:38:10 up 4 days, 17:37, 1 user, load average: 0.23, 0.14, 0.10
Tasks: 429 total, 1 running, 428 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 20605080k total, 2020484k used, 18584596k free, 324324k buffers
Swap: 22708216k total, 0k used, 22708216k free, 546292k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

第一行:
10:38:10 — 當前系統時間
up 4 days, 17:37 — 系統已經運行了4天17小時37分鐘(在這期間沒有重啟過)
1 user — 當前有1個用戶登錄系統
load average: 0.23, 0.14, 0.10— load average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況。

第二行:
Tasks — 任務(進程),系統共有429個進程,其中處於運行中的有1個,428個在休眠(sleep),stoped狀態的有0個,zombie狀態(殭屍)的有0個。

第三行:cpu狀態
0.0% us — 用戶空間占用CPU的百分比。
0.1% sy — 核心空間占用CPU的百分比。
0.0% ni — 改變過優先權的進程占用CPU的百分比
99.8% id — 空閒CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中斷(Hardware IRQ)占用CPU的百分比
0.0% si — 軟中斷(Software Interrupts)占用CPU的百分比

第四行:記憶體狀態
20605080k total — 物理記憶體總量(20GB)
2020484k used — 使用中的記憶體總量(2GB)
18584596k free — 空閒記憶體總量(18G)
324324k buffers — 快取的記憶體量 (320M)

第五行:swap交換分區
22708216k 20total — 交換區總量(22GB)
0 used — 使用的交換區總量(0M)
22708216k free — 空閒交換區總量(22GB)
546292k cached — 緩衝的交換區總量(500MB)

第七行以下:各進程(任務)的狀態監控
PID — 進程id
USER — 進程所有者
PR — 進程優先權
NI — nice值。負值表示高優先權,正值表示低優先權
VIRT — 進程使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的物理記憶體大小,單位kb。RES=CODE+DATA
SHR — 共享記憶體大小,單位kb
S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程
%CPU — 上次更新到現在的CPU時間占用百分比
%MEM — 進程使用的物理記憶體百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)

一些特殊用法

1.多U多核CPU監控

在top基本視圖中,按鍵盤數字“1”,可監控每個邏輯CPU的狀況(不是物理CPU)

2.高亮顯示當前運行進程敲擊鍵盤“b”(打開/關閉加亮效果)

3、使用h 看更多使用技巧

Top命令

Linux下的top命令詳細介紹

使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

說明:即時顯示 process 的動態

d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s

q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的許可權,則 top 將會以最高的優先序執行

c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 的 CPU time 累積起來

s : 安全模式,將交談式指令取消, 避免潛在的危機

i : 不顯示任何閒置 (idle) 或無用 (zombie) 的行程

n : 更新的次數,完成後將會退出 top

b : 批次檔模式,搭配 "n" 參數一起使用,可以用來將 top 的結果輸出到檔案內

範例:

顯示更新十次後退出 ;

top -n 10

使用者將不能利用交談式指令來對行程下命令 :

top -s

將更新顯示二次的結果輸入到名稱為 top.log 的檔案里 :

top -n 2 -b < top.log

top命令和ps命令的基本作用是相同的,顯示系統當前的進程和其他狀況;但是top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。如? 前台執行該命令,它將獨占前台,直到用戶終止該程式為止。比較準確的說,top命令提供了實時的對系統處理器的狀態監視。它將顯示系統中CPU最“敏感”的任務列表。該命令可以按CPU使用。記憶體使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過互動式命令或者在個人定製檔案中進行設定。在後面的介紹中將把命令參數和互動命令分開講述。

下面是該命令的語法格式:

top [-] [d delay] [q] [c] [s] [S] [i]

d 指定每兩次螢幕信息刷新之間的時間間隔。當然用戶可以使用s互動命令來改變之。

q 該選項將使top沒有任何延遲的進行刷新。如果調用程式有超級用戶許可權,那么top將以儘可能高的優先權運行。

S 指定累計模式。

s 使top命令在安全模式中運行。這將去除互動命令所帶來的潛在危險。

i 使top不顯示任何閒置或者僵死進程。

c 顯示整個命令行而不只是顯示命令名

top命令顯示的項目很多,默認值是每5秒更新一次,當然這是可以設定的。顯示的各項目為:

uptime 該項顯示的是系統啟動時間、已經運行的時間和三個平均負載值(最近1秒,5秒,15秒的負載值)。

processes 自最近一次刷新以來的運行進程總數。當然這些進程被分為正在運行的,休眠的,停止的等很多種類。進程和狀態顯示可以通過互動命令t來實現。

CPU states 顯示用戶模式,系統模式,優先權進程(只有優先權為負的列入考慮)和閒置等各種情況所占用CPU時間的百分比。優先權進程所消耗的時間也被列入到用戶和系統的時間中,所以總的百分比將大於100%。

Mem 記憶體使用情況統計,其中包括總的可用記憶體,空閒記憶體,已用記憶體,共享記憶體和快取所占記憶體的情況。

Swap 交換空間統計,其中包括總的交換空間,可用交換空間,已用交換空間。

PID 每個進程的ID。

PPID 每個進程的父進程ID。

UID 每個進程所有者的UID 。

USER 每個進程所有者的用戶名。

PRI 每個進程的優先權別。

NI 該進程的優先權值。

SIZE 該進程的代碼大小加上數據大小再加上堆疊空間大小的總數。單位是KB。

TSIZE 該進程的代碼大小。對於核心進程這是一個很奇怪的值。

DSIZE 數據和堆疊的大小。

TRS 文本駐留大小。

D 被標記為“不乾淨”的頁項目。

LIB 使用的庫頁的大小。對於ELF進程沒有作用。

RSS 該進程占用的物理記憶體的總數量,單位是KB。

SHARE 該進程使用共享記憶體的數量。

STAT 該進程的狀態。其中S代表休眠狀態;D代表不可中斷的休眠狀態;R代表運行狀態;Z代表僵死狀態;T代表停止或跟蹤狀態。

TIME 該進程自啟動以來所占用的總CPU時間。如果進入的是累計模式,那么該時間還包括這個進程子進程所占用的時間。且標題會變成CTIME。

%CPU 該進程自最近一次刷新以來所占用的CPU時間和總時間的百分比。

%MEM 該進程占用的物理記憶體占總記憶體的百分比。

COMMAND 該進程的命令名稱,如果一行顯示不下,則會進行截取。記憶體中的進程會有一個完整的命令行。

下面介紹在top命令執行過程中可以使用的一些互動命令。從使用角度來看,熟練的掌握這些命令比掌握選項還重要一些。這些命令都是單字母的,如果在命令行選項中使用了s選項,則可能其中一些命令會被禁止掉。

$#@60;空格立即刷新顯示。

Ctrl+L 擦除並且重寫螢幕。

h或者? 顯示幫助畫面,給出一些簡短的命令總結說明。

k 終止一個進程。系統將提示用戶輸入需要終止的進程PID,以及需要傳送給該進程什麼樣的信號。一般的終止進程可以使用15信號;如果不能正常結束那就使用信號9強制結束該進程。默認值是信號15。在安全模式中此命令被禁止。

i 忽略閒置和僵死進程。這是一個開關式命令。

q 退出程式。

r 重新安排一個進程的優先權別。系統提示用戶輸入需要改變的進程PID以及枰?柚玫慕?逃畔燃噸怠J淙胍桓穌?到?褂畔燃督檔停?粗?蚩梢允垢媒?逃滌懈?叩撓畔熱āD?現凳?0。

S 切換到累計模式。

s 改變兩次刷新之間的延遲時間。系統將提示用戶輸入新的時間,單位為s。如果有小數,就換算成m s。輸入0值則系統將不斷刷新,默認值是5 s。需要注意的是如果設定太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統負載也會大大增加。

f或者F 從當前顯示中添加或者刪除項目。

o或者O 改變顯示項目的順序。

l 切換顯示平均負載和啟動時間信息。

m 切換顯示記憶體信息。

t 切換顯示進程和CPU狀態信息。

c 切換顯示命令名稱和完整命令行。

M 根據駐留記憶體大小進行排序。

P 根據CPU使用百分比大小進行排序。

T 根據時間/累計時間進行排序。

W 將當前設定寫入~/.toprc檔案中。這是寫top配置檔案的推薦方法。

從上面的介紹中可以看到,top命令是一個功能十分強大的監控系統的工具,尤其對於系統管理員而言更是如此。一般的用戶可能會覺得ps命令其實就夠用了,但是top命令的強勁功能確實提供了不少方便。下面來看看實際使用的情況。

第一行的項目依次為當前時間、系統啟動時間、當前系統登錄用戶數目、平均負載。第二行為進程情況,依次為進程總數、休眠進程數、運行進程數、僵死進程數、終止進程數。第三行為CPU狀態,依次為用戶占用、系統占用、優先進程占用、閒置進程占用。第四行為記憶體狀態,依次為平均可用記憶體、已用記憶體、空閒記憶體、共享記憶體、快取使用記憶體。第五行為交換狀態,依次為平均可用交換容量、已用容量、閒置容量、高速快取容量。然後下面就是和ps相仿的各進程情況列表了。

總的來說,top命令的功能強於ps,但需要長久占用前台,所以用戶應該根據自己的情況來使用這個命令。

SQL TOP

TOP 子句

TOP 子句用於規定要返回的記錄的數目。

對於擁有數千條記錄的大型表來說,TOP 子句是非常有用的。

注釋:並非所有的資料庫系統都支持 TOP 子句。

SQL Server

SELECT TOP number|percent column_name(s)FROM table_name

語法

MySQL

SELECT column_name(s)

FROM table_nameLIMIT number

例子SELECT *FROM ZhangYiQing LIMIT 5

Oracle

SELECT column_name(s)FROM table_name WHERE ROWNUM <= number

例子SELECT *FROM zhangheng WHERE ROWNUM <= 5

原始表格

ZhangYiQing表:

Id LastName FirstName Address City
1 YiQing Zhang JiaoYuXinQu ZhangGong
2 Bush George Fifth Avenue New York
3 YiQing Zhang HaiDian Beijing
4 Obama Barack Pennsylvania Avenue Washington

實例

現在,我們希望從上面的 "ZhangYiQing" 表中選取頭兩條記錄。

我們可以使用下面的 SELECT 語句:

SELECT TOP 2 * FROM ZhangYiQing

結果

Id LastName FirstName Address City
1 YiQing Zhang JiaoYuXinQu ZhangGong
2 Bush George Fifth Avenue New York

PERCENT 實例

現在,我們希望從上面的 "ZhangYiQing" 表中選取 50% 的記錄。

我們可以使用下面的 SELECT 語句:

SELECT TOP 50 PERCENT * FROM ZhangYiQing結果:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

相關詞條

相關搜尋

熱門詞條

聯絡我們