聊聊Linux性能优化那些事一 (平均负载、CPU上下文切换)

性能指标:

 高并发和响应快 对应着性能优化的两个核心指标 吞吐 和 延迟。这两个指标是从应用负载的视角来考察性能,直接影响产品终端用户体验。跟他们对应的是从系统资源的视角触发的指标,比如资源使用率、饱和度等

 随着应用负载的增加,系统资源使用也会升高,甚至达到极限。而性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。

  性能分析:找出应用或者系统的瓶颈,并设法避免或者缓解它们,从而高效地利用系统资源处理更多请求

关于性能领域大师布伦丹·格雷格他的Linux性能工具图谱:

 

 

怎么理解平均负载?

     当系统变慢的时候,我们经常使用top或者uptime的时候

其中参数为 当前时间,系统运行时间,正在登陆的用户数,还有1m,5m,15m的平均负载

平均负载:是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。

   可运行状态的进程:是指正在使用CPU或者等待CPU的进程,也就是ps命令可以看到的处于R(running)状态的进程

   不可中断状态的进程:是指正处于内核态关键流程中的进程,并且这些流程不可打断,比如常见的I/O响应,也就是我们PS命令中看到的D(Disk sleep)状态的进程     

S休眠状态,Z僵尸进程

 比如:当一个进程向磁盘读写数据时为了保证数据一致性,在得到磁盘恢复前,它是不能被其他进程中断打断的,这个进程处于不可中断进程。

   不可中断状态实际上是系统对进程和硬件设备的一种保护机制

  当CPU平均负载为2时, 1>只有2个CPU的系统,意味着CPU刚好被完全占用 2>在4个CPU的系统上,意味着CPU有50%空闲3> 1个CPU的系统上,意味着一半的进程竞争不到CPU

平均负载多少为合理:

 首先要知道系统有几个CPU,可以通过top或者从文件/proc/cpuinfo中读取,其中model name

 一般当平均负载高于CPU数量70%的时候,就应该排查负载高的问题,一旦负载过高可能导致进程响应变慢,进而影响服务的正常功能

平均负载与CPU使用率

   平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数,所以不仅包括了正在使用CPU的进程,还包括等待CPU等待I/O的进程。而CPU使用率是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。

  比如:  CPU密集型服务,使用大量CPU会导致平均负载升高,此时两者一致

               I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高。

              大量等待CPU的进程调度也会导致平均负载升高,此时CPU使用率也会比较高

平均负载案例分析

   场景一:CPU密集型进程

     在第一个终端运行stress命令,模拟CPU使用率100%的场景

     

   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值