利用shell脚本编写查看Centos 7下CPU,内存,磁盘的占用率

#cpu
CPU_us=$(vmstat | awk '{print $13}' | sed -n '$p')
CPU_sy=$(vmstat | awk '{print $14}' | sed -n '$p')
CPU_id=$(vmstat | awk '{print $15}' | sed -n '$p')
CPU_wa=$(vmstat | awk '{print $16}' | sed -n '$p')
CPU_st=$(vmstat | awk '{print $17}' | sed -n '$p')

CPU1=`cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}'`
sleep 5
CPU2=`cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}'`
IDLE1=`echo $CPU1 | awk '{print $4}'`
IDLE2=`echo $CPU2 | awk '{print $4}'`
CPU1_TOTAL=`echo $CPU1 | awk '{print $1+$2+$3+$4+$5+$6+$7}'`
CPU2_TOTAL=`echo $CPU2 | awk '{print $1+$2+$3+$4+$5+$6+$7}'`
IDLE=`echo "$IDLE2-$IDLE1" | bc`
CPU_TOTAL=`echo "$CPU2_TOTAL-$CPU1_TOTAL" | bc`
#echo -e "IDLE2:$IDLE2\nIDLE1:$IDLE1\nCPU2:$CPU2_TOTAL\nCPU1:$CPU1_TOTAL"
#echo -e        "IDLE:$IDLE\nCPU:$CPU_TOTAL"
RATE=`echo "scale=4;($CPU_TOTAL-$IDLE)/$CPU_TOTAL*100" | bc | awk '{printf "%.2f",$1}'`

echo -e "us=$CPU_us\tsy=$CPU_sy\tid=$CPU_id\twa=$CPU_wa\tst=$CPU_st"
echo "CPU利用率:${RATE}%"
CPU_RATE=`echo $RATE | cut -d. -f1`
#echo   "CPU_RATE:$CPU_RATE"
if      [ $CPU_RATE -ge 1 ]
then    echo "CPU Warn"
        ps aux | grep -v USER | sort -rn -k3 | head
fi

#内存
total=$(free -m | sed -n '2p' | awk '{print $2}')
used=$(free -m | sed -n '2p' | awk '{print $3}')
free=$(free -m | sed -n '2p' | awk '{print $4}')
shared=$(free -m | sed -n '2p' | awk '{print $5}')
buff=$(free -m | sed -n '2p' | awk '{print $6}')
cached=$(free -m | sed -n '2p' | awk '{print $7}')
rate=`echo "scale=2;$used/$total" | bc | awk -F. '{print $2}'`
echo -e "total\tused\tfree\tshared\tbuffer\tavailable"
echo -e "${total}M\t${used}M\t${free}M\t${shared}M\t${buff}M\t${cached}M\n内存使用
率:${rate}%"
if    [ $rate -ge 30 ]
then    echo "Memory Warn"
    ps aux | grep -v USER | sort -rn -k4 | head
fi

#磁盘
DEV=`df -hP | grep '^/dev/*' | cut -d' ' -f1 | sort`
for I in $DEV
do dev=`df -Ph | grep $I | awk '{print $1}'`
size=`df -Ph | grep $I | awk '{print $2}'`
used=`df -Ph | grep $I | awk '{print $3}'`
free=`df -Ph | grep $I | awk '{print $4}'`
rate=`df -Ph | grep $I | awk '{print $5}'`
mount=`df -Ph | grep $I | awk '{print $6}'`
echo -e "$I:\tsize:$size\tused:$used\tfree:$free\trate:$rate\tmount:$mount"
F=`echo $rate | awk -F% '{print $1}'`
if [ $F -ge 50 ]
then
    echo "$mount Warn"
    else

