CPU性能--平均负载

2021-01-15  本文已影响0人  zlcook

平均负载

$ man ps
Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process:
               D    uninterruptible sleep (usually IO)
               R    running or runnable (on run queue) )
               S    interruptible sleep (waiting for an event to complete)
               T    stopped by job control signal
               t    stopped by debugger during the tracing
               W    paging (not valid since the 2.6.xx kernel)
               X    dead (should never be seen)
               Z    defunct ("zombie") process, terminated but not reaped by its parent
# 周期性查看系统负载信息,并显示变化的部分
$ watch -d uptime
 当前时间  系统运行时间     正在登陆的用户 1分钟、5分钟、15分钟的平均负载
 07:49:31 up 1 day,  7:59,  1 user,  load average: 0.00, 0.01, 0.05

CPU使用率

平均负载高产生原因

# 查看系统有几个cpu
$ grep 'model name' /proc/cpuinfo | wc -l
40

平均负载多少合理

平均负载案例分析

# 安装
$ sudo yum install sysstat  stress

查看应用是CPU密集型还是IO密集型

$ watch -d uptime
每隔5秒查看每个cpu的指标,以及整体cpu平均指标
$ mpstat -P ALL 5 
每隔5秒输出一组进程cpu使用数据(-u)
$ pidstat -u 5 1

测试环境

项目 说明
总的cpu核心 2
内存 4.3G

CPU密集型应用

# 开启两个worker进行耗费cpu计算
$ stress -c 2

$ uptime
# 负载大于cup核心数,说明负载高
16:34:34 up 45 min,  2 users,  load average: 3.00, 2.71, 1.59

用htop观察

$ htop

用mpstat

#每隔5秒查看每个cpu的指标,以及整体cpu平均指标
$mpstat -P ALL 5

用pidstat

每隔5秒输出一组进程cpu使用数据(-u)
$ pidstat -u 5
# 查看pid=1859进程的cpu利用率情况
$pidstat -p 1859 -u 5

IO密集型应用

$stress -i 1

htop观察

io密集型表现

mpstat

mpstat -P ALL 5

pidstat

pidstat -ud 5

大量等待CPU调度

# 进程数大于cpu数,会导致cpu切换频繁(此时系统cpu为4)
$stress -c 8
系统负载为8高于cpu个数4

mpstat

pidstat

上一篇下一篇

猜你喜欢

热点阅读