Linux 性能搜集【top/vmstat/iostat】
为方便问题发生后,问题原因的分析排查,我们可以在服务器中事先部署如下脚本,方便故障发生后,问题原因的分析排查
脚本部署方法:
1.将脚本【top_monitor.sh】上传到服务器
2.登陆虚拟机,并切换到root用户
3.执行命令:crontab -e
4.添加定时任务:* * * * * <the path of the script>/top_monitor.sh <the path of ouputs saved> <keeps>
备注:
范例:* * * * * /root/top_monitor.sh /var/tmp/ 72 &
a.这里的keeps以小时为单位,如果保留三天的话,就输入72
b.该脚本每五秒钟收集一次top/vmstat/iostat命令的输出,每分钟会生成一个性能数据文件
c.不要把用户数据放到该目录下,否则会被清理掉
脚本详情如下:
#! /bin/bash if [ $# != 2 ]; then echo "Invalid option, try top_monitor.sh <path> <hours>" exit fi export dir=$1 export keeps=$2 ## Create topMon folder if [ ! -d "$dir" ]; then mkdir $dir fi mkdir $dir/topMon file=$dir/topMon/"topMon_"`date +%Y%m%d` file=$dir/topMon/"topMon_"`date +%Y%m%d%H%M%S` ## Cleanup expired outputs for i in `find $dir/topMon/ -type f -atime +$keeps -print` #for i in `find $dir/topMon/ -type f -amin +$keeps -print` do rm -rf $i done ## Record top ouputs for i in {0..10} do date +"%Y-%m-%d %H:%M:%S" >> $file top -b -n 1 | head -33 >> $file vmstat >> $file iostat -x 1 1 >> $file sleep 5 done