Linux进程管理优化及性能评估工具介绍

衡量Linux CPU使用的指标

需要关注以下地方:

第一段需要关注的值:

·使用率

·在用户空间所消耗的时间百分比

·在系统空间锁消耗的时间百分比

·消耗在IO等待上的时间

如果一个主机上有大量的cpu消耗在IO等待上,那么说明IO活动非常频繁,而IO子系统性能非常差。

因此我们看到wite的时间居高不下时,说明IO活动非常频繁的,IO子系统非常差

但如果wite的时间不是特别离谱,一般而言问题都不大

 

第二段需要关注的值:

·空闲时间

·平均负载,CPU等待运行活动队列中等待运行的进程的个数

·可运行的进程数,处于等待状态的进程数,这个数值一般不能超出所有cpu物理核心的10倍,如果超出则意味着CPU性能差

·阻塞进程,一般引起阻塞是由IO调用引起的,IO调用长时间不能得到满足则会引起阻塞,而处于非可中断的状态

·上下文切换的个数

·中断的个数,一旦有IO发生,这个对应的设备则会发起中断请求,中断了CPU正在进行的进程而转而中断处理程序

在任何CPU上如果中断量很大的话也意味着cpu被打断的次数频繁,所以衡量一个cpu是否被频繁打断的话,不仅要衡量context switch还要衡量interrupts

 

 

绑定CPU

如果我们期望某一颗cpu上只运行某一进程

 

以nginx为例:

我们有2个4核的cpu,8个核心,我们可以实现2个核心运行内核线程以及nginx的master进程,而其他6个核心运行worker线程

 

实现绑定

在启动系统时向内核传递参数,手动隔离专用的物理核心,在隔离完成之后手动启动起来了,并且手动去分配这被隔离的6个核心

隔离物理核心并不意味着没有切换,因为有些不是切换而是中断处理,隔离了其他进程但不能隔离这个CPU中断的能力

 

因为我们有8颗物理核心,当任何一个进程的中断,有可能会被8颗中的某1颗所处理,所以可能包括当前已经隔离出的CPU,也就是说只是隔离的进程而没有隔离中断,而我们为了做到绝不处理任何额外的程序,还需要隔离中断

可以明确定义某个中断号的中断只关联到某特定的CPU上,而不中断到已经被隔离出的CPU

 

总结如下:

在启动系统时向内核传递参数,手动隔离专用的物理核心,在隔离完成之后手动启动起来了,并且手动去分配这被隔离的6个核心

还要将隔离出的CPU从中断处理中隔离出来,绑定进程到CPU上

 

如何实现在启动系统时隔离CPU并且在启动之后使用taskset绑定其他进程

在/etc/grub.conf 向内核中传递参数:

isolcpus=cpu number,..cpu number

将隔离出的CPU,后面跟上隔离出来的号码比如8颗CPU,将0和1正常使用,将2到7都隔离出来,于是

isolcpus=2,3,4,..cpu number

这样以来 这些CPU将不再处理了

启动完成后手动将几个worker进程绑定在taskset上,明确说明启动几个线程,完后将从隔离的cpu上脱离出来即可

 

脱离中断处理程序 

明确定义每个中断,只能够运行在哪个CPU上,用来实现将一个irq(中断请求处理),只关联到负责运行在其他cpu上的应用程序,我们被称为cpumask

[root@mysql_node1 ~]#  ls /proc/irq/
0  10  12  14  2   25  4  6  8  default_smp_affinity
1  11  13  15  24  3   5  7  9

查看默认是实现的关联性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值