Day22-Linux-進(jìn)程的管理(2)

一盗扇、進(jìn)程狀態(tài)的管理

當(dāng)進(jìn)程運(yùn)行為進(jìn)程后智玻,我們可以使用Linux的命令對進(jìn)程發(fā)送關(guān)閉信號。

1仗颈、使用kill -l 列出當(dāng)前系統(tǒng)所支持的命令

[root@oldboy:~]# kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX    

2、最常用的進(jìn)程管理命令:kill -1 PID椎例、kill -9 PID

數(shù)字編號 字符表示 含義
1 SIGHUP 重新加載配置文件
9 SIGKILL 強(qiáng)制終止(殺死)進(jìn)程
15 SIGTERM 終止進(jìn)程挨决,默認(rèn)kill的使用

1)使用kill 參數(shù) 命令終止PID的進(jìn)程

1.啟動(dòng)vsftpd
[root@oldboy:~]# systemctl start vsftpd

2.靜態(tài)查看vsftpd的狀態(tài)
[root@oldboy:~]# ps aux |grep vsftpd
root  7759  0.0  0.0  53176   580 ?        Ss   14:53   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root  7761  0.0  0.0 112708   976 pts/0    R+   14:54   0:00 grep --color=auto vsftpd

3.發(fā)送重載命令,重新加載订歪,其父進(jìn)程的PID號不發(fā)生改變
[root@oldboy:~]# kill -1 7759
[root@oldboy:~]# ps aux |grep vsftpd
root  7759  0.0  0.0  53176   760 ?        Ss   14:53   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root  7763  0.0  0.0 112708   976 pts/0    R+   14:54   0:00 grep --color=auto vsftpd

4.發(fā)送終止信號脖祈,vsftpd的服務(wù)停止(kill=kill -15)
[root@oldboy:~]# kill 7759
[root@oldboy:~]# ps aux |grep vsftpd
root  7766  0.0  0.0 112708   976 pts/0    R+   14:59   0:00 grep --color=auto vsftpd

5.當(dāng)無法停止時(shí),可使用強(qiáng)制的命令將其終止
[root@oldboy:~]# kill -9 7759

3刷晋、killall盖高、pkill 終止指定名字的進(jìn)程

1.我們首先啟動(dòng)nginx服務(wù)并查看當(dāng)前狀態(tài)
[root@oldboy:~]# systemctl start nginx
[root@oldboy:~]# ps aux |grep nginx
root   7817  0.0  0.0  46340   972 ?        Ss   15:05   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx  7818  0.0  0.0  46748  1936 ?        S    15:05   0:00 nginx: worker process
root   7820  0.0  0.0 112708   972 pts/1    R+   15:06   0:00 grep --color=auto nginx

2.通過服務(wù)器的名稱將其殺掉
[root@oldboy:~]# pkill nginx
[root@oldboy:~]# ps aux |grep nginx
root  7832  0.0  0.0 112708   976 pts/0    R+   15:10   0:00 grep --color=auto nginx

3.通過killall終止nginx服務(wù)
[root@oldboy:~]# killall nginx
[root@oldboy:~]# ps aux |grep nginx
root  7832  0.0  0.0 112708   976 pts/0    R+   15:10   0:00 grep --color=auto nginx

1)使用pkill 踢出遠(yuǎn)程登陸的本機(jī)的用戶,終止 /pts/1上的所有進(jìn)程并結(jié)束bash

1.打開2個(gè)bash shell的窗口
[root@oldboy:~]# tty
/dev/pts/0

[root@oldboy:~]# tty
/dev/pts/1

2.利用pkill 將遠(yuǎn)程登陸的bashshell窗口  /pts/1踢下線
[root@oldboy:~]#  pkill -9 -t pts/1
[root@oldboy:~]# 
Connection closed by foreign host.

Disconnected from remote host(oldboy-65 - cui) at 15:29:07.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ 

二眼虱、進(jìn)程后臺管理

1喻奥、什么是后臺進(jìn)程

通常進(jìn)程都會(huì)在終端前臺運(yùn)行,一旦關(guān)閉終端捏悬,進(jìn)程也會(huì)隨之結(jié)束撞蚕,這樣比較浪費(fèi)資源。那么我們希望將進(jìn)程放入終端后臺过牙,關(guān)閉終端后甥厦,進(jìn)行進(jìn)程繼續(xù)運(yùn)行纺铭。減少資源的浪費(fèi)。

2刀疙、將進(jìn)程放入后臺的命令:$符舶赔、jobs、bg谦秧、fg竟纳、最常用的screen

