久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2025年度未來銀行科技服務(wù)商TOP100
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

找出UNIX中最費CPU的進程

2004-02-15 eNet&Ciweek

  多用戶的UNIX計算機系統(tǒng)在運行過程中,有時會感覺到運算速度突然慢下來,有時甚至連從鍵盤輸入字符也得過好久才會有反應(yīng)。有經(jīng)驗的人一定會知道,這時計算機中一定在運行一個非常耗費CPU的進程。這樣的進程有時是某個人在執(zhí)行一個很占CPU的程序,有時則可能是系統(tǒng)中出了意外情況,系統(tǒng)本身在進行處理。無論是哪種情況,系統(tǒng)管理員都應(yīng)及時找出這樣的進程,并做出相應(yīng)的處理。


  UNIX雖然提供了“acct”等一系列記賬程序,但這些程序只能在進程結(jié)束后才能顯示運行時間和占用CPU時間等信息,不能實時計算單位時間內(nèi)哪一個進程占用CPU時間最多。

  為此本人用shell語言編寫了一段程序,利用UNIX提供的一些實用程序,實現(xiàn)了上述功能。

  此段程序中包含ps、cut、diff等UNIX實用程序,下面先簡單介紹一下這些實用程序的功能。

  ps:用來顯示當(dāng)前系統(tǒng)中進程的有關(guān)信息。用-e參數(shù)則顯示系統(tǒng)中所有進程的信息。使用-f參數(shù)則顯示各進程完整的信息;

  cut:用于以列為單位對文件進行剪裁。參數(shù)“-c -15,33-”表示把輸入文件每行前15個字符及第33個字符以后直到行尾的所有字符放入輸出文件;

  echo:用于向屏幕上顯示提示信息;

  sleep:可以讓shell程序等待若干秒,然后再執(zhí)行后面的語句;

  diff:用于對兩個文件進行比較,不同之處則顯示出來;

  sort:可對文件中的各行進行排序,排序結(jié)果可顯示出來;

  grep:可用來找出文件中滿足一定條件的行。參數(shù)“^”表示找出第一列為空格的各行;

 ?。簽楣艿赖姆?,可實現(xiàn)把前面命令的輸出作為后面命令輸入的作用,這樣就可省略生成中間文件的步驟,提高執(zhí)行效率;

  >:表示對輸出進行重定向,把本來應(yīng)顯示在屏幕上的東西輸出到文件中。

  程序內(nèi)容如下:

   ps -ef cut -c -15,33->tt1

   echo Please wait a while...

   sleep 20

   ps -ef cut -c -15,33->tt2

   echo Attention !

   echo

   diff tt1 tt2 cut -c 2->tt3

   sort tt3 grep ’^ ’ cut -c -83 grep -v 0:00

   echo

   echo That is ok!

   rm tt1 tt2 tt3

  程序首先取得系統(tǒng)中所有進程的信息并把其中有用的字段放入臨時文件tt1中。接著讓程序等待20秒(時間可依具體情況進行調(diào)整)。

  然后再一次取得所有進程的信息,并把所有的字段放入臨時文件tt2中。

  對兩個臨時文件進行比較,找出20秒前后信息不同的那些進程(其中就有消耗CPU時間已經(jīng)發(fā)生了變化的進程)。

  去掉進行比較時產(chǎn)生的“>”和“<”,把結(jié)果放入臨時文件tt3中。

  對tt3中的內(nèi)容進行排序,把耗費CPU時間發(fā)生變化的同一進程的前后信息排在一起。grep“^”則是用來去掉執(zhí)行此shell程序時產(chǎn)生的一些中間命令進程的信息。

  再用cut刪去每行中過長的進程信息,使輸出更加清晰。而grep -v 0:00則用來去掉20秒前后只出現(xiàn)一次的進程。程序執(zhí)行至此,在20秒前后耗費CPU時間不同的進程就顯示在屏幕上了,從中可以很容易地找出所要找的進程。最后為了不在系統(tǒng)中留下無用的垃圾文件,還要把三個臨時文件全都刪去。

相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com