linux内存负载高怎么解决,Linux系统Load Average平均负载高如何处理

通过top或着uptime命令可以看到系统的平均负载,如下,分别表示过去 1 分钟、5 分钟、15 分钟的系统平均负载(之所以统计三个时间点数值,是为了更好的反映系统整体的负载趋势)

[root@k8s-master ~]# uptime

10:54:36 up 8 days, 12:31, 1 user, load average: 0.25, 0.51, 1.19

平均负载的含义:系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,这里的平均指的是指数衰减平均值,对应到进程的状态如下

可运行状态(Running或Runnable)

不可中断状态(Uninterruptible Sleep,也称为 Disk Sleep)

#查找R或D状态的进程ps aux | awk '{if($8 ~ /R|D/) print $0 }'[root@k8s-master ~]# ps aux | awk '{if($8 ~ /R|D/) print $0 }'root9 0.0 0.0 0 0 ? R Jun30 6:08[rcu_sched]

root30474 0.0 0.0 157456 1912 pts/0 R+ 11:10 0:00 psaux

root30475 0.0 0.0 113548 1232 pts/0 R+ 11:10 0:00 awk {if($8 ~ /R|D/) print $0 }

根据上述平均负载的定义,能够导致平均负载升高的场景有:

1、处于Running状态的进程大量消耗cpu(CPU密集型进程)

2、大量处于Runnable的进程,cpu会频繁进行上下文切换(寄存器、程序计数器)

操作系统管理的任务包括进程(线程),还有硬件通过触发信号,会导致中断处理程序的调用

上下文切换包括:进程上下文切换(虚拟内存、栈、全局变量等用户空间的资源,还包括了内核堆栈、寄存器等内核空间的状态)、线程上下文切换、以及中断上下文切换

特权模式切换:用户态到内核态的上下文切换

查看系统总体的上下文切换情况

vmstat5[root@k8s-master sysstat]# vmstat 5procs-----------memory---------- ---swap-- -----io---- -syst

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值