1)使用jobs、bg疚鲤、fg

1.運(yùn)行2個(gè)程序蚁袭,一個(gè)在后臺執(zhí)行,一個(gè)在后臺執(zhí)行
[root@oldboy:~]# sleep 3000 &  程序運(yùn)行在后臺執(zhí)行
[1] 7940
[root@oldboy:~]# sleep 4000  將前臺程序掛起在后臺
^Z
[3]+  Stopped                 sleep 4000

2.靜態(tài)查看sleep的狀態(tài)
[root@oldboy:~]# ps aux |grep sleep
root       7940  0.0  0.0 107952   360 pts/1    S    15:39   0:00 sleep 3000
root       7942  0.0  0.0 107952   356 pts/1    T    15:41   0:00 sleep 4000

3.利用jobs查看后臺作業(yè)情況
[root@oldboy:~]# jobs
[1]-  Running                 sleep 3000 &
[3]+  Stopped                 sleep 4000

4.利用bg 和 fg 進(jìn)行前后臺調(diào)動(dòng)
[root@oldboy:~]# bg %3     讓作業(yè) 3 在后臺運(yùn)行
[3]+ sleep 4000 &    
[root@oldboy:~]# fg %1   將作業(yè)  1 調(diào)回前臺
sleep 3000

5.終止作業(yè)1石咬,利用PID
[root@oldboy:~]# kill 7940

2)利用screen 進(jìn)行后臺管理

1.安裝screen
[root@oldboy ~]# yum install screen -y

2.開啟一個(gè)screen窗口,指定名稱
[root@oldboy ~]# screen -S wget_mysql

3.在screen窗口中執(zhí)行任務(wù)即可
[root@oldboy ~]#  
4.ctrl+a+d平滑的退出screen,但不會(huì)終止screen中的任務(wù)揩悄。注意: 如果使用exit或者Ctrl+d 才算真的關(guān)閉screen窗口


5.查看當(dāng)前正在運(yùn)行的screen有哪些
[root@oldboy ~]# screen -list
There is a screen on:
    22058.wget_mysql    (Detached)
1 Socket in /var/run/screen/S-root.

6.進(jìn)入正在運(yùn)行的screen
[root@oldboy ~]# screen -r wget_mysql
[root@oldboy ~]# screen -r 22058

7.終止當(dāng)前后臺運(yùn)行的進(jìn)程,將后臺運(yùn)行的程序調(diào)回前臺鬼悠,Ctrl+c 終止然后exit退出删性;或者Ctrl+c后Ctrl+d退出。

三焕窝、進(jìn)程的優(yōu)先級

優(yōu)先級是指在CPU處理進(jìn)程調(diào)度時(shí)蹬挺,優(yōu)先處理優(yōu)先級較高的進(jìn)程。

1它掂、配置優(yōu)先級 命令 nice

在啟動(dòng)進(jìn)程時(shí)巴帮,為不同的進(jìn)程使用不同的調(diào)度策略。
nice 值越高: 表示優(yōu)先級越低虐秋,例如+19榕茧,該進(jìn)程容易將CPU 使用量讓給其他進(jìn)程。
nice 值越低: 表示優(yōu)先級越高客给,例如-20用押,該進(jìn)程更不傾向于讓出CPU。
NI =0 PR=20
NI =-20 PR=0
NI = 10 PR=30
NI = 19 PR =39

1)使用top或者ps命令進(jìn)行查看進(jìn)程的優(yōu)先級

1靶剑、使用top可以查看nice優(yōu)先級蜻拨。  NI: 實(shí)際nice級別,默認(rèn)是0桩引。 PR: 顯示nice值缎讼,-20映射到0,+19映射到39
PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
7912 root      20   0       0      0      0 S  0.3  0.0   0:08.41 kworker/0:3                                         
     1 root      20   0  125732   4264   2600 S  0.0  0.2   0:05.59 systemd                                             
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                            
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.29 ksoftirqd/0                                         
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                        
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0 

2坑匠、使用ps查看進(jìn)程優(yōu)先級
[root@oldboy:~]# ps axo command,nice
COMMAND                      NI
/usr/lib/systemd/systemd --   0
[kthreadd]                    0
[ksoftirqd/0]                 0
[kworker/0:0H]              -20
[migration/0]                 -
[rcu_bh]                      0
[rcu_sched]                   0
[lru-add-drain]             -20
[watchdog/0]                  -
[kdevtmpfs]                   0
[netns]                     -20

