在此简单列举一些常见的监控工具,以及配置方式等。
sar (select activity information) 用于采集系统的信息,默认会保存一个月的信息,在 CentOS 中包含在 sysstat软件包中。与此相关的还有:
其中 sar1 和 sar2 程序会在 cron 任务中调用执行,也就是在 /etc/cron.d/sysstat 文件中,默认每 10 分钟通过 sa1 采集一次数据;23:53 时通过 sa2 转换一次数据,默认保存 28 天,可以在 /usr/lib64/sa/sa2 中设置。
其中 /etc/cron.d/sysstat 文件内容如下。
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
因为使用的是 crontab ,所以最小的粒度是 1min;当然,也可以使用 sa1 1 60
每秒执行依次,并执行 60 次,进一步减小监控的粒度。
默认会将监控数据保存在 /var/log/sa/ 目录下,其中保存的数据,例如有一个 sa01 文件,可以直接通过 sar -f /var/log/sa/sa01
命令查看。
简单列举常用的参数:
sar [interval [count]]
如果不使用时间参数则会显示到现在为止,所搜集的统计数据;
-A
保存所有,等加于-bBdHqrRSuvwWy -I SUM -I XALL -m ALL -n ALL -u ALL -P ALL;
-f file
从指定文件读取显示;
CPU
-u 统计平均值;-P ALL可以指定cpu号或者显示所有;
磁盘建议采用 iostat ,sar -d 采用的设备名称不太好识别,采用的是从设备号。
关于一些常见的监控项,可以参考如下图片:
top 是查看资源最常用的方式。
简单列举下经常使用的场景。
默认是交互模式,也就是循环执行,并接收用户的按键,这样对于一些采集的程序就不方便使用,这里可以使用 Batch Mode 。
----- 使用Batch Mode打印指标,此时仍是无限循环
$ top -b
----- 通过-n参数指定只打印一次
$ top -b -n 1
----- 指定时间点运行,需要注意TERM环境变量,top命令需要但是at并没有获取该参数
$ cat ./test.at
TERM=linux top -b -n 1 >/tmp/top-report.txt
$ at -f ./test.at now+1minutes
可以通过如下方式指定只监控特定进程或者用户。
----- 指定多个进程
$ top -p 4360,4358
$ top -p 4360 -p 4358
----- 指定用户
$ top -u johndoe
$ top -u 500
$ top -U johndoe
在 Linux 下可以通过如下程序查看多线程。
----- 通过-H(Threads toggle)参数,一行显示一个线程
$ top -H -p `pidof mysqld`
----- 查看所有存在的线程,H(Show threads as if they were processes)
$ ps Hp `pidof mysqld`
----- 查看线程调用堆栈
$ pstack `pidof mysqld`
----- 查看线程数
$ pstree -p `pidof mysqld`
如果喜欢这里的文章,而且又不差钱的话,欢迎打赏个早餐 ^_^
This Site was built by Jin Yang, generated with Jekyll, and hosted on GitHub Pages
©2013-2018 – Jin Yang