我有一个基本上在晚上做一个简单的“tar zcf”的cron。
服务器有:
正如你所看到的监控screenhost:
http://clip2net.com/s/57YRKP
在几乎所有的焦油时间,光盘I / O都达到> 90%,并使所有其他应用程序(MySQL,Apache)减速很多。
2个问题:
谢谢!
除了ionice
一般方法之外,还有一个很好的设备映射器目标(ioband),它允许精确控制(DM)块设备的带宽。 不幸的是,它不是标准内核的一部分。
此外,你可以通过加速焦油
find /source/path -printf ""
find /source/path -perm 777 -printf ""
tar ... | mbuffer -m 256M -P 100 -p 1 ...
tar ... | mbuffer -m 256M -P 100 -p 1 ...
预计在备份期间会看到较高的I / O,因为它们通常是通过大型文件树进行的。 您可以使用ionice
在Linux中使用类和级别优先处理I / O作业。 IIRC,第2级,第7级是最低的,非饥饿的水平,这将使其他I / O负载和用户几乎不可见。 有关使用方法和详情,请参阅man ionice
。
我会build议开沟焦油和rsync(由Dogsbody提到)。 我使用BackupPC备份我的Windows和Linux系统上的文件,它支持使用tar以及rsync,并自动照顾硬链接,以及提供一个不错的网页界面。
正如其他人回答,是的,这是正常的, ionice
是一个很好的通用的方式,不要让它影响你的系统。
很多时候,我看到人们在不需要的时候就把事情搞砸了。 如果你正在复制的数据的任何百分比没有改变,那么我build议给rsync
一个尝试。
这将通过仅复制自上次复制以来更改的文件来减lessIO。 您将无法将IO减less一半以上,因为仍然需要读取所有数据,但是您将显着减less写入的数据量(这取决于您的硬件也可能是较慢的操作)。
如果每次运行时都需要单独的副本/备份,那么最强大的选项是-link-dest,它允许您将未更改的文件硬链接到先前的备份。 这在备份服务器上节省了大量的空间。 例如,我备份一台机器(Fred),Fred有一个20GB的HD,并且备份/复制整个驱动器(不包括/ proc和/ dev)。 我现在在我的备份服务器上有一个20GB的目录。 第二天我再次备份Fred,并将其连接到昨天的备份。 Rsync将远程文件与本地副本进行比较,如果完全相同,则不会转移它们,但会将新文件硬链接到昨天的文件。 任何已经改变的文件都被复制下来(如果可能,则使用昨天的备份进行部分复制)。 如果从昨天起只有100MB的文件被更改了,我现在有两个目录都是20GB的文件,但是只占用备份服务器的20.1Gb的空间!
我希望这有助于你仍然回答你的问题。