2) nice指定程序的優(yōu)先級血崭。語法格式 nice -n + 優(yōu)先級數(shù)字 + 進(jìn)程名稱

1.設(shè)定vim的優(yōu)先級為 -5
[root@oldboy:~]# nice -n -5 vim &
[1] 8031

2.查看進(jìn)程 vim 的優(yōu)先級
[root@oldboy:~]# ps axo command,nice|grep "vim"
vim                          -5
grep --color=auto vim 

3)renice 命令修改一個(gè)正在運(yùn)行的進(jìn)程優(yōu)先級。語法格式 renice -n + 優(yōu)先級數(shù)字 + 進(jìn)程pid

1.查看sshd進(jìn)程當(dāng)前的優(yōu)先級狀態(tài)
[root@oldboy:~]# ps axo pid,command,nice|grep sshd
  7358 /usr/sbin/sshd -D             0
  7620 sshd: root@pts/0              0
  7914 sshd: root@pts/1              0
  8054 grep --color=auto sshd        0
 
2.調(diào)整sshd主進(jìn)程的優(yōu)先級
[root@oldboy:~]# renice -n -20 7358
7358 (process ID) old priority 0, new priority -20

3.調(diào)整之后查看并退出終端
[root@oldboy:~]# ps axo pid,command,nice|grep sshd
  7358 /usr/sbin/sshd -D           -20
  7620 sshd: root@pts/0              0
  7914 sshd: root@pts/1              0
  8057 grep --color=auto sshd        0
[root@oldboy:~]# exit

4.當(dāng)再次登陸sshd服務(wù),會(huì)由主進(jìn)程fork子進(jìn)程(那么子進(jìn)程會(huì)繼承主進(jìn)程的優(yōu)先級)
[root@oldboy:~]# ps axo pid,command,nice|grep sshd
  7358 /usr/sbin/sshd -D           -20
  7914 sshd: root@pts/1              0
  8065 sshd: root@pts/0            -20
  8091 grep --color=auto sshd      -20

當(dāng)服務(wù)器響應(yīng)較慢時(shí)功氨,通過對登錄的sshd協(xié)議調(diào)度nice優(yōu)先級的設(shè)置,可讓讓我們在系統(tǒng)出現(xiàn)服務(wù)故障時(shí)手幢,第一時(shí)間優(yōu)先登錄系統(tǒng)檢查系統(tǒng)的故障捷凄。

4)服務(wù)器的假死

所謂假死,就是我們可ping通服務(wù)器围来,但是ssh登錄不上去跺涤,任何其他操作也沒有反應(yīng),非常的緩慢监透。包括上面部署的nginx的頁面也沒有反應(yīng)桶错。

2、平均負(fù)載

平均負(fù)載是指單位時(shí)間內(nèi)胀蛮,系統(tǒng)處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的平均進(jìn)程數(shù)院刁,也就是平均活躍進(jìn)程數(shù), 平均負(fù)載與 CPU 使用率并沒有直接關(guān)系粪狼。

[root@oldboy:~]# uptime
 19:01:41 up  4:13,  3 users,  load average: 0.00, 0.01, 0.05

1)如何判斷平均負(fù)載

最理想的狀態(tài)是每個(gè) CPU 上都剛好運(yùn)行著一個(gè)進(jìn)程退腥,這樣每個(gè) CPU 都得到了充分利用。所以在評判平均負(fù)載時(shí)再榄,首先你要知道系統(tǒng)有幾個(gè) CPU狡刘,這可以通過 top 命令獲取,或grep 'model name' /proc/cpuinfo

2)平均負(fù)載的三個(gè)指標(biāo)

1.如果 1 分鐘困鸥、5 分鐘嗅蔬、15 分鐘的三個(gè)值基本相同,或者相差不大疾就,那就說明系統(tǒng)負(fù)載很平穩(wěn)澜术。
2.但如果 1 分鐘的值遠(yuǎn)小于 15 分鐘的值,就說明系統(tǒng)最近 1 分鐘的負(fù)載在減少猬腰,而過去 15 分鐘內(nèi)卻有很大的負(fù)載瘪板。
3.反過來,如果 1 分鐘的值遠(yuǎn)大于 15 分鐘的值漆诽,就說明最近 1 分鐘的負(fù)載在增加侮攀,這種增加有可能只是臨時(shí)性的,也有可能還會(huì)持續(xù)上升厢拭,所以就需要持續(xù)觀察兰英。

示例

