linux系统 top 命令输出快照存储

公司一台服务器,有一个特殊隐患:就是会在1分钟内,内存飙升到100% CPU100% 磁盘巨量读写。

阿里云官方提供的信息不足以判断问题所在,所以搞了一个脚本,10秒为周期定时输出top信息,判断系统进程占用程序。

输入内容为top命令行输出

top - 14:38:46 up 1 day, 16:57,  2 users,  load average: 0.01, 0.03, 0.08
Tasks: 113 total,   1 running, 112 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.2 us,  3.2 sy,  0.0 ni, 93.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7733296 total,  2541420 free,  2842248 used,  2349628 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  4626000 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 9596 root      20   0 4712616   1.0g  22992 S   0.0 13.8   1:35.26 java
 9279 mysql     20   0 1623356 470492  10748 S   0.0  6.1   3:44.13 mysqld
 9085 polkitd   20   0 1645372 274784  10532 S   0.0  3.6   0:07.24 mysqld
 7843 33        20   0  236900  98048   4860 S   0.0  1.3   0:03.46 apache2
 7821 33        20   0  232988  94132   4912 S   0.0  1.2   0:04.36 apache2
 7796 33        20   0  230088  91280   4856 S   0.0  1.2   0:03.50 apache2
 7955 33        20   0  223580  86788   4784 S   0.0  1.1   0:02.55 apache2
 7840 33        20   0  223324  84680   4892 S   0.0  1.1   0:04.42 apache2
 7909 33        20   0  143492  78136   4188 S   0.0  1.0   0:03.11 apache2
 7927 33        20   0  141756  76368   4080 S   0.0  1.0   0:02.58 apache2
 1685 33        20   0  212216  74256   3624 S   0.0  1.0   0:42.54 apache2
 7914 33        20   0  211600  72240   4820 S   0.0  0.9   0:03.14 apache2
 8558 33        20   0  133392  67792   4068 S   0.0  0.9   0:02.65 apache2
 1206 root      20   0  882484  28336   7564 S   0.0  0.4   2:22.23 dockerd-cu+
  363 root      20   0  152940  24712  24332 S   0.0  0.3   0:03.28 systemd-jo+
 1230 root      10 -10  152508  23556   5804 S   0.0  0.3  49:38.73 AliYunDun
  588 root      20   0 1055532  22124   5056 S   0.0  0.3   5:32.65 exe
  888 root      20   0  586424  17504    248 S   0.0  0.2   0:12.96 tuned
 1129 redis     20   0  253652  10112    648 S   0.0  0.1   1:47.15 redis-serv+
 1251 root      20   0  459544   9356    880 S   0.0  0.1   1:24.21 docker-con+
 1131 root      20   0  805672   8048   3300 S   0.0  0.1   2:21.05 aliyun-ser+
 1505 root      20   0   76736   7356    132 S   0.0  0.1   0:06.39 apache2
  530 polkitd   20   0  612232   6992    460 S   0.0  0.1   0:00.41 polkitd

做法:

新建一个data目录,放统计数据

运行一个 stat.sh脚本,脚本内容为:

while ((1))
do

  #echo "NN"

  d=`date +%Y%m%d-%H%M%S`
  top -b -o +%MEM -n 1 > ./data/${d}.txt
  sleep 10
  find data -type f -mmin +5 -exec rm -rf {} \;
done

核心命令

top -b -o +%MEM -n 1

目的:输出top内容

find data -type f -mmin +5 -exec rm -rf {} \;

目的:删除过期的文件,只保留3分钟

总结

期望系统如果不幸被重启,希望看到机器死之前3分钟的top数据,判断系统占用的情况。

 

主机差评君首发于zhuji188.com,转发请标明来源https://zhuji188.com/968.html
THE END
分享
二维码
< <上一篇
下一篇>>