对比

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
### nc tcp协议
root@niumowang:~# time cat table.tar.gz | netcat remote.ip 1234

real 2m35.725s
user 0m0.060s
sys 0m2.020s

### scp ssh协议
root@niumowang:~# time scp table.tar.gz user@remote.ip:/tmp/
labs@39.98.252.68's password:
table.tar.gz 100% 694MB 4.5MB/s 02:35

real 2m37.915s
user 0m2.580s
sys 0m1.688s

结果

实际时间都是差不多的情况下

负载情况是:

在使用ssh协议会比nc直接tcp传输cpu负载更高一点,但是在带宽足够大的情况下(我这里带宽有限,ssh加密与解密的数据量就少了,在一定时间内),理论上是ssh会比tcp传输更消耗cpu,TCP 是 “传输层协议”,SSH 是 “应用层协议”

内核时间和用户时间

可以看出ssh协议更多的是在用户层cpu算力来传,用户时间明显多于nc的tcp协议(内核层)

如果是像日志这种压缩性能很高的文件,可以考虑压缩之后再传输

像图片、视频这种二进制文件,本身就是经过压缩之后的了,如果再使用 tar z 来压缩一遍的话,不会节省多少传输体积,反而会白白耗费 CPU算力

nc传输不安全,不建议