文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux 进程管理之负载均衡

2024-12-03 06:02

关注

本文转载自微信公众号「人人都是极客」,作者布道师Peter。转载本文请联系人人都是极客公众号。

经过前面的学习,我们知道一个 task 有如下几种状态,但用top时往往会以缩写的形式展现,这里我们总结下。

什么是平均负载?

认识一下:

  1. cat /proc/loadavg  
  2. 0.18 0.94 0.72 1/486 3569 

查看当前系统的平均负载,前三个数分别是 1分钟、5分钟、15分钟的平均进程数。第四个的分子是正在运行的进程数,分母是进程总数;最后一个最近运行的进程ID号。

也可以:

  1. uptime  
  2. 22:32:31 up 9 min,  1 user,  load average: 0.18, 0.94, 0.72 

31 up 9 min, 1 user, load average: 0.18, 0.94, 0.72

load average: 0.18, 0.94, 0.72 //分别是 1分钟、5分钟、15分钟的平均进程数。

我这里的PC是2个cpu,所以这里的负载是比较低的(如果平均负载高于2.0的话说明过载,平均负载低于2.0就是比较正常的。)

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数(即上面的R,D两个状态的平均进程数,很容易忽略D状态的进程),也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。实际的计算比较复杂,感兴趣的同学可以查看源码 https://github.com/torvalds/linux/blob/master/kernel/sched/loadavg.c 。

平均负载不等于CPU使用率

通过上面的介绍我们知道:

平均负载不仅包括了正在使用 CPU 的进程,还包括等待 CPU 和等待 I/O 的进程。

CPU使用率,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。

比如:

CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。

所以这就是有时通过top发现cpu使用率不是很高,但是cat /proc/loadavg时负载又很大的原因。

常用命令

top

可以查看系统CPU的状态,以百分比的形式显示出来。

  1. Tasks: 251 total,   1 running, 243 sleeping,   0 stopped,   1 zombie 
  2. Mem:   2007724k total,   862108k used,  1145616k free,    18560k buffers 
  3. Swap:  1505788k total,        0k used,  1505788k free,   415260k cached 
  4. 400%cpu  16%user   0%nice   6%sys 377%idle   0%iow   0%irq   0%sirq   0%host 
  5.   PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS 
  6.  5628 root         20   0 5.9M 3.1M 2.7M R 19.3   0.1   0:00.07 top 
  7.  5614 root          0 -20    0    0    0 S  0.0   0.0   0:00.00 [kworker/u9:0] 
  8.  5609 root         20   0    0    0    0 S  0.0   0.0   0:00.00 [kworker/3:2] 
  9.  5607 root         20   0    0    0    0 S  0.0   0.0   0:00.00 [kworker/u8:2] 
  10.  5590 root          0 -20    0    0    0 S  0.0   0.0   0:00.00 [kworker/u9:4] 
  11.  5585 root         20   0    0    0    0 S  0.0   0.0   0:00.00 [kworker/u8:3] 
  12.  5577 root          0 -20    0    0    0 S  0.0   0.0   0:00.00 [kworker/u9:2] 
  13.  5571 root         20   0    0    0    0 S  0.0   0.0   0:00.00 [kworker/3:0] 
  14.  5537 root         20   0    0    0    0 S  0.0   0.0   0:00.05 [kworker/u8:1] 
  15.  5448 root         20   0    0    0    0 S  0.0   0.0   0:00.67 [kworker/3:1] 

us(user cpu time):用户态使用的cpu时间比。该值较高时,说明用户进程消耗的 CPU 时间比较多,比如,如果该值长期超过 50%,则需要对程序算法或代码等进行优化。

vmstat

vmstat用来检测系统的状态,包括CPU和内存,非常方便系统调试使用。

  1. procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- 
  2.  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa 
  3.  1  0      0 1146440 18564 415260    0    0     2     1    0   95  0  0 100 0 
  4.  0  0      0 1146476 18564 415260    0    0     0     0    0  384  0  0 100 0 
  5.  0  0      0 1146104 18564 415260    0    0     0     0    0  375  0  0 100 0 
  6.  0  0      0 1146724 18564 415260    0    0     0     0    0  387  0  0 100 0 
  7.  0  0      0 1146848 18564 415260    0    0     0     0    0  369  0  0 100 0 

参考:

https://mp.weixin.qq.com/s/UzmlGu-5n25B0wNScD50Jg

https://mp.weixin.qq.com/s/E5X9U7QIGnLCd4ETn2Ldlw

 

来源:人人都是极客内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