假設(shè)我們在有2個(gè) CPU 系統(tǒng)上看到平均負(fù)載為 2.73,6.90供鸠,12.98

  • 那么說明在過去1 分鐘內(nèi)畦贸,系統(tǒng)有 136% 的超載 (2.73/2=136%)
  • 而在過去 5 分鐘內(nèi),有 345% 的超載 (6.90/2=345%)
  • 而在過去15 分鐘內(nèi),有 649% 的超載薄坏,(12.98/2=649%)
    但從整體趨勢來看趋厉,系統(tǒng)的負(fù)載是在逐步的降低。

3)那么在實(shí)際生產(chǎn)環(huán)境中胶坠,平均負(fù)載多高時(shí)君账,需要重點(diǎn)關(guān)注

當(dāng)平均負(fù)載高于 CPU 數(shù)量 70% 的時(shí)候,就應(yīng)該分析排查負(fù)載高的問題了沈善。一旦負(fù)載過高乡数,就可能導(dǎo)致進(jìn)程響應(yīng)變慢,進(jìn)而影響服務(wù)的正常功能闻牡。
但 70% 這個(gè)數(shù)字并不是絕對的净赴,把系統(tǒng)的平均負(fù)載監(jiān)控起來,然后根據(jù)更多的歷史數(shù)據(jù)罩润,判斷負(fù)載的變化趨勢玖翅。當(dāng)發(fā)現(xiàn)負(fù)載有明顯升高趨勢時(shí),比如說負(fù)載翻倍了割以,再去做分析和調(diào)查烧栋。

4)平均負(fù)載與 CPU 使用率的關(guān)系

我們還是要回到平均負(fù)載的含義上來,平均負(fù)載是指單位時(shí)間內(nèi)拳球,處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的進(jìn)程數(shù)审姓。所以,它不僅包括了正在使用 CPU 的進(jìn)程祝峻,還包括等待 CPU 和等待 I/O 的進(jìn)程魔吐。
1、而 CPU 使用率莱找,是單位時(shí)間內(nèi) CPU 繁忙情況的統(tǒng)計(jì)酬姆,跟平均負(fù)載并不一定完全對應(yīng)。比如:
2奥溺、CPU 密集型進(jìn)程辞色,使用大量 CPU 會(huì)導(dǎo)致平均負(fù)載升高,此時(shí)這兩者是一致的浮定;
3相满、I/O 密集型進(jìn)程,等待 I/O 也會(huì)導(dǎo)致平均負(fù)載升高桦卒,但 CPU 使用率不一定很高立美;
4、大量等待 CPU 的進(jìn)程調(diào)度也會(huì)導(dǎo)致平均負(fù)載升高方灾,此時(shí)的 CPU 使用率也會(huì)比較高建蹄。

5)平均負(fù)載案例分析實(shí)戰(zhàn)

下面碌更,我們以三個(gè)示例分別來看這三種情況,并用 stress洞慎、mpstat痛单、pidstat 等工具,找出平均負(fù)載升高的根源劲腿。

1.stress 是 Linux 系統(tǒng)壓力測試工具旭绒,這里我們用作異常進(jìn)程模擬平均負(fù)載升高的場景。
2.mpstat 是多核 CPU 性能分析工具谆棱,用來實(shí)時(shí)查看每個(gè) CPU 的性能指標(biāo),以及所有 CPU 的平均指標(biāo)圆仔。
3.pidstat 是一個(gè)常用的進(jìn)程性能分析工具垃瞧,用來實(shí)時(shí)查看進(jìn)程的 CPU、內(nèi)存坪郭、I/O 以及上下文切換等性能指標(biāo)个从。

如果出現(xiàn)無法使用mpstat、pidstat命令查看%wait指標(biāo)建議更新下軟件包
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm
rpm -Uvh sysstat-11.7.3-1.x86_64.rpm
場景一:CPU 密集型進(jìn)程

1.首先歪沃,我們在第一個(gè)終端運(yùn)行 stress 命令嗦锐,模擬一個(gè) CPU 使用率 100% 的場景:

[root@oldboy:~]# stress --cpu 1 --timeout 600

2.接著,在第二個(gè)終端運(yùn)行 uptime 查看平均負(fù)載的變化情況

 使用watch -d 參數(shù)表示高亮顯示變化的區(qū)域(注意負(fù)載會(huì)持續(xù)升高)
[root@oldboy:~]# watch -d uptime
17:27:44 up 2 days,  3:11,  3 users,  load average: 1.10, 0.30, 0.17