echo "It's OK"
fi
done

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 为了提升 Centos7CPU 利用率,我们可以使用一些脚本来优化系统性能。这些脚本能够在提高 CPU 利用率的同时还能保证系统的稳定性和安全性。 首先,我们可以使用 CPU 核心调优脚本来优化 CPU 利用率,提高系统性能。这个脚本可以通过调整 CPU 的核心数来优化系统的性能。我们可以设置适当的核心数,从而提高 CPU 利用率。这个脚本需要对系统的设置进行修改,所以在使用前请备份系统文件。 其次,我们可以使用 I/O 优化脚本来提高系统的 I/O 性能,从而提高 CPU 利用率。这个脚本可以通过调整读写缓存来优化文件 IO,加速系统和应用的读写速度,从而改善系统性能。这个脚本也需要进行系统设置的修改,所以在使用前请备份系统文件。 最后,我们可以使用内存优化脚本来提高系统的内存利用率,从而提高 CPU 利用率。这个脚本可以通过调整系统的内存分配策略,从而让系统能够更好地管理内存资源,提高系统的性能。这个脚本也需要对系统的设置进行修改,所以在使用前请备份系统文件。 总之,采用上述的脚本可以提高 Centos7CPU 利用率,同时提升系统性能和稳定性。使用前请加倍小心,以免修改系统设置导致系统崩溃或出现其他问题。 ### 回答2: CentOS 7 提升 CPU 利用率脚本可以有效地提高系统的性能利用率,从而提升系统的运行效率和性能稳定性。下面是一个简单的脚本示例: #!/bin/bash # Set CPU scaling governor to "performance" mode for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue echo performance > $CPUFREQ done # Disable frequency scaling for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_enabled; do [ -f $CPUFREQ ] || continue echo 0 > $CPUFREQ done # Enable IRQbalance systemctl enable irqbalance systemctl start irqbalance # Set CPU affinity for running processes for PROC in $(ps -Ao pid --no-headers); do taskset -p -c 0 $PROC > /dev/null 2>&1 done # Set kernel parameters to improve performance echo 'vm.swappiness = 10' >> /etc/sysctl.conf echo 'vm.vfs_cache_pressure = 50' >> /etc/sysctl.conf sysctl -p # Remove unnecessary services and packages yum remove -y abrt-plugin-bugzilla abrt-plugin-kerneloops abrt-plugin-logger abrt-plugin-mailx abrt-plugin-sos abrt abrtd acpid atd autofs avahi-daemon avahi-autoipd coolkey cpuspeed cups dhcpv6-client dhclient dhclient-script eject firewalld firstboot gdm gdm-plymouth gdm-user-switch-applet gnome-session-xsession irqbalance kdump kexec-tools kpartx kudzu lvm2-cluster lvm2 lvm2-lockd lvm2-monitor lvm2-sysmd mcstrans mdmonitor microcode_ctl mlocate net-snmp net-snmp-utils nfs-utils nscd ntp ntpdate oddjob oddjob-mkhomedir open-vm-tools openssh-clients openssh-server openssl-devel plymouth-core-libs plymouth-scripts pm-utils portreserve prelink rng-tools rsyslog smartmontools smartmontools-libs spice-vdagent sysstat system-config-firewall-tui system-config-network-tui upower usbutils util-linux-ng yum-langpacks yum-plugin-fastestmirror yum-plugin-remove-with-leaves yum-utils 这个脚本分为几个部分。首先是将 CPU 的 scaling governor 设置为 performance 模式,关闭 CPU 的 frequency scaling,启用 IRQbalance,并为运行的进程设置 CPU 亲和性。随后是设置内核参数以提高性能,最后是删除一些不必要的服务和包。 通过使用这个脚本,可以有效地提高 CentOS 7 系统的性能和稳定性,提高 CPU 利用率。需要注意的是,这个脚本可能会导致一些不必要的安全隐患,所以在使用前要谨慎评估其影响。 ### 回答3: 在 Centos7 上提升 CPU 利用率可以通过脚本实现。其中,最关键的是使用了 stress 工具,它可以模拟 CPU 的高负载状态,来测试系统的稳定性和性能。 以下是一个简单的脚本示例: ```bash #!/bin/bash # 设置压力测试时长和 CPU 数量 TIME=60 CPU_COUNT=$(grep -c ^processor /proc/cpuinfo) # 安装 stress 工具 yum install -y stress # 创建负载测试循环 while true do for i in $(seq $CPU_COUNT) do # 在每个 CPU 上使用 stress 工具 stress --cpu 1 --timeout $TIME & done # 等待压力测试完成 sleep $TIME done ``` 这个脚本会在后台执行一个无限循环,每次都会在每个 CPU 上启动一个 stress 进程,并且等待压力测试时长。通过这种方式,可以有效地提高 CPU 利用率。 在使用这个脚本时需要注意,它将会给系统带来相当大的负载,可能会导致其他应用程序的性能下降或者系统稳定性的问题。建议在测试环境中运行,并且对系统进行足够的测试和监控。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值