Unix系統(tǒng)top記錄知識(shí)學(xué)習(xí)
由于經(jīng)常學(xué)習(xí)Unix系統(tǒng)的一些知識(shí),而且很喜歡Unix系統(tǒng),在工作中也很喜歡總結(jié)關(guān)于Unix系統(tǒng)相關(guān)的經(jīng)驗(yàn)教訓(xùn),今天因工作需要,要抓取Unix系統(tǒng)top記錄中的CPU統(tǒng)計(jì)這行,類似如下的內(nèi)容:
- CPU states: 68.3% idle, 22.3% user, 7.6% kernel, 1.8% iowait, 0.0% swap
Unix系統(tǒng)需要把這段內(nèi)容重定向到文件中,但是使用top -b 這樣的參數(shù)不能實(shí)現(xiàn)這樣的效果,重定向到文件中的內(nèi)容如下:
- last pid: 53372; load averages: 0.00, 0.00, 0.00 up 1+03:32:16 18:28:11
- 37 processes: 1 running, 35 sleeping, 1 zombie
- Mem: 22M Active, 342M Inact, 60M Wired, 2068K Cache, 111M Buf, 459M Free
- Swap: 6144M Total, 6144M Free
Unix系統(tǒng)中間丟失了有關(guān)CPU統(tǒng)計(jì)的信息。
覺得比較奇怪,于是找來(lái)了另外一臺(tái)FreeBSD的機(jī)器來(lái)看看(公司的是solaris),結(jié)果也是同樣的情況。問(wèn)別人是否知道,結(jié)果她給我了一串top -b -n 1 -c > top.log。我試了下,不行!但是她說(shuō)她那邊是可以的。于是我問(wèn)了下她用的是不是Unix系統(tǒng),結(jié)果是linux的。可能找到問(wèn)題了,于是我找來(lái)一個(gè)linux的機(jī)器測(cè)試了下,果然跟操作系統(tǒng)有關(guān)。
***還是在一個(gè)之前看過(guò)的網(wǎng)頁(yè)中找到了辦法,這個(gè)網(wǎng)頁(yè)之前被我忽略了,以為是一般的問(wèn)題。后來(lái)按照上面說(shuō)的以-d參數(shù)來(lái)實(shí)現(xiàn)(應(yīng)該是指delay的意思吧)。top -d 2 這樣就有了,
如下:
- last pid: 53376; load averages: 0.00, 0.00, 0.00 up 1+03:32:48 18:28:43
- 39 processes: 1 running, 37 sleeping, 1 zombie
- CPU states: % user, % nice, % system, % interrupt, % idle
- Mem: 23M Active, 342M Inact, 60M Wired, 2068K Cache, 111M Buf, 457M Free
- Swap: 6144M Total, 6144M Free
原來(lái)是Unix系統(tǒng)在統(tǒng)計(jì)信息的時(shí)候,一開始沒(méi)有CPU的信息,需要過(guò)幾秒種才有顯示。這就是-d參數(shù)的作用了。完整的用法:top -d 2 0 | grep CPU。這樣就顯示了上面開始時(shí)所提出的顯示內(nèi)容了。
【編輯推薦】