linux的cpu和磁盘io优先级设置
通常linux下限制cpu使用有三种方法:
限制磁盘io :
这里只说nice和ionice,实际上nice和ionice只是改变优先级,并没有真正的限制 ?一、nice1.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
其中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 二、ionicelinux默认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的优先级 nice -n 19 ionice -c2 -n7 /bin/sh /opt/backup.sh (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |