7.16 Linux 运维之路

image0

7.16.1 如何查看并计算 CPU 使用率

有很多的工具可以查看CPU使用率,使用Linux 自带的 top 是最常用的方式。image1

图中标注解释

标为 1 的 栏目,不同模式下的所占CPU时间的百分比。

其中几项指标的说明如下

  • us, user: 运行(未调整优先级的) 用户进程的CPU时间

  • sy,system: 运行内核进程的CPU时间

  • ni,niced:运行已调整优先级的用户进程的CPU时间

  • wa,IO wait: 用于等待IO完成的CPU时间

  • hi,hardware interrupt:处理硬件中断的CPU时间

  • si,software interrupt: 处理软件中断的CPU时间

  • st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

若你觉得这样不够直观,可以按 t ,切换显示image2

若这是多核机器,输入 1 ,可以显示单核CPU使用情况。image3

若你觉得这样不够直观,可以按 t切换成直方图显示image4

标为 2 的 栏目,表示各个进程的 cpu 使用率,比如第一个进程 348% 就是占满了3.48个核。

所谓的 cpu 使用率,其实就是 cpu使用时间 / cpu运行时间

这里使用一台 KVM 的虚拟机做为展示

7.16.2 如何查看并计算 内存使用率

7.16.3 获取执行命令标准错误

将标准错误重定向到标准输出

${command} 2>&1

7.16.4 如何ssh多行执行命令

out=`ssh -l root -p$port $server_ip "mysql -h $server_ip -P $port -u $user -p$password -e \"mysql 命令\" "`

for cluster_ip in ${out[*]};
do

    echo '========' $cluster_ip '开始更新...'
sshpass -p $password ssh -p $port root@$cluster_ip -t sshpass -p "password" ssh root@172.20.20.253 -o StrictHostKeyChecking=no <<eeooff

把你的命令写在这里
可以写多行

eeooff

done

7.16.5 获取随机数

获取 1 - 60 的随机数

function random_range() {
    local beg=$1
    local end=$2
    echo $((RANDOM % ($end - $beg) + $beg))
}

result=`random_range 1 60`

image5