pin*_*pox 6 performance ssh nfs file-transfer linux-networking
我有两个 linux 盒子连接到一个千兆交换机。他们都有千兆网卡,电缆是cat7。
使用 iperf 测试网络显示连接速度很快,但使用 rsync、scp 或 nfs 共享传输文件很慢。
我正在测试一个 1GB 的文件。
iperf 结果:
Client connecting to odroid, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.26 port 58788 connected with 192.168.1.32 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 979 MBytes 821 Mbits/sec
Run Code Online (Sandbox Code Playgroud)
使用 rsync、scp 或 nfs 的传输速度约为 ~13Mb/s
SCP:
scp bigfile odroid:/mnt/usb1/ [10:19:12]
bigfile 57% 590MB 12.2MB/s 00:35 ETA^CKilled by signal 2.
Run Code Online (Sandbox Code Playgroud)
同步:
rsync --progress bigfile /mnt/usb1/
bigfile
44,695,552 4% 12.15MB/s 0:01:11 ^C
Run Code Online (Sandbox Code Playgroud)
nfs:
binaryplease?~(master?)» time cp bigfile /mnt/nfs/usb1/
cp -i bigfile /mnt/nfs/usb1/ 0.01s user 0.94s system 1% cpu 1:11.06 total
Run Code Online (Sandbox Code Playgroud)
1024MB/71 秒 = 14,42 MB/秒
由于 iperf 测试显示网络连接速度较快,我假设存储设备速度较慢有问题,但情况似乎也并非如此:
客户端、SSD、内部:
binaryplease?~(master?)» sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 20344 MB in 2.00 seconds = 10181.50 MB/sec
Timing buffered disk reads: 1498 MB in 3.00 seconds = 498.98 MB/sec
binaryplease?~(master?)» dd if=/dev/zero of=test oflag=direct bs=8M count=64
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 2.03861 s, 263 MB/s
binaryplease?~(master?)» dd if=test of=/dev/null iflag=direct bs=8M [12:29:01]
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 1.11392 s, 482 MB/s
Run Code Online (Sandbox Code Playgroud)
服务器,USB 3.0 驱动器,外部:
? ~ git:(master) ? sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1980 MB in 2.00 seconds = 991.66 MB/sec
Timing buffered disk reads: 266 MB in 3.01 seconds = 88.27 MB/sec
? usb1 dd if=/dev/zero of=test oflag=direct bs=8M count=64
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 6.53386 s, 82.2 MB/s
? usb1 dd if=test of=/dev/null iflag=direct bs=8M
64+0 records in
64+0 records out
536870912 bytes (537 MB) copied, 7.13567 s, 75.2 MB/s
Run Code Online (Sandbox Code Playgroud)
客户端上的操作系统(Linux arch):
Linux binaryplease-laptop 4.3.3-2-ARCH #1 SMP PREEMPT Wed Dec 23 20:09:18 CET 2015 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
服务器上的操作系统(odroid 的 Ubuntu 服务器):
Linux odroid 3.10.92 #1 SMP PREEMPT Tue Nov 17 00:15:24 BRST 2015 armv7l armv7l armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)
在两个系统上,cpu 或 ram 都没有达到最大值。
如果我正确解释了结果,服务器驱动器的写入速度 (82.2 MB/s) 应该很容易被网络匹配。文件传输怎么这么慢?
我希望提供的信息是足够的,有人可以帮我找到瓶颈。
谢谢。
从您得到的数字来看,您的网络中似乎有些东西实际上并不是千兆位。
使用 ethtool 或类似的工具检查每台机器网卡的速度。
检查交换机并确保端口实际上以千兆位速度处于活动状态(如果交换机支持管理,请检查 LED 或配置端口状态)。
运行 iperf 或客户端之间的替代方案。
最后,检查 CPU 使用情况 - 也许那里出了问题。
归档时间: |
|
查看次数: |
1291 次 |
最近记录: |