系统负载和CPU数量

2020/12/14 23:46:35

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

  1. processor : 逻辑处理器的id。
  2. physical id : 物理封装的处理器的id。
  3. core id : 每个核心的id。
  4. siblings :位于相同物理封装的处理器中的逻辑处理器的数量。
  5. cpu cores : 位于相同物理封装的处理器中的内核数量。



小知识点:

  1. sort 是文件结果标准输出命令
sort -n #根据字符串数值比较输出
sort -r #逆序输出
sort -u #去重输出,默认安装ASCII码升序排列
sort -k #---key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾)

举例说明:

  1. 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

  1. CPU使用率一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况。被占用时间多,易造成超负荷运作。而长期超负荷运作易损坏机器。
  2. 系统负载是一段时间内正在使用和等待使用CPU的平均任务数,也就是CPU使用队列的长度的统计信息。
  3. 降低服务器的CPU负载最直接方法是更换性能更好服务器,在服务器其他配置合理情况下,CPU内核数越大,系统处理能力越强
  4. 电话亭排队打电话的例子中,电话的数量是CPU内核数,单位时间内排队打电话的人数是系统平均负载,单位时间内个人拨打电话的时间在单位时间的占比是CPU的利用率。