目录
1.1通过 uptime 命令获取 1 分钟系统负载,zhishi,然后需要理解这个系统负载的意义,及它是怎么计算的
uptime
uptime |awk -F'[,:]' '{print $(NF-2)}'
知识点:
-
awk 用print打印倒数第一 二 三列参数分别为 ( N F ) 、 (NF)、 (NF)、(NF-1)、$(NF-2)
-
awk 若有多个分隔符可用 -F’[ ][ ]’ 或者-F’[ ]’ 表示
-
uptime中上述参数的含义:第一项是当前时间,up 表示系统正在运行,1day , 6:48 是系统启动的总时间,最后是系统的负载load信息。
-
0.1 0.04 0.05 分别表示最近1分钟、5分钟、15分钟系统的平均负载
若单核系统,表示CPU有10%被占用,有90%空闲
若双核系统,表示CPU有5%被占用,有95%空闲 -
系统平均负载是指可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。它不仅包括了正在使用 CPU 的进程,还包括等待 CPU 和等待I/O 的进程。
-
平均负载的意义:提供了查看系统总体性能的手段,反映整体负载情况
-
影响平均负载的因素:cpu密集程度、I/O密集程度、CPU进程调度
-
当发现负载高的时候,你可以使用 mpstat、pidstat 等工具,辅助分析负载的来源。
-
转载:https://www.cnblogs.com/fadewalk/p/11172991.html#_label0
1.2通过 /proc/cpuinfo 去获取当前机器的 cpu 数量(可以用 wc 命令计算行数)
#查看系统cpu信息
cat /proc/cpuinfo
- processor : 逻辑处理器的id。
- physical id : 物理封装的处理器的id。
- core id : 每个核心的id。
- siblings :位于相同物理封装的处理器中的逻辑处理器的数量。
- cpu cores : 位于相同物理封装的处理器中的内核数量。
小知识点:
- sort 是文件结果标准输出命令
sort -n #根据字符串数值比较输出
sort -r #逆序输出
sort -u #去重输出,默认安装ASCII码升序排列
sort -k #---key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾)
举例说明:
- uniq 去重命令
所以这个服务器主机的CPU为1个物理封装的处理器,每个处理器又有1个处理核心(cpu cores),每个cpu core有可划分为1个逻辑处理器(超线程技术),因此,每个物理处理器上有1个逻辑处理器,总共就有1个processor。(意义不大)
转载:https://blog.csdn.net/sycflash/article/details/6643492
举例:假如有这么一台服务器
在这个服务器上,‘cpu cores’ 为4,physical id 有两个,core id有8个,siblings的值为8,总共有16个processor。
所以这个服务器主机的CPU为2个物理封装的处理器,每个处理器又有4个处理核心(cpu cores),每个cpu core有可划分为2个逻辑处理器(超线程技术),因此,每个物理处理器上有8个逻辑处理器,总共就有16个processor。这回明白了吧。大体的结构如下图:
总结:
1.总核数 = 物理CPU个数 X 每颗物理CPU的核数
2. 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
1.3 cpu使用率与系统负载的关系
转载:
http://blog.chinaunix.net/uid-24799071-id-3861820.html
- CPU使用率一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况。被占用时间多,易造成超负荷运作。而长期超负荷运作易损坏机器。
- 系统负载是一段时间内正在使用和等待使用CPU的平均任务数,也就是CPU使用队列的长度的统计信息。
- 降低服务器的CPU负载最直接方法是更换性能更好服务器,在服务器其他配置合理情况下,CPU内核数越大,系统处理能力越强
- 电话亭排队打电话的例子中,电话的数量是CPU内核数,单位时间内排队打电话的人数是系统平均负载,单位时间内个人拨打电话的时间在单位时间的占比是CPU的利用率。