shell脚本统计多个CPU利用率

本节主要内容:
top命令统计CPU的利用率

一,问题分析

MySQL在Linux下是多线程的,而且只能将多个线程分布到一个CPU上。
因此,使用小型服务器,或者PC SERVER,多个CPU利用率并不高。
基本上有1~2个在使用。

本节分享下统计CPU的利用率的方法,供大家学习参考。

相关阅读:
查看Linux系统资源占用(top、free、uptime)
top命令显示内容的详细解释

二,shell脚本实现

1.输入 top  -bn1  (b控制输出格式为文本格式,非交互格式)

[[email protected]]$  top -bn1

2.输入top ,进入交互模式,为下一步设置输出格式做准备

[[email protected]]$  top

然后输入   1

可以查看多个CPU利用率:

top - 21:40:51 up 25 days,  9:32,  1 user,  load average: 0.15, 0.30, 0.33
Tasks: 101 total,   1 running,  96 sleeping,   0 stopped,   4 zombie
Cpu0  :  0.8% us,  0.3% sy,  0.0% ni, 98.4% id,  0.3% wa,  0.0% hi,  0.0% si
Cpu1  :  1.1% us,  0.2% sy,  0.0% ni, 98.6% id,  0.1% wa,  0.0% hi,  0.0% si
Cpu2  :  0.5% us,  0.1% sy,  0.0% ni, 99.4% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu3  :  0.4% us,  0.1% sy,  0.0% ni, 99.5% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu4  :  0.3% us,  0.1% sy,  0.0% ni, 99.5% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu5  :  0.3% us,  0.1% sy,  0.0% ni, 99.6% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu6  :  0.3% us,  0.1% sy,  0.0% ni, 99.6% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu7  :  0.2% us,  0.1% sy,  0.0% ni, 99.7% id,  0.0% wa,  0.0% hi,  0.0% si

3.保存当前输出格式的参数(配置输出)
在2的基础上按W ,然后按ctri+c

保存退出
按q
(会在/home/mysql 下有.toprc文件)

4.编写 shell 程序cpu.sh

#!/bin/bash
while  true
do
  top -bcisSn1 >>cpu.log
  sleep 10
done

5.部署 cpu.sh 程序

sh  cpu.sh &

三.分析日志
cat  cpu.log| grep cpu  等操作,就可以分析过去时间,各个cpu的利用率了。
这里省略.....,依个人爱好,输出,甚至可以把输出用cacti绘图出来。

四.删除配置文件
如果不想使用上述的top 输出格式,可以删除配置文件

rm /home/mysql/.toprc  

有兴趣的话,可以cat下.toprc中的内容。

时间: 2024-10-09 18:07:03

shell脚本统计多个CPU利用率的相关文章

Linux如何统计进程的CPU利用率

0. 为什么写这篇博客 Linux的top或者ps都可以查看进程的cpu利用率,那为什么还需要了解这个细节呢.编写这篇文章呢有如下三个原因: * 希望在脚本中,能够以过"非阻塞"的方式获取进程cpu利用率 * ps无法获得进程当前时刻的CPU利用率;top则需要至少1秒才能获得进程当前的利用率 * * 好奇 1. 如何统计进程CPU利用率 1.0 概述 在Linux的/proc文件系统,可以看到自启动时候开始,所有CPU消耗的时间片:对于个进程,也可以看到进程消耗的时间片.这是一个累计

利用shell脚本统计代码行数

刚毕业那会儿有一次去一家台湾公司面试,问我写过多少行代码.从没想过这个问题,粗略算了算,随口说道:大概几十万行吧.最近整理资料,看着eclipse左边满满的列表,想起了这个事.倒底总共有多少行代码?--这事如果在windows下要么找工具,要么编程序.又想到linux里的命令统计很方便,于是打算用个命令来完成.可分析来分析去,恐怕一行命令是搞不定的--又涉及递归查找,又涉及指定文件类型,又涉及对文件全路径进行操作.最终还是用了一段shell脚本才达到目的. #!/bin/bash declare

利用shell脚本统计文件中出现次数最多的IP

比如有如下文件test.txt 1  134.102.173.43 2  134.102.173.43 3  134.102.171.42 4  134.102.170.9 要统计出现次数最多的IP可以利用以下shell脚本: cat test.txt | awk '{print $2}' | sort | uniq -c | sort -n -r | head -n 1 [原创]统计IP次数最多的 一条还是很常见,很实用,很简单的命令 netstat -ntu Active Internet

如何用shell脚本监控服务器负载、cpu、内存、硬盘和登录用户数

说明:此脚本安装在CentOS的操作系统上 一.监控脚本如下 vim  /root/script/systemmonitor.sh #!/bin/bash#监控系统负载与CPU.内存.硬盘.登录用户数,超出警戒值则发邮件告警. #提取本服务器的IP地址信息IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` # 1.监控系统负载的变化情况,超出时发邮件告

编写shell脚本统计某个时间段内本机的流量

下面是我的wlan0网卡的输出信息,你可以使用ifconfig 或者 ifconfig | sed -n '/wlan0/,10p' 获取显示的信息的格式 wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx inet addr:172.29.164.251  Bcast:172.29.167.255  Mask:255.255.248.0 inet6 addr: 2001:da8:c803:4a57:e190:606f:3155:936

shell脚本统计接口访问量

#!/bin/bash  cd /etc/nginx/logs/old/ for i in  `seq 1 30` do dt=`date -d  "$i day ago"  +%Y%m%d` cd  ${dt} line=`cat *_sl.senseyun.com-getTime.log |wc -l`  echo ${dt}:XX访问量 "${line}" cd ../ done 原文地址:http://blog.51cto.com/wsxxsl/205463

一个统计 CPU 内存 硬盘 使用率的shell脚本

一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Utilization total=0 idle=0 system=0 user=0 nice=0 mem=0 vmexec=/usr/bin/vmstat which sar > /dev/null 2>&1 if [ $? -ne 0 ] then ver=`vmstat -V | awk

Shell脚本监控CPU、内存和硬盘利用率

1.监控CPU利用率(通过vmstat工具) #!/bin/bash#====================================================# Author: lizhenliang - EMail:[email protected]# Create Date: 2015-02-01# Description: cpu utilization monitor# blog:lizhenliang.blog.51cto.com#===================

shell脚本检测监控mysql的CPU占用率

网站访问量大的时候mysql的压力就比较大,当mysql的CPU利用率超过300%的时候就不能提供服务了,近乎卡死状态,这时候最好的方法 就是重启mysql服务.由于这种事具有不可预见性,我们不知道什么时候mysql的占用率达到300%,还是写个程序定期判断比较靠谱. 学了shell编程,写了下面的脚本: #!/bin/bash cpu=`ps aux | grep 'mysqld$' | cut -d " " -f6 | cut -d. -f1` if [ $cpu -gt 300