linux操作命令:暫停進程

來源:互聯網
上載者:User

周末加班,ssh登入伺服器超慢,top查看系統負載,達到12以上。跟蹤發現,是其他同事利用周末,跑了一堆程式。

系統反應慢,怎麼辦?

 

兩種辦法:

(一)降低其他使用者程式的優先順序。

執行top命令:

1   PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND2 20211 lix     20   0 5703m 3.4g 558m S 473.4 43.6 662:41.75 datai3  5748 zhangren  20   0  133m  45m 2324 R  56.8  0.6   2572:29 nxagent4  2684 kdm       20   0  261m 3380 2184 S   6.3  0.0  45:46.62 kdm_greet5 28597 zhangren  30  10 31388 1772 1432 S   6.3  0.0   0:03.75 fuzzyflakes6 28610 root      20   0 23292 1596 1092 R   6.3  0.0   0:00.01 top7     1 root      20   0 10636   24    0 S   0.0  0.0   0:13.57 init

解釋如下:

USER : 代表執行者的身份
PID : 代表這個進程的代號
PR:代表這個進程可被執行的優先順序,其值越小越早被執行
NI :代表這個進程的nice值
 這裡的前面的兩個個資訊,我們都是比較好容易理解的,但是後面的兩個奇怪的資訊,一個是PR,一個是NI,這到底是什麼東西?相對而言,PR也還是比較好理解的,即進程的優先順序,或者通俗點說就是程式被CPU執行的先後順序,此值越小進程的優先順序別越高。那NI呢?就是我們所要說的nice值了,其表示進程可被執行的優先順序的修正數值。如前面所說,PR值越小越快被執行,那麼加入nice值後,將會使得PR變為:PR(new)=PR(old)+nice。這樣,當nice值為負值的時候,那麼該程式將會優先順序值將變小,即其優先順序會變高,則其越快被執行。

到目前為止,更需要強調一點的是,進程的nice值不是進程的優先順序,他們不是一個概念,但是進程nice值會影響到進程的優先順序變化。

 

修改進程優先順序的命令主要有兩個:nice,renice

1、一開始執行程式就指定nice值:nice
nice -n -5 /usr/local/mysql/bin/mysqld_safe &

nice 命令詳解
 功能說明:設定優先權。
 語  法:nice [-n <優先等級>][--help][--version][執行指令]
補充說明:nice指令可以改變程式執行的優先權等級。

參  數:-n<優先等級>或-<優先等級>或–adjustment=<優先等級>  設定欲執行的指令的優先權等級。等級的範圍從-20-19,其中-20最高,19最低,只有系統管理者可以設定負數的等級。
–help  線上協助。
–version  顯示版本資訊。
—————————————————————————
2.1、調整已存在進程的nice:renice
renice -5 -p 5200
#PID為5200的進程nice設定為-5不是在原值上-5)

 renice 命令詳解
 功能說明:調整優先權。
 語  法:renice [優先等級][-g <程式群組名稱>...][-p <程式識別碼>...][-u <使用者名稱稱>...]
 補充說明:renice指令可重新調整程式執行的優先權等級。預設是以程式識別碼指定程式調整其優先權,您亦可以指定程式群組或使用者名稱稱調整優先權等級,並修改所有隸屬於該程式群組或使用者的程式的優先權。等級範圍從-20–19,只有系統管理者可以改變其他使用者程式的優先權,也僅有系統管理者可以設定負數等級。注意:nice值越大,進程優先順序值越大,CPU上啟動並執行機會就越小。
參  數:
-g <程式群組名稱>  使用程式群組名稱,修改所有隸屬於該程式群組的程式的優先權。
-p <程式識別碼>  改變該程式的優先權等級,此參數為預設值。
-u <使用者名稱稱>  指定使用者名稱稱,修改所有隸屬於該使用者的程式的優先權。

http://blog.csdn.net/codestinity/article/details/7496962

 

我使用如下命令降低某個使用者的所有程式的優先順序:

renice +20 -u zhangrenxxxxx

恢複正常:

renice 0 -u zhangrenxxxxx

 

(二)降低其他使用者程式的優先順序後,系統負載短時間內還沒有降下來,於是嘗試:使用skill暫停其他使用者的所有進程。

skill -STOP -u zhangrenxxxx

暫停使用者zhangrenxxxx的所所有進程。

 

skill -CONT -u zhangrenxxxxx

恢複使用者zhangrenxxxx的所所有進程。

參考資料:http://www.jb51.net/LINUXjishu/57935.html

 

至此,系統負載回複正常了。

注意:最後別忘了恢複其他使用者程式的正常狀態哦。

 

linux使用sed截取檔案:

sed -n '起始行號,結束行號p' 檔案名稱

注意:起始行號是從1開始的,而非0。

例如:sed -n '1,2000p' a.txt

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.