系统相关
首页 > 系统相关> > linux的cpu和磁盘io优先级设置

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

作者:互联网

通常linux下限制cpu使用有三种方法:

  1. nice/renice:调整进程使用cpu的优先级
  2. cpulimit:不修改进程的nice值,通过暂停进程一段时间,来限制cpu使用
  3. cgroups:内核提供的机制,可以限制、记录、隔离一组进程所使用的cpu、内存、磁盘、网络等资源,是docker等容器的基础技术之一

限制磁盘io :

  1. ionice : 调整io调度的优先级
  2. cgroups

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

 

一、nice

1.1 进程优先级

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

[root@52os.net ~]# 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

其中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:

[root@52os.net ~]# 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值:

[root@52os.net ~]# renice -n +15 -u zabbix   #设置zabbix用户的所有进程nice值为15
[root@52os.net ~]# renice -n +15 -u zabbix   #设置zabbix用户的所有进程nice值为15

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


[root@52os.net ~]# 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:

[root@52os.net ~]# renice  -n -8 -g 1607

二、ionice

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

策略 :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

 

标签:优先级,1607,io,linux,进程,ionice,root,cpu,nice
来源: https://www.cnblogs.com/czw-bk/p/10961348.html