NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: SCP file transfer speed
On Mar 19, 2015, at 4:57 AM, Stephan wrote:
Hi
When I copy large files through scp to a NetBSD box, I get transfer
speeds of only 7 MB/s on a 100 MBit connection. This should be around
11 MB/s. I´ve seen this on different x86/amd64 hardware with NetBSD 5,
6 and 7-BETA. The NICs are largely wm, fxp and bnx.
Can others reproduce this?
I've noticed it can be slower. Do you ever shell into the box, and
push
a file back to you -- and notice it's faster? Or, maybe shell into to
the box
cd to to where you want to put, and use sftp and get , and pull it
down, and
find it's faster? I believe I noticed the a difference between my
netbsd box,
and my mac's, basically, by mistake, since I was just trying to
avoid typos.
And, kind of forgot about it, until your post., Lately, I'm using my
netbsd box
to recover the root file system of a toaster, it's just over a
gigabyte, linux ext3,
and transferring the image seemed slower, than I expected. After that,
I plan to make a ccd , and send 141 gib image over, a 100 MBIT
connection,
so, I decided to some tests of my own.
I made a 50 megabyte file in /tmp and tried scp:
[root@qix:/tmp]
#scp root@qix:/tmp/test.scp /var/root/test.scp
...
test.scp 92% 46MB 1.6MB/s 1.5MB/s
00:02 ETA
test.scp 95% 48MB 1.6MB/s 1.5MB/s
00:01 ETA
test.scp 99% 50MB 1.6MB/s 1.6MB/s
00:00 ETA
test.scp 100% 50MB 1.6MB/s 452.0KB/s
00:31
And, I basically see 31/32 seconds on every test.
I try
#ssh root@qix 'dd if=/tmp/test.scp bs=32k ' | dd of=/var/root/
test.scp bs=32k progress=40
and try:
#ssh root@qix 'dd if=/tmp/test.scp bs=64k ' | dd of=/var/root/
test.scp bs=16k progress=160
..........................................800+0 records in
800+0 records out
52428800 bytes transferred in 32.253 secs (1625548 bytes/sec)
1831+4925 records in
1831+4925 records out
52428800 bytes transferred in 33.172 secs (1580513 bytes/sec)
[root@qix:/tmp]
800+0 means no issues, but I interpret 1831+4925 for the receiving
dd or outer dd
to mean 1831 times 16 kb were ready for dd's READ(2) , so dd could
fill it's buffer with 1 call,
but for 4925 records, it took more than 1 call to get 16k.
With 64k, and 64k and progress=60 or (progress=50, or 80? ) it came
out 0+800, BUT
I could see it start strong with maybe 8 dots, then start to
'strobe' or , startup, and slow,
down , 4 dots then stall/pause, etc. Basically, sputtering.
I thought what if its having trouble because the test file is a
stream of zeroes . I create
a 52mb file like this (twice) :
cat /data2/4targ/105mb.dmg.rz >> something
and try again, and twiddle with bs a few times.
#ssh root@qix 'dd if=/tmp/something bs=64k ' | dd of=/var/root/
something bs=4k
835+1 records in
835+1 records out
54784466 bytes transferred in 32.372 secs (1692341 bytes/sec)
13375+1 records in
13375+1 records out
54784466 bytes transferred in 33.297 secs (1645327 bytes/sec)
Blocksize doesn't seem to help,
I kind of stupidly try this:
time ssh root@qix 'gzip -1c something' | gzcat >
something
CTRL-T a few times...
load: 1.68 cmd: ssh 1571 [select] 8.03u 1.72s 13% 4880k
load: 1.78 cmd: ssh 1571 [runnable] 8.53u 1.90s 13% 4880k
load: 1.88 cmd: ssh 1571 [runnable] 8.80u 1.96s 13% 4880k
1m34.00s real 0m15.52s user 0m7.62s system
3 times as long, but it's already compressed data so... kinda of stupid.
Periodically, in my tests, I do a cmp -l against the 2 files, it's
always good..
Finally, I try netcat.
In another vc, I do: nc -l -p 1234 >| something
then:
#time nc -w 3 qix 1234 <
something
0m10.49s real 0m0.02s user 0m1.50s system
10 - 11 seconds, so I stop peering at sysctl. net.inet
Home |
Main Index |
Thread Index |
Old Index