脚本基本要求
1 、监控工具vmstat
2 、此脚本针对于linux系统
3 、要求显示出用户进程执行消耗cpu的时间(user_time--us)
4 、要求显示出系统进程消耗cpu的时间(system_time sy)
5 、要求显示空闲时间
6 、要求显示等待IO时间
vmstat 1 3
信息以百分比表示
US--->如果这个比较高,长期超过50%,说明用户进程消耗的cpu时间多,
sy--->sys的值过高,这个不好的信息
ID
wa--->wa值过高,磁盘的问题。
#!/bin/bash
#======================================
pwddir = `pwd`
check_os = `uname`
cpu_info = `vmstat 1 2 > $pwddir/info.log`
us_info = `cat $pwddir/info.log | awk '{print $13}' | tail -1`
sy_info = `cat $pwddir/info.log | awk '{print $14}' | tail -1`
id_info = `cat $pwddir/info.log | awk '{print $15}' | tail -1`
wa_info = `cat $pwddir/info.log | awk '{print $16}' | tail -1`
#======================================
check_error()
{
if [ $? -ne 0 ];then
echo "$i error" > $pwddir/cpuerror.log
return 1
fi
}
#======================================
check_tools()
{
which vmstat >/dev/null 2>&1
check_error vmstat
if [ check_os == "Linux" ];then
cpu_info_zy
else
echo "os is not Linux" >>$pwddir/cpuerror.log
return 1
fi
}
cpu_info_zy()
{
echo "cpu_sus:$us_info"
echo "cpu_sy:$sy_info"
echo "cpu_id:$id_info"
echo "cpu_wa:$wa_info"
}
main()
{
check_tools
if [ $? -eq 1 ];then
echo "error"
exit 1
fi
}
main