3.最后沪曙,在第三個(gè)終端運(yùn)行 mpstat 查看 CPU 使用率的變化情況

 -P ALL 表示監(jiān)控所有 CPU奕污,后面數(shù)字 5 表示間隔 5 秒后輸出一組數(shù)據(jù)
[root@oldboy:~]# mpstat -P ALL 5
Linux 3.10.0-957.1.3.el7.x86_64 (m01)   2019年04月29日     _x86_64_    (1 CPU)

17時(shí)32分03秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
17時(shí)32分08秒  all   99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00
17時(shí)32分08秒    0   99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00
單核CPU所以只有一個(gè)all和0

4.從終端二中可以看到,1 分鐘的平均負(fù)載會(huì)慢慢增加到 1.00液走,而從終端三中還可以看到碳默,正好有一個(gè) CPU 的使用率為 100%,但它的 iowait 只有 0缘眶。這說明嘱根,平均負(fù)載的升高正是由于 CPU 使用率為 100% 。那么巷懈,到底是哪個(gè)進(jìn)程導(dǎo)致了 CPU 使用率為 100% 呢该抒?可以使用 pidstat 來查詢

間隔 5 秒后輸出一組數(shù)據(jù)
[root@oldboy:~]# pidstat -u 5 1
Linux 3.10.0-957.1.3.el7.x86_64 (m01)   2019年04月29日     _x86_64_(1 CPU)

17時(shí)33分21秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
17時(shí)33分26秒     0    110019   98.80    0.00    0.00   98.80     0  stress

從這里可以明顯看到,stress 進(jìn)程的 CPU 使用率為 100%顶燕。
場景二:I/O 密集型進(jìn)程

1.首先還是運(yùn)行 stress 命令凑保,但這次模擬 I/O 壓力,即不停地執(zhí)行 sync

[root@oldboy:~]# stress  --io 1 --timeout 600s

2.然后在第二個(gè)終端運(yùn)行 uptime 查看平均負(fù)載的變化情況:

[root@oldboy:~]# watch -d uptime
18:43:51 up 2 days,  4:27,  3 users,  load average: 1.12, 0.65, 0.00

3.最后第三個(gè)終端運(yùn)行 mpstat 查看 CPU 使用率的變化情況:

# 顯示所有 CPU 的指標(biāo)涌攻,并在間隔 5 秒輸出一組數(shù)據(jù)
[root@oldboy:~]# mpstat -P ALL 5
Linux 3.10.0-693.2.2.el7.x86_64 (bgx.com)   2019年05月07日     _x86_64_    (1 CPU)

14時(shí)20分07秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
14時(shí)20分12秒  all    0.20    0.00   82.45   17.35    0.00    0.00    0.00    0.00    0.00    0.00
14時(shí)20分12秒    0    0.20    0.00   82.45   17.35    0.00    0.00    0.00    0.00    0.00    0.00

#會(huì)發(fā)現(xiàn)cpu的與內(nèi)核打交道的sys占用非常高

4.那么到底是哪個(gè)進(jìn)程愉适,導(dǎo)致 iowait 這么高呢?我們還是用 pidstat 來查詢

# 間隔 5 秒后輸出一組數(shù)據(jù)癣漆,-u 表示 CPU 指標(biāo)
[root@oldboy:~]# pidstat -u 5 1
Linux 3.10.0-957.1.3.el7.x86_64 (m01)   2019年04月29日     _x86_64_(1 CPU)
18時(shí)29分37秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
18時(shí)29分42秒     0    127259   32.60    0.20    0.00   67.20   32.80     0  stress
18時(shí)29分42秒     0    127261    4.60   28.20    0.00   67.20   32.80     0  stress
18時(shí)29分42秒     0    127262    4.20   28.60    0.00   67.20   32.80     0  stress

#可以發(fā)現(xiàn)维咸,還是 stress 進(jìn)程導(dǎo)致的。
場景三:大量進(jìn)程的場景

當(dāng)系統(tǒng)中運(yùn)行進(jìn)程超出 CPU 運(yùn)行能力時(shí),就會(huì)出現(xiàn)等待 CPU 的進(jìn)程癌蓖。

1.首先瞬哼,我們還是使用 stress,但這次模擬的是 4 個(gè)進(jìn)程

[root@oldboy:~]# stress -c 4 --timeout 600

2.由于系統(tǒng)只有 1 個(gè) CPU租副,明顯比 4 個(gè)進(jìn)程要少得多坐慰,因而,系統(tǒng)的 CPU 處于嚴(yán)重過載狀態(tài)

