自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

找出UNIX中最費(fèi)CPU的進(jìn)程

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

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

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

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

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

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

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

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

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

  diff:用于對(duì)兩個(gè)文件進(jìn)行比較,不同之處則顯示出來;

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

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

  |:為管道的符號(hào),可實(shí)現(xiàn)把前面命令的輸出作為后面命令輸入的作用,這樣就可省略生成中間文件的步驟,提高執(zhí)行效率;

  >:表示對(duì)輸出進(jìn)行重定向,把本來應(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)中所有進(jìn)程的信息并把其中有用的字段放入臨時(shí)文件tt1中。接著讓程序等待20秒(時(shí)間可依具體情況進(jìn)行調(diào)整)。

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

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

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

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

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

【編輯推薦】

  1. Linux系統(tǒng)下配置Netware服務(wù)器方法
  2. 嵌入式設(shè)備上的 Linux 系統(tǒng)開發(fā)
  3. 深度介紹Linux內(nèi)核是如何工作的(1)
責(zé)任編輯:龐桂玉 來源: IT168
相關(guān)推薦

2019-12-16 09:10:38

Linux中央處理器進(jìn)程

2019-12-16 11:00:04

LinuxCPU進(jìn)程

2010-05-11 19:16:03

Unix系統(tǒng)

2010-05-06 16:15:04

Unix系統(tǒng)進(jìn)程

2010-04-29 16:46:59

Unix進(jìn)程

2010-04-14 13:59:45

Unix操作系統(tǒng)

2012-12-13 13:46:08

2009-12-03 11:10:32

SMONARCHOracle

2010-04-16 18:19:32

Unix操作系統(tǒng)

2012-06-13 13:25:16

UNIX操作系統(tǒng)

2020-07-20 20:23:30

ARMCPU供應(yīng)商

2019-11-06 15:58:54

Linux內(nèi)存消耗進(jìn)程

2019-12-16 10:43:38

Linux內(nèi)存消耗進(jìn)程

2010-04-14 15:58:25

Unix操作系統(tǒng)

2010-04-09 17:25:13

Unix操作系統(tǒng)

2010-04-14 13:20:29

Unix操作系統(tǒng)

2010-04-19 09:08:20

Unix操作系統(tǒng)

2010-04-19 16:47:40

Unix操作系統(tǒng)

2019-08-23 08:54:32

LinuxMySQLBSD

2021-07-07 10:05:38

進(jìn)程CPULinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)