linux的cpu和磁盘io优先级设置

linux的cpu和磁盘io优先级设置,第1张

概述通常linux下限制cpu使用有三种方法: nice/renice:调整进程使用cpu的优先级 cpulimit:不修改进程的nice值,通过暂停进程一段时间,来限制cpu使用 cgroups:内核提供的机制,可以限制、记录、隔离一组进程所使用的cpu、内存、磁盘、网络等资源,是docker等容器的基础技术之一 限制磁盘io : ionice : 调整io调度的优先级 cgroups 这里只说ni 通常linux下限制cpu使用有三种方法: nice/renice:调整进程使用cpu的优先级 cpulimit:不修改进程的nice值,通过暂停进程一段时间,来限制cpu使用 cgroups:内核提供的机制,可以限制、记录、隔离一组进程所使用的cpu、内存、磁盘、网络等资源,是docker等容器的基础技术之一 限制磁盘io : ionice : 调整io调度的优先级 cgroups

这里只说nice和ionice,实际上nice和ionice只是改变优先级,并没有真正的限制

  一、nice 1.1 进程优先级

要理解nice值,首先要说明一下优先级的概念,先来看一下进程的信息:

[[email protected] ~]# ps -efl F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 5 S asterisk 5319 1607 -5 80 0 - 119325 ep_pol Mar23 ? 00:03:55 /usr/sbin/httpd
PRI 指进程优先级,优先级小的进程会获得比较多的cpu时间,程序就会被优先处理 NI 即为nice值 两者关系为 :PRI(new)=PRI(default)+nice

其中nice值可以用户指定,nice的默认值为0,root可用范围从-20到19,普通用户只能用0到19,值越小PRI(new)越小,cpu执行优先级越高。同时可以知道:只有root能提高优先级,普通用户只能降低优先级。

1.2 设置程序启动时的优先级

nice 只有一个参数 : -n,启动程序时指定优先级:

nice -n -20 /opt/backup.sh #优先级最高 nice -n 19 /opt/backup.sh #优先级最低
1.3 设置程序运行时的优先级

对于已经在运行的程序,如果需要调整优先级,需要用renice命令,设置正在运行程序nice的值为15:

[[email protected] ~]# renice -n +15 5319 F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 5 S asterisk 5319 1607 -5 95 15 - 119325 ep_pol Mar23 ? 00:03:55 /usr/sbin/httpd

root用户可以为其它用户或组设置nice值:

[[email protected] ~]# renice -n +15 -u zabbix #设置zabbix用户的所有进程nice值为15 [[email protected] ~]# renice -n +15 -u zabbix #设置zabbix用户的所有进程nice值为15

还可以为进程组设置nice值,查看进程组:

[[email protected] ~]# ps -efj UID PID PPID PGID SID C STIME TTY TIME CMD asterisk 5296 1607 1607 1607 0 Mar23 ? 00:03:54 /usr/sbin/httpd asterisk 5319 1607 1607 1607 0 Mar23 ? 00:03:55 /usr/sbin/httpd asterisk 5394 1607 1607 1607 0 Mar23 ? 00:03:55 /usr/sbin/httpd

apache的进程组(PGID)为:1607,设置nice值为-8:

[[email protected] ~]# renice -n -8 -g 1607
二、ionice

linux默认IO调度器使用CFQ调度算法,支持用ionice命令为程序指定io调度策略和优先级,IO调度策略分为三种:

IDle :其他进程没有磁盘IO时,才进行磁盘IO Best Effort:缺省调度策略,可以设置0-7的优先级,数值越小优先级越高,同优先级的进程采用round-robin算法调度; Real Time :立即访问磁盘,无视其它进程IO None 即Best Effort,进程未指定策略和优先级时显示为none,会使用依据cpu nice设置计算出优先级

策略 :0 - none,1 - Real Time,2 - Best Effort,3 - IDle

使用IDle策略:

ionice -c 3 -p 进程ID

使用Real Time策略:

ionice -c 1 -p 进程ID

使用Best Effort策略,并指定优先级最低:

ionice -c 2 -n 7 -p 进程ID

三、同时限制cpu和磁盘io的优先级
为了对生产环境造成影响最小,设置备份脚本运行时,cpu和磁盘io的优先级都最低:

nice -n 19 ionice -c2 -n7 /bin/sh /opt/backup.sh


转载:https://www.52os.net/articles/reduce-cpu-io-priority.html
总结

以上是内存溢出为你收集整理的linux的cpu和磁盘io优先级设置全部内容,希望文章能够帮你解决linux的cpu和磁盘io优先级设置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1024934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存