Linux time命令

Linux 命令大全 Linux 命令大全

Linux time命令的用途,在于量測特定指令執(zhí)行時所需消耗的時間及系統(tǒng)資源等資訊。

例如 CPU 時間、記憶體、輸入輸出等等。需要特別注意的是,部分資訊在 Linux 上顯示不出來。這是因為在 Linux 上部分資源的分配函式與 time 指令所預(yù)設(shè)的方式并不相同,以致于 time 指令無法取得這些資料。

語法

time [options] COMMAND [arguments]

參數(shù)

  • -o 或 --output=FILE:設(shè)定結(jié)果輸出檔。這個選項會將 time 的輸出寫入 所指定的檔案中。如果檔案已經(jīng)存在,系統(tǒng)將覆寫其內(nèi)容。
  • -a 或 --append:配合 -o 使用,會將結(jié)果寫到檔案的末端,而不會覆蓋掉原來的內(nèi)容。
  • -f FORMAT 或 --format=FORMAT:以 FORMAT 字串設(shè)定顯示方式。當(dāng)這個選項沒有被設(shè)定的時候,會用系統(tǒng)預(yù)設(shè)的格式。不過你可以用環(huán)境變數(shù) time 來設(shè)定這個格式,如此一來就不必每次登入系統(tǒng)都要設(shè)定一次。

time 指令可以顯示的資源有四大項,分別是

  • Time resources
  • Memory resources
  • IO resources
  • Command info

詳細(xì)的內(nèi)容如下

1、Time Resources

E 執(zhí)行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數(shù)字并不代表實際的 CPU 時間。

e 執(zhí)行指令所花費的時間,單位是秒。請注意這個數(shù)字并不代表實際的 CPU 時間。

S 指令執(zhí)行時在核心模式(kernel mode)所花費的時間,單位是秒。

U 指令執(zhí)行時在使用者模式(user mode)所花費的時間,單位是秒。

P 執(zhí)行指令時 CPU 的占用比例。其實這個數(shù)字就是核心模式加上使用者模式的 CPU 時間除以總時間。

2、Memory Resources

M 執(zhí)行時所占用的實體記憶體的最大值。單位是 KB

t 執(zhí)行時所占用的實體記憶體的平均值,單位是 KB

K 執(zhí)行程序所占用的記憶體總量(stack+data+text)的平均大小,單位是 KB

D 執(zhí)行程序的自有資料區(qū)(unshared data area)的平均大小,單位是 KB

p 執(zhí)行程序的自有堆疊(unshared stack)的平均大小,單位是 KB

X 執(zhí)行程序間共享內(nèi)容(shared text)的平均值,單位是 KB

Z 系統(tǒng)記憶體頁的大小,單位是 byte。對同一個系統(tǒng)來說這是個常數(shù)

3、IO Resources

F 此程序的主要記憶體頁錯誤發(fā)生次數(shù)。所謂的主要記憶體頁錯誤是指某一記憶體頁已經(jīng)置換到置換檔(swap file)中,而且已經(jīng)分配給其他程序。此時該頁的內(nèi)容必須從置換檔里再讀出來。

R 此程序的次要記憶體頁錯誤發(fā)生次數(shù)。所謂的次要記憶體頁錯誤是指某一記憶體頁雖然已經(jīng)置換到置換檔中,但尚未分配給其他程序。此時該頁的內(nèi)容并未被破壞,不必從置換檔里讀出來

W 此程序被交換到置換檔的次數(shù)

c 此程序被強迫中斷(像是分配到的 CPU 時間耗盡)的次數(shù)

w 此程序自愿中斷(像是在等待某一個 I/O 執(zhí)行完畢,像是磁碟讀取等等)的次數(shù)

I 此程序所輸入的檔案數(shù)

O 此程序所輸出的檔案數(shù)

r 此程序所收到的 Socket Message

s 此程序所送出的 Socket Message

k 此程序所收到的信號 ( Signal )數(shù)量

4、Command Info

C 執(zhí)行時的參數(shù)以及指令名稱

x 指令的結(jié)束代碼 ( Exit Status )

-p or --portability:這個選項會自動把顯示格式設(shè)定成為:

real %e user %Usys %S:這么做的目的是為了與 POSIX 規(guī)格相容。

-v or --verbose:這個選項會把所有程序中用到的資源通通列出來,不但如一般英文語句,還有說明。對不想花時間去熟習(xí)格式設(shè)定或是剛剛開始接觸這個指令的人相當(dāng)有用。

實例

1. # time date
2. Sun Mar 26 22:45:34 GMT-8 2006
3. 
4. real    0m0.136s
5. user    0m0.010s
6. sys     0m0.070s
7. #

在以上實例中,執(zhí)行命令"time date"(見第1行)。

系統(tǒng)先執(zhí)行命令"date",第2行為命令"date"的執(zhí)行結(jié)果。

第3-6行為執(zhí)行命令"date"的時間統(tǒng)計結(jié)果,其中第4行"real"為實際時間,第5行"user"為用戶CPU時間,第6行"sys"為系統(tǒng)CPU時間。

以上三種時間的顯示格式均為MMmNN[.FFF]s。

利用下面的指令

time -v ps -aux

我們可以獲得執(zhí)行 ps -aux 的結(jié)果和所花費的系統(tǒng)資源。如下面所列的資料:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
Command being timed: "ps -aux"
User time (seconds): 0.05
System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46
Voluntary context switches: 0
Involuntary context switches: 0
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0

Linux 命令大全 Linux 命令大全