目录
一、问题场景
使用top查看linux的性能指标,结果出现进程的CPU占用率超出100%却没有卡顿现象,感觉很不科学
二、问题产生原因以及解决办法
1. 出现原因
% cpu 是表示单核 cpu 的占用率, 而不是占用所有 cpu 的占用率。可以通过按1查看系统是否有多个CPU
果然,我的机器的CPU是双核的:%Cpu0,%Cpu1!
也可以输入以下命令,查看CPU信息:
cat /proc/cpuinfo
2. 解决办法
2.1 设置solaris mode
若想这里显示的%CPU的数据是全部cpu核的使用率,而不是单核,可以通过切换solaris mode模式。
- irix mode 和 Solaris mode两种模式可以通过I(大写i)切换,默认为irix mode
- 对于%cpu这一项在irix mode下,%cpu 就是只计算一个cpu核心,100%代表一个cpu核心达到100%负载,此时如果你有4个核心,就需要除以4
- 对于solaris mode 在irix的基础上除以cpu个数
2.2 保存默认设置为 solaris mode
- 可以用shift + I键切换到Solaris mode,然后用Shift + W键保存到~/.toprc中,这样下次就不需要再手动切换,top命令启动时将读取~/.toprc文件中的配置,自动使用solaris模式。
- 将toprc文件复制到/etc/toprc文件下,则系统全局使用该文件。