复制大文件时如何减少资源使用?


8

我需要将大文件(损坏的MySQL表〜40GB)移动到单独的服务器上以进行修复。(当尝试在生产服务器上进行修复时,它很快就杀死了服务器)。

为此,我想将.frm,.MYI和.MYD文件从生产服务器重新同步到云服务器。

我正在将文件从/ var / lib / mysql / {database} /复制到/ home / {myuser},以便不需要为rsync命令启用root访问权限,并100%确保数据库文件不是使用中(不应写入或读取,但显然我不想关闭生产数据库来确保)。

我尝试复制的第一个文件约为10GB。我正在从生产服务器的一部分转移到另一部分,即转移到同一磁盘阵列。

不幸的是,复制命令“ cp filename newfilename”占用了太多资源,导致服务器停止运行。

将文件复制到其他目录时,如何使用较少的资源?(花费多长时间并不重要)。

假设我能够做到这一点,那么在将文件同步到云中时,我可以期待什么资源使用量?

谁能建议一个更好的方法来做到这一点?我的磁盘空间很快用完了,因此需要尽快修复和归档此表。

Answers:


5

您是否尝试过nice -n10在命令前加上前缀?

10是默认值。范围从-20(最高优先级)到19(最低优先级)。


@Jonathan我的理解是,这将仅限制CPU使用率,而不是磁盘I / O和RAM:linux.com/archive/feed/58638
Jon M

是的,但这只是一个开始,就减少了其中一个瓶颈而言,这足以阻止机器挂起。
乔纳森·罗斯

感谢@Jonathan Ross,据此:linux.die.net/man/1/ionice “程序继承了io优先级的CPU不错的设置。”,所以它可能会起作用,但是我正在研究“ nice”和“离子”
乔恩·M

好想法。我总是总是nice出于习惯。iotop也是你的朋友。
乔纳森·罗斯

3
我运行的最终命令是,nice -n 20 ionice -c 3 cp /var/lib/mysql/{database}/{table}.MYI /home/{USER}/这确实增加了服务器上的负载,但速度有所降低,但是该网站在传输过程中可用
Jon M

10

除了rsync带宽限制,还有两个选择:

  • ionice -c 3 cp foo bar
  • buffer -u 150 -m 16m -s 100m -p 75 -i foo -o bar

ionice将与I / O调度程序接口。 buffer是一个环形缓冲区,旨在帮助字符设备提高效率,但是在-u 150两次写入之间将暂停150微秒,根据手册,这可能足以为磁盘空间提供呼吸空间。

两者ionicebuffer都可以在库存的Ubuntu版本中获得。iotop如果您恰好在内核中配置了CONFIG_TASK_DELAY_ACCT,这将非常方便,但是我的Ubuntu框并没有严重限制该命令的可用性。我已经知道哪个命令淹没了我的硬盘,我只想给它一些喘息的空间。

此外,在进行复制时,请查看iostat -x 1(通常在sysstat软件包中)的输出,并在复制过程中查看设备的%busy字段为90%或更少。如果该比率为99-100%,则您正在饿死其他I / O进程。


感谢您的回复@zerolagtime我最终使用了类似的ionice命令,但已将先前的答案标记为正确
Jon M

ionice -c 3 -p $pidUnison正在为外部硬盘统一工作,谢谢!!
Aquarius Power

6

将rsync与--bwlimit = KBPS开关一起使用(限制I / O带宽;每秒KBytes)。尝试使用较小的文件,并尝试在传输速度和系统使用率之间找到最佳组合。使用“ vmstat 1”在第二个shell中进行监视


我当然会尝试这样做,以限制RSYNC命令的资源,但此刻,我只是试图通过“ cp”命令将文件复制到服务器上的另一个位置。
Jon M

您还可以使用rsync将文件复制到本地,并使用--bwlimit开关限制带宽。
shakalandy 2011年

rsync将在本地复制文件。思考rsync --bwlimit=28000 foo.frm /bar/foo.frm,然后与一起观看iostat。我不确定为什么vmstat会告诉您是否饱和了驱动器。在中寻找%busy iostat
zerolagtime 2011年

好吧,vmstat显示您在块设备上的IO。此外,您还可以看到其他对计算机使用情况重要的信息(cpu,用户进程,cpu等待,交换等)
shakalandy 2011年

0

一种选择是:

scp -l ${KBPS} ${src} ${dest}

但是我认为如果$ {src}是一个不断增长的文件,它将不起作用...您能建议一种复制并等待源关闭的方法吗...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.