一、首先要明确CPU的概念:
1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)
2.cpu核数:单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)
3.逻辑cpu数:一般情况下,逻辑cpu=物理CPU个数×每颗核数,如果不相等的话,则表示服务器的CPU支持超线程技术(HT:简单来说,它可使处理器中的1 颗内核如2 颗内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理CPU个数×每颗核数x2)
二、查看CPU命令:
1、cat /proc/cpuinfo |grep "physical id" | sort | uniq | wc -l ----查看物理CPU数量
2、cat /proc/cpuinfo | grep "cpu cores" | wc -l ----查看CPU核数
3、cat /proc/cpuinfo |grep "processor"|wc -l ----查看逻辑CPU数量
三、查看系统CPU使用情况:
1、top 命令
top命令可以看到总体的系统运行状态和cpu的使用率 。
- us:表示用户空间程序的cpu使用率(没有通过nice调度)
- sy:表示系统空间的cpu使用率,主要是内核程序。
- ni:表示用户空间且通过nice调度过的程序的cpu使用率。
- id:空闲cpu
- wa:cpu运行时在等待io的时间
- hi:cpu处理硬中断的数量
- si:cpu处理软中断的数量
- st:被虚拟机偷走的cpu
- nice调度:
nice值,范围是-20到+19,nice值越大意味着更低的优先级,低nice值会获得更多的处理器时间。
nice值并不是优先级,但会影响优先级:PRI = PRI(old) + nice
CPU的把时间进行切片,然后分配给进程,当进程无限多时,也必须保证进程被抢占之前保证 1ms的运行时间,这个1ms就是最小粒度。
2、sar命令,命令不存在时需要安装sysstat包(yum install sysstat)
#sar -u 1 5 ----每1秒采集一次CPU使用率,共采集5次
四、CPU性能标准(大概)
影响性能因素 | 好 | 坏 | 糟糕 |
---|---|---|---|
CPU | user% + sys%< 70% | user% + sys%= 85% | user% + sys% >=90% |