共找到12條詞條名為top的結果 展開
top
Linux工具
系統管理員可用運行top命令監視進程和Linux整體性能。
top命令是最流行Unix/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 看更多使用技巧
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,但需要長久佔用前台,所以用戶應該根據自己的情況來使用這個命令。
TOP 子句
TOP 子句用於規定要返回的記錄的數目。
對於擁有數千條記錄的大型表來說,TOP 子句是非常有用的。
註釋:並非所有的資料庫系統都支持 TOP 子句。
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 |
現在,我們希望從上面的 "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 |