linux – 为什么我的rsync这么慢?

我的笔记本电脑和我的工作站都连接到千兆交换机.两者都在运行 Linux.但是当我使用rsync复制文件时,它表现不佳.

我得到大约22 MB / s.理论上我不应该得到大约125 MB / s?这里的限制因素是什么?

编辑:我进行了一些实验.

在笔记本电脑上写性能

笔记本电脑有一个带有全盘加密的xfs文件系统.它使用aes-cbc-essiv:sha256密码模式,密钥长度为256位.磁盘写入性能为58.8 MB / s.

iblue@nerdpol:~$LANG=C dd if=/dev/zero of=test.img bs=1M count=1024
1073741824 Bytes (1.1 GB) copied,18.2735 s,58.8 MB/s

读取工作站上的性能

我复制的文件位于5个硬盘驱动器上的RAID-5软件上.突袭之上是一个lvm.卷本身使用相同的密码加密.工作站有一个FX-8150 cpu,它具有原生AES-NI指令集,可加速加密.磁盘读取性能为256 MB / s(缓存很冷).

iblue@raven:/mnt/bytemachine/imgs$dd if=backup-1333796266.tar.bz2 of=/dev/null bs=1M
10213172008 bytes (10 GB) copied,39.8882 s,256 MB/s

网络性能

我在两个客户端之间运行了iperf.网络性能为939 Mbit / s

iblue@raven $iperf -c 94.135.XXX
------------------------------------------------------------
Client connecting to 94.135.XXX,TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[  3] local 94.135.XXX port 59385 connected with 94.135.YYY port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.09 GBytes   939 Mbits/sec

解决方法

另一种缓解高cpu使用率但仍保留rsync功能方法是从rsync / SSH转移到rsync / NFS.您可以通过NFS导出要复制的路径,然后在本地使用rsync从NFS挂载到目标位置.

在WD MyBook Live网络磁盘的一次测试中,从千兆网络上的NAS到2个本地USB磁盘的一个或多个rsyncs在导出后不会复制超过10MB /秒(cpu:80%usr,20%sys)从NFS共享到本地的NFS和rsyncing到两个磁盘我总共得到45MB /秒(最大化两个USB2磁盘)和很少的cpu使用率.使用rsync / SSH时的磁盘利用率约为6%,使用rsync / NFS接近24%,而两个USB2磁盘接近100%.

因此,我们有效地将瓶颈从NAS cpu转移到两个USB2磁盘.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...