JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:[分享]Linux下取得Cpu以及Ram使用率的小技巧 [Re:max626]
max626





發文: 3
積分: 0
於 2005-08-30 18:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
小弟來說明一下我所寫的script的內容好了,內容如下:

1
2
#!/bin/sh
top -b -n 2 -d 1|awk '/^Cpu/ {x=$2;} /^Mem/ {print x,$4;}'|tail -1


首先先介紹一下top的參數作用好了:
-b:此為top的批次模式,一開始的時候我沒有加這個參數,可是發現一直沒有數據出來,就覺得蠻奇怪的,我就man top看了一下,發現有這個參數,簡單來說他的功能就是批次輸出,因為如果沒有批次輸出,程式好像就會一直等待Output結束(我想應該是這樣啦!如有錯誤請糾正),

-n 2:這個參數的作用是指定要輸出幾次,本來我是設成1次,可是發現,如果是設成一次的話,CPU的使用率都會一直輸出成0.6%(我不知道是不是我的平台用的top有問題,我用的是CentOS4),所以就必須要取出兩次的cpu數據,所以你會發現,我在這行指令的最後還用tail -1去取出最後一筆數據,就是這個原因,因為第一筆一定都是0.6%,你可以自己試試看你們的會不會(試驗的方法就是把tail -1拿掉)

-d 1:這個參數是指定每次輸出的時間間隔,我試過了我的top可以指定成小數點,意思就是說可以設成0.5秒,由於前面說過了第一筆資料都有問題,所以如果要追蹤cpu每秒的使用率,可能就必須把參數設成0.5(僅供參考,因為每台機次run top時的cpu使用率都不等,有些跑個top只要0.2%有些則需要1.5%甚至以上,基於這種原因,用這種parse的方式取出的cpu使用率,誤差要自己調整過)

第二:awk patten &參數

小弟只懂得粗淺的awk,其實像這種粗淺的parse應該不需要用到awk才是,只是我剛好有看到相關的文章(順便附上好了,大家可以看看),就想說拿來試試,回歸正題吧!!

1
/^Cpu/ {x=$2;}

上面這一段是在parse cpu的使用率的,在單引號內的就是awk語法,其實懂一點正規表示法的應該都看的懂,{}之內的x=$2就是指把parse出來的東西裡面的第二個欄位的東西指定給x變數(這個單純是小弟需求的輸出,其實你也可以直接print出來)

1
/^Mem/ {print x,$4;}

上面的這一段則是在取出Ram的使用率,原理跟上面一樣,在這邊就是直接print出來,那個x就是剛才在cpu parse裡面的那個x(就是cpu使用率啦^^)

以上是簡單的的介紹,至於如果使用的top為不同版本或平台的話(輸出可能會有差異),簡單來說就像下面,$0就代表這一整行,$1就是Mem:,$2就是515104k,$3就是total,以此類推,譬如說你寫成print $6就會輸出 63016k(因為awk內建就是用空格去做parse的依據,就我所知啦^^)
1
Mem:    515104k total,   452088k used,    63016k free,   126584k buffers


awk.pdf (737.03k)


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
3053 [分享]Linux下取得Cpu以及Ram使用率的小技巧 max626 1412 2005-08-28 20:08
2945 Re:[分享]Linux下取得Cpu以及Ram使用率的小技巧 wch 483 2005-08-30 10:48
2688 Re:[分享]Linux下取得Cpu以及Ram使用率的小技巧 max626 538 2005-08-30 18:26
5700 Re:[分享]Linux下取得Cpu以及Ram使用率的小技巧 max626 1319 2005-08-30 18:55
» JWorld@TW »  Java SE 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8