linux优化进程,linux优化之进程篇(示例代码)

linux系统中的进程分类:

交互式进程(IO密集型)

批处理进程(cpu密集型)

实时进程(守护进程)

平衡进程IO密集和CPU密集的方法:

对于IO密集型:cpu时间片短,优先级较高

对于cpu密集型:时间片较长,优先级较低

进程优先级:

分为实时进程优先级、静态进程优先级、动态进程优先级

实时进程优先级:1-99(数字越小,优先级越低),一般是与系统内核相关的进程

静态优先级:100-139(数字越小,优先级越高),一般是用户空间的进程

实时进程优先级比静态优先级高

动态优先级:当某个进程长时间得不到运行时,内核临时性调高该进程的优先级;或当某个进

程过于占用资源时,会调低优先级。(对象一般是100-139的进程)

调整进程优先级:

创建一个进程时,其默认优先级为120,此时其nice值为0,nice取值范围是-20至19,一共40个级别。这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。可通过nice命令改变一个将要执行的进程的nice值,或通过renice命令修改正在执行的进程的nice值nice -n 10 bash    #将bash的nice值修改为10,此时优先级为130

renice 5 bash    #将正在运行中的bash进程的nice值加5

进程的调度策略:

当两个进程的优先级一样时,就需要一定的调度策略

实时进程调度策略:

SCHED_FIFO:以先进先出的队列方式进行调度,在优先级一样的情况下,谁先执行的就

先调度谁,除非它退出或者主动释放CPU。

SCHED_RR:以时间片轮转的方式对相同优先级的多个进程进行处理。

非实时进程调度策略:

SCHED_OTHER、SCHED_IDLE

使用chrt命令查看和设定进程的调度策略

用法:chrt [options] -p [指定优先级] PID

options:

-f      调度器设成 SCHED_FIFO

-o      调度器设成 SCHED_OTHER

-r      调度器设成 SCHED_RR[[email protected] ~]# chrt -p 34735    #查看pid为34735的进程属性

pid 34735‘s current scheduling policy: SCHED_OTHER

pid 34735‘s current scheduling priority: 0# chrt -f -p 50 1000    #将PID 1000 的进程设定成 SCHED_FIFO,优先级设定成50。

# chrt -o -p 0 1000    #将PID 1000 的进程设定成 SCHED_OTHER,优先级设定成0。

# chrt -f 50 /bin/test.sh    #启动 /bin/test.sh 设定成 SCHED_FIFO,优先级设定成50

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值