[root@oldboy:~]# watch -d uptime
19:11:07 up 2 days,  4:45,  3 users,  load average: 4.65, 2.65, 4.65

3.然后用僧,再運(yùn)行 pidstat 來看一下進(jìn)程的情況:

# 間隔 5 秒后輸出一組數(shù)據(jù)
[root@oldboy:~]# pidstat -u 5 1
平均時(shí)間:   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
平均時(shí)間:     0    130290   24.55    0.00    0.00   75.25   24.55     -  stress
平均時(shí)間:     0    130291   24.95    0.00    0.00   75.25   24.95     -  stress
平均時(shí)間:     0    130292   24.95    0.00    0.00   75.25   24.95     -  stress
平均時(shí)間:     0    130293   24.75    0.00    0.00   74.65   24.75     -  stress

可以看出结胀,4 個(gè)進(jìn)程在爭搶 1 個(gè) CPU,每個(gè)進(jìn)程等待 CPU 的時(shí)間(也就是代碼塊中的 %wait 列)高達(dá) 75%责循。這些超出 CPU 計(jì)算能力的進(jìn)程糟港,最終導(dǎo)致 CPU 過載。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末院仿,一起剝皮案震驚了整個(gè)濱河市秸抚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌歹垫,老刑警劉巖剥汤,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異排惨,居然都是意外死亡吭敢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門暮芭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來省有,“玉大人,你說我怎么就攤上這事谴麦〈姥兀” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵匾效,是天一觀的道長舷蟀。 經(jīng)常有香客問我,道長面哼,這世上最難降的妖魔是什么野宜? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮魔策,結(jié)果婚禮上匈子,老公的妹妹穿的比我還像新娘。我一直安慰自己闯袒,他們只是感情好虎敦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布游岳。 她就那樣靜靜地躺著,像睡著了一般其徙。 火紅的嫁衣襯著肌膚如雪胚迫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天唾那,我揣著相機(jī)與錄音访锻,去河邊找鬼。 笑死闹获,一個(gè)胖子當(dāng)著我的面吹牛期犬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播避诽,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼龟虎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茎用?” 一聲冷哼從身側(cè)響起遣总,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤睬罗,失蹤者是張志新(化名)和其女友劉穎轨功,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體容达,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡古涧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了花盐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羡滑。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖算芯,靈堂內(nèi)的尸體忽然破棺而出柒昏,到底是詐尸還是另有隱情,我是刑警寧澤熙揍,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布职祷,位于F島的核電站,受9級特大地震影響届囚,放射性物質(zhì)發(fā)生泄漏有梆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一意系、第九天 我趴在偏房一處隱蔽的房頂上張望泥耀。 院中可真熱鬧,春花似錦蛔添、人聲如沸痰催。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陨囊。三九已至弦疮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蜘醋,已是汗流浹背胁塞。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留压语,地道東北人啸罢。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像胎食,于是被迫代替她去往敵國和親扰才。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一厕怜、管理進(jìn)程狀態(tài) 當(dāng)程序運(yùn)行為進(jìn)程后衩匣,如果希望停止進(jìn)程,怎么辦呢? 那么此時(shí)我們可以使用linux的kill命令對...
    風(fēng)鈴科技閱讀 302評論 2 0
  • 1.管理進(jìn)程狀態(tài) 當(dāng)程序運(yùn)行為進(jìn)程后粥航,如果希望停止進(jìn)程琅捏, 那么此時(shí)我們可以使用linux的kill命令對進(jìn)程發(fā)送關(guān)...
    但若歸去若已晚閱讀 533評論 0 0
  • 1.管理進(jìn)程狀態(tài) 當(dāng)程序運(yùn)行為進(jìn)程后,如果希望停止進(jìn)程递雀,那么此時(shí)我們可以使用linux的kill命令對進(jìn)程發(fā)送關(guān)閉...
    zander815閱讀 324評論 0 0
  • 1.管理進(jìn)程狀態(tài) 當(dāng)程序運(yùn)行為進(jìn)程后柄延,如果希望停止進(jìn)程,怎么辦呢? 那么此時(shí)我們可以使用linux的kill命令對...
    愛可耐九卿閱讀 333評論 0 1
  • 管理進(jìn)程狀態(tài) 當(dāng)程序運(yùn)行為進(jìn)程后缀程,如果希望停止進(jìn)程搜吧,怎么辦?那么此時(shí)我們可以使用linux的kill命令對進(jìn)程發(fā)送...
    黃能能閱讀 193評論 0 0