对于服务上rsync 的io磁盘与主服务器io 占用的问题,我们可以采用ionice来进行有效解决:
服务器是一台做数据分析的BI服,每天同步的数据文件有上万个,目录下也占用了很多零碎的目录和文件,遍历起来也很费劲,本身以前购买的磁盘又不是IO很好的磁盘,文件一多更是很慢了,虽然不占用CPU,但是CPU处于繁忙中了 (idle 99%,wa 1%),当服务器中需要运行大量的数据文件时,服务器的Io磁盘就会出现被占用的情况,导致服务器在处理数据时响应会减慢,介绍一下如何减少服务上rsync 的io磁盘与主服务器io 占用的问题。
如何减少rsync主服务器的io占用:
解决方法:在启用服务器上的rsync时,我们可以采用进行降低IO使用的设置:ionice -c 2 -n 7 rsync --daemon
如何降低rsync的io磁盘占用
root@ip-172-31-19-100 ~]# ps -ef|grep rsync
root 2261 2185 0 10:26 pts/2 00:00:00 grep rsync
root 14065 5656 0 07:03 ? 00:00:16 rsync --daemon
root 14066 14065 0 07:03 ? 00:00:02 rsync --daemon
root 27198 5656 0 08:33 ? 00:00:08 rsync --daemon
root 27199 27198 0 08:33 ? 00:00:01 rsync --daemon
root 29260 5656 0 09:03 ? 00:00:06 rsync --daemon
root 29261 29260 0 09:03 ? 00:00:01 rsync --daemon
14065,27198,29260 三个PID
当rsync --daemon已经在运行并不想停止时,这时我们可以: 找到服务器上的rsync的PID,如 14065,使用ionice降低进程14065的IO占用:ionice -c 2 -n 7 -p 14065
其他PID
ionice -c 2 -n 7 -p 27198
ionice -c 2 -n 7 -p 29260
Ionice命令功能介绍
ionice – 获取或设置程序的IO调度与优先级。
命令格式:
ionice [[-c class] [-n classdata] [-t]] -p PID [PID]…
ionice [-c class] [-n classdata] [-t] COMMAND [ARG]…
IO调度策略:
ionice将磁盘IO调度分为三类:
ilde:空闲磁盘调度,该调度策略是在当前系统没有其他进程需要进行磁盘IO时,才能进行磁盘;因此该策略对当前系统的影响基本为0;当然,该调度策略不能带有任何优先级参数;目前,普通用户是可以使用该调度策略(自从内核2.6.25开始)。
Best effort:是缺省的磁盘IO调度策略;
(1)该调度策略可以指定优先级参数(范围是0~7,数值越小,优先级越高);
(2)针对处于同一优先级的程序将采round-robin方式;
(3)对于best effort调度策略,8个优先级等级可以说明在给定的一个调度窗口中时间片的大小。
(4)目前,普调用户(非root用户)是可以使用该调度策略。
(5)在内核2.6.26之前,没有设置IO优先级的进程会使用“none”作为调度策略,但是这种策略使得进程看起来像是采用了best effort调度策略,因为其优先级是通过关于cpu nice有关的公式计算得到的:io_priority = (cpu_nice + 20) /5。
(6)在内核2.6.26之后,如果当前系统使用的是CFQ调度器,那么如果进程没有设置IO优先级级别,将采用与内核2.6.26之前版本同样的方式,推到出io优先级级别。Real time:实时调度策略,如果设置了该磁盘IO调度策略,则立即访问磁盘,不管系统中其他进程是否有IO。因此使用实时调度策略,需要注意的是,该访问策略可能会使得其他进程处于等待状态。
参数说明:
-c class :class表示调度策略,其中0 for none, 1 for real time, 2 for best-effort, 3 for idle。
-n classdata:classdata表示IO优先级级别,对于best effort和real time,classdata可以设置为0~7。
-p pid:指定要查看或设置的进程号或者线程号,如果没有指定pid参数,ionice will run the listed program with the given parameters。-t :忽视设置优先级时产生的错误。
以上就是如何减少服务器上rsync 的io磁盘与主服务器io 占用的问题的相关介绍,当用户租用的美国服务器上出现响应变慢的情况出现时,可能是美国服务器上rsync的io 被占用而造成的,这时我们就可以利用ionice 来进行进程上的释放来解决相关问题标准,如果用户想在价格和保证上进行衡量,可以对服务商的服务器进行使用来决定。
如何减少服务器上rsync 的io磁盘与主服务器io 占用的问题
原文地址:http://holy2010.blog.51cto.com/1086044/1977316