有史以來負載突然居高的,有點嚇人。
如圖示:
image.png
使用vmstat命令查看:
PS: vmstat(Virtual Memory Statistics 虛擬內存統計) 命令用來顯示Linux系統虛擬內存狀態,也可以報告關于進程、內存、I/O等系統整體運行狀態
image.png
發現奇葩的的--r值:這個高?。。?br>
PS:
r: 運行隊列中進程數量,這個值也可以判斷是否需要增加CPU。(長期大于1)
正常的情況下的r值是:
image.png
說明的問題:
可能有異常的情況很多的進程一直在創建
image.png
查看一些可能的進程:
因為公司的業務又使用的一些定時的任務,定時執行一些服務。所有核查一下一些進程信息:
ps -ef |grep python
image.png
果然是這一推的進程在作祟!?。。?!
直接結束上述的相關進程后,就好了!!
批量刪除對應的進程:
批量刪除示例:
[root@web-1 online]# ps -ef | grep remind_service | grep -v color | cut -c 9-15
14900
[root@web-1 online]# ps -ef | grep remind_service | grep -v color | cut -c 9-15
14900
[root@web-1 online]# ps -ef | grep remind_service
root 14900 1076 0 08:00 ? 00:00:05 python /data/service/online/remind_service/main.py
root 30707 22682 0 11:33 pts/0 00:00:00 grep --color=auto remind_service
[root@web-1 online]#
image.png
說明:
“grep xxxx”的輸出結果是,所有含有關鍵字“remind_service”的進程。
“grep -v xxxxx”是在列出的進程中去除含有關鍵字“color”的進程。
“cut -c 9-15”是截取輸入行的第9個字符到第15個字符,而這正好是進程號PID。
“xargs kill -s 9”中的xargs命令是用來把前面命令的輸出結果(PID)作為“kill -s 9”命令的參數,并執行該命令?!発ill -s 9”會強行殺掉指定進程。
$ps -ef | grep read_sight_service_syn_vedio | grep -v color | cut -c 9-15 | xargs kill -s 9
或者----------------------
$ pgrep read_sight_service_syn_vedio | xargs kill -s 9
排查了下,不知道為啥定時執行的任務不斷執行創建了!這個目前暫時還不是很清楚!
常用的排查方法
===============================
2018-12-17 09:31:49
===============================
常用的排查方法:來源:https://yq.aliyun.com/articles/129599?spm=a2c4e.11155435.0.0.3a0b7379DbjA8P
批量刪除進程
$ps -ef | grep read_sight_service_syn_vedio | grep -v color | cut -c 9-15 | xargs kill -s 9
統計TCP連接數
[root@web-1 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ESTABLISHED 92
TIME_WAIT 5560
列出消耗高的線程:
LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | grep -v CPU | sort -n -r | head -20
統計線程消耗的總的CPU:
{ LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | sed -e 's/^ *//' | tr -s ' ' | grep -v CPU | sort -n -r | cut -d ' ' -f 1 | xargs -I{} echo -n "{} + " && echo ' 0'; } | bc -l
列出內存消耗高的進程:
LANG=C ps -e -o%mem,pid,tid,ppid,comm | grep -v MEM | sort -n -r | head -20
統計內存消耗情況:
{ LANG=C ps -e -o%mem,pid,tid,ppid,comm | sed -e 's/^ *//' | tr -s ' ' | grep -v MEM | sort -n -r | cut -d ' ' -f 1 | xargs -I{} echo -n "{} + " && echo ' 0'; } | bc -l
列出導致CPU負載高的線程:
LANG=C ps -eTo stat,pid,tid,ppid,comm,args | perl -ne 'chomp;if (m!^\s*(\S*[RD]+\S*.*)!) {print qq[$1\n];}'
dstat 負載情況查看:
[root@web-1 ~]# dstat -l
---load-avg---
1m 5m 15m
1.43 1.23 1.24
1.31 1.21 1.23
1.31 1.21 1.23
找出占用資源最高的進程和用戶
[root@web-1 ~]dstat --top-mem --top-io --top-cpu
--most-expensive- ----most-expensive---- -most-expen