当前位置:首页 > 网站源码 > 正文内容

服务器状态监控工具进程(java监控进程运行状态)

网站源码1年前 (2023-11-20)339

作者:jiaxin_12

作者:jiaxin_12

目录

背景

步骤

获取写文件的进程号

文件被那个进程使用,写数据不是用lsof可以找出来吗,但现实情况是lsof没找出来T_T

背景

centos7 在某一段时间监控报警磁盘使用率达99%,由于监控属于概要形式信息,没有快照信息的监控(能发现某进程的I/O,CPU消耗情况),所以需要在服务器上去定时执行统计命令获取快照信息。

需要通过iostat -dx -k去查看avgqu-sz、await、svctm、%util;

sar -u查看%iowait、%user;

pidstat -d 查看进程I/O读写的快照信息

步骤

生成统计信息文件

cat>/tmp/at_task.sh<<EOF

pidstat -d 2 >/tmp/pidstat_\` date+%F_%T\`. log2>& 1 &

sar -u 2 >/tmp/sar_\` date+%F_%T\`. log2>& 1 &

while[ 1 ]; doecho -n \` date+%T\` >>/tmp/iostat_\` date+%F\` 2>& 1 && iostat -dx -k 1 1 >>/tmp/iostat_\` date+%F\` 2>& 1; sleep 2; done &

展开全文

EOF

在while循环中使用iostat的原因是要输出date +%T时间,不然只有数据,没有时间信息也没有什么用

服务器状态监控工具进程(java监控进程运行状态)

在while循环中使用iostat的原因是要输出date +%T时间,不然只有数据,没有时间信息也没有什么用

使用at 命令定时执行

at15:14today-f/ tmp/ at_task.sh

出现错误

Can't open /var/run/atd.pid to signal atd. No atd running?

Can't open /var/run/atd.pid to signal atd. No atd running?

重启atd服务

service atd restart

service atd restart

重新开启at定时任务

at 15:14 today -f /tmp/at_task.sh

job 2 at Wed Mar 13 15:14:00 2019

at 15:14 today -f /tmp/at_task.sh

job 2 at Wed Mar 13 15:14:00 2019

得到如下快照信息

iostat

15:13:35Linux 3.10.0-862.14.4.el7.x86_64 (ip-xxxxx) 03/13/2019 _x86_64_ (4 CPU)

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

vda 0.12 0.07 17.31 19.41 580.79 90.52 36.57 0.09 2.39 4.42 0.57 0.72 2.63

scd0 0.00 0.00 0.00 0.00 0.00 0.00 6.00 0.00 0.28 0.28 0.00 0.25 0.00

sar

03 :14:00PMCPU% user% nice% system% iowait% steal% idle

03 :14:02PMall0.25 0.00 0.38 0.00 0.00 99.37

03 :14:04PMall1.25 0.13 0.63 0.00 0.00 97.99

03 :14:06PMall0.25 0.13 0.50 0.00 0.00 99.12

03 :14:08PMall0.50 0.00 0.50 0.63 0.00 98.37

pidstat

03:14:00 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command

03:14:02 PM 5700 9089 0.00 6.00 0.00 uxxx

03:14:02 PM 5700 9140 0.00 6.00 0.00 uxxx

03:14:02 PM 5700 9292 0.00 10.00 0.00 uxxx

03:14:02 PM 0 18084 0.00 2.00 0.00 bash

kill 掉收集信息的命令

但ps -ef | egrep 命令没有获取到while循环的pid,不kill掉该while循环,就会一直对/tmp/iostat_2019-03-13写数据-_-

通过lsof 没有定位到打开文件的进程

lsof/tmp/iostat_2019-03-13

[root @ip-10-186-60-117 ~] #

[root @ip-10-186-60-117 ~] #

通过lsof 可以定位到打开mysql-error.log的进程

可见,某进程只有一只持有某文件的inode,才可以通过lsof查看文件在被那些进程使用

获取写文件的进程号

安装sysemtap

yum -y install systemtap

yum -y install systemtap

SystemTap 是对 Linux 内核监控和跟踪的工具

利用systemtap中的inodewatch.stp工具来查找写文件的进程号

SystemTap 是对 Linux 内核监控和跟踪的工具

利用systemtap中的inodewatch.stp工具来查找写文件的进程号

得到文件的inode

获取文件所在设备的major,minor

ls -al /dev/vda1

brw-rw---- 1 root disk 253, 1 Jan 30 13:57 /dev/vda1

得到写文件的pid

根据系统内核版本在kernel-devel rpm build for : Scientific Linux 7网站上下载相应的kernal-devel包

wget ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/7.2/x86_64/updates/security/kernel-devel-3.10.0-862.14.4.el7.x86_64.rpm

rpm -ivh kernel-devel-3.10.0-862.14.4.el7.x86_64.rpm

再次执行stap

安装debuginfo kernal

debuginfo- installkernel-3.10.0-862.14.4.el7.x86_64

Verifying : kernel-debuginfo-common-x86_64-3.10.0-862.14.4.el7.x86_64 1/3

Verifying : yum- plugin- auto- update-debug-info-1.1.31-50.el7.noarch 2/3

Verifying : kernel-debuginfo-3.10.0-862.14.4.el7.x86_64 3/3

Installed:

kernel-debuginfo.x86_64 0:3.10.0-862.14.4.el7

yum- plugin- auto- update-debug-info.noarch 0:1.1.31-50.el7

Dependency Installed:

kernel-debuginfo-common-x86_64.x86_64 0:3.10.0-862.14.4.el7

再次执行stap

修改

vim /usr/src/kernels/3.10.0-862.14.4.el7.x86_64/include/generated/compile.h

#define UTS_VERSION "#1 SMP Tue Sep 25 14:32:52 CDT 2018"

改为

#define UTS_VERSION "#1 SMP Wed Sep 26 15:12:11 UTC 2018"

rm -rf /root/.systemtap/cache/f5/stap_f5c0cd780e8a2cac973c9e3ee69fba0c_7030*

再次执行

可见已经得到了写/tmp/iostat_date +%F文件的进程号,但进程号一直在打印出来,因为后台进程iostat -dx -m 的在while循环中的,每隔sleep 2s 后就会执行一次iostat 产生新的pid。

那要怎样才能让iostat -dx -m 停止写/tmp/iostat_ date +%F文件了?除了重启大法好 $_$

rm -rf 也不能终止后台的while iostat进程写文件,删除了文件后,while循环又会生成新的文件

正确做法

cat>/tmp/iostat.sh<<EOF

while[ 1 ]; doecho -n \` date+%T\` >>/tmp/iostat_\` date+%F\` 2>& 1 && iostat -dx -m 1 1 >>/tmp/iostat_\` date+%F\` 2>& 1; sleep 2; done &

EOF

at now+ 1 minutetoday

bash /tmp/iostat.sh

#这样就能方便的获取到进程号pid了

ps -ef | grep iostat

root 8593 1 0 16:16 pts/2 00:00:00 bash /tmp/iostat.sh

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

(新群,火热加群中……)

扫描二维码推送至手机访问。

版权声明:本文由我的模板布,如需转载请注明出处。


本文链接:http://www.xswglasses.com/post/40334.html

分享给朋友:

“服务器状态监控工具进程(java监控进程运行状态)” 的相关文章

怎么查看别人朋友圈以前发的内容(如何查看别人朋友圈以前内容)

怎么查看别人朋友圈以前发的内容(如何查看别人朋友圈以前内容)

本篇文章给大家谈谈怎么查看别人朋友圈以前发的内容,以及如何查看别人朋友圈以前内容对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、怎么搜索朋友圈别人发过的内容 2、如何查...

微信小程序模板源码怎么用(小程序模板源码免费下载)

微信小程序模板源码怎么用(小程序模板源码免费下载)

本篇文章给大家谈谈微信小程序模板源码怎么用,以及小程序模板源码免费下载对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、如何做一个小程序 2、小程序源码怎么导入 小程序源...

抖音小程序源码网(抖音小程序开发平台)

抖音小程序源码网(抖音小程序开发平台)

今天给各位分享抖音小程序源码网的知识,其中也会对抖音小程序开发平台进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、微信小程序转换抖音小程序,很棒 2、教育...

问道手游宝宝在哪里抓(问道手游宝宝在哪里抓的)

问道手游宝宝在哪里抓(问道手游宝宝在哪里抓的)

今天给各位分享问道手游宝宝在哪里抓的知识,其中也会对问道手游宝宝在哪里抓的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、问道手游宠物宝宝怎么获得? 2、...

dtcg数码宝贝值得收藏吗(数码宝贝dtcg规则)

dtcg数码宝贝值得收藏吗(数码宝贝dtcg规则)

本篇文章给大家谈谈dtcg数码宝贝值得收藏吗,以及数码宝贝dtcg规则对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、数码宝贝新世纪混沌龙兽值得培养吗 2、数码宝贝dt...

中国的瀑布有哪些(中国最的瀑布是什么瀑布)

中国的瀑布有哪些(中国最的瀑布是什么瀑布)

本篇文章给大家谈谈中国的瀑布有哪些,以及中国最的瀑布是什么瀑布对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、中国有哪些著名的瀑布? 2、中国瀑布排名前十名 3、中...