1.物理CPU个数
cat /proc/cpuinfo| grep "cpu cores"| uniq
2.每个CPU中的core个数
cat /proc/cpuinfo| grep "cpu cores"| uniq
3.逻辑CPU个数
cat /proc/cpuinfo| grep "processor"| wc -l
逻辑CPU = CPU个数 * 每个CPU核数 * 2(超线程HT开启)
4.CPU状态信息us,sy,ni,id,wa,hi,si,st含义
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断
CPU负荷
1.load average
1) 一定时间内有多少个active_tasks
正在处理及等待CPU处理的进程数之和,越多CPU切换越频繁
2) 正常值
系统识别8个cpu,那么load为8就是临界值,高于8就属于over load
3) 系统识别cpu
逻辑处理器的数量
2个四核 = 4个双核 = 8个单核
4) 理想值
0.7乘以内核数
2.CPU使用率
1) 一段内CPU使用状况的统计
一个时间段内CPU被占用的情况
2) CPU高不等于load高
经常出现cpu使用100%,但load不高
cpu的运算功能,那么此时cpu的使用率可能达到100%,但是cpu的工作负载则是趋近于“1”
3) load高不等于CPU高
当对硬盘读写时,出现IO等待,实际上CPU已经被切换了,该任务一直处于等待状态,这样的任务过多,导致队列长度过大,就体现到负载过大
因此CPU高不等于load高,load高不等于CPU高
4) 理想值
60%以下
3.cpu的相关信息
/proc/cpuinfo文件
4.CPU活动的信息
/proc/stat文件
5.某一进程所有的活动的信息
/proc/<pid>/stat文件
在多核的情况下top命令输出的cpu使用率实质是按cpu个数*100%计算的
来源张永光的博客