首页 > Linux操作系统 > Linux操作系统 > [20191202]加快scp拷贝速度.txt

[20191202]加快scp拷贝速度.txt

原创 Linux操作系统 作者:lfree 时间:2019-12-02 15:43:58 0 删除 编辑

[20191202]加快scp拷贝速度.txt

--//以前写的/267265/viewspace-2138649/=>[20170508]加快scp拷贝速度.txt
--//如果结合xargs -P参数可以更快.scp加入 -c arcfour参数.
--//当然首先你给避免输入口令,机器之间要相互认证.

1.方法一:scp +xargs

# time  ls -1 *.dbf | xargs -P 5 -I{} scp  -c arcfour {} root@192.168.xx.xx:/tmp
tea01.dbf          100% 6152KB   6.0MB/s   00:00
T01.dbf            100%   40MB  40.0MB/s   00:01
temp01.dbf         100%  150MB  50.0MB/s   00:03
undotbs02.dbf      100%   16MB  16.0MB/s   00:01
undotbs03.dbf      100%   16MB  16.0MB/s   00:01
example01.dbf      100%  346MB  49.5MB/s   00:07
users01.dbf        100%  400MB  80.0MB/s   00:05
system01.dbf       100%  770MB  20.3MB/s   00:38
undotbs01.dbf      100% 1475MB  23.1MB/s   01:04
sysaux01.dbf       100% 2800MB  24.4MB/s   01:55

real    1m55.522s
user    1m13.889s
sys     0m33.552s

--//主要问题是sysaux01.dbf最大,如果排序执行,首先执行最大的文件看看.

# time  ls -S1 *.dbf | xargs -P 5 -I{} scp  -c arcfour {} root@192.168.xx.xx:/tmp/xxx
example01.dbf   100%  346MB  19.2MB/s   00:18
users01.dbf     100%  400MB  19.1MB/s   00:21
T01.dbf         100%   40MB  13.3MB/s   00:03
temp01.dbf      100%  150MB  16.7MB/s   00:09
undotbs02.dbf   100%   16MB   8.0MB/s   00:02
undotbs03.dbf   100%   16MB  16.0MB/s   00:00
tea01.dbf       100% 6152KB   3.0MB/s   00:02
system01.dbf    100%  770MB  24.1MB/s   00:32
undotbs01.dbf   100% 1475MB  32.1MB/s   00:46
sysaux01.dbf    100% 2800MB  51.9MB/s   00:54

real    0m54.662s
user    1m4.611s
sys     0m29.232s

--//节约一半时间.打开10个并行看看.
# time  ls -S1 *.dbf | xargs -P 10 -I{} scp  -c arcfour {} root@192.168.xx.xx:/tmp/xxx
tea01.dbf           100% 6152KB   6.0MB/s   00:01
undotbs03.dbf       100%   16MB  16.0MB/s   00:01
undotbs02.dbf       100%   16MB  16.0MB/s   00:01
T01.dbf             100%   40MB  20.0MB/s   00:02
temp01.dbf          100%  150MB  21.4MB/s   00:07
users01.dbf         100%  400MB  40.0MB/s   00:10
example01.dbf       100%  346MB  19.2MB/s   00:18
system01.dbf        100%  770MB  26.6MB/s   00:29
undotbs01.dbf       100% 1475MB  35.1MB/s   00:42
sysaux01.dbf        100% 2800MB  51.9MB/s   00:54
real    0m54.456s
user    1m2.177s
sys     0m26.754s
--//基本差不多.

# time  ls -S1 book/*.dbf | xargs -P 10 -I{} scp -o CompressionLevel=5 -C -c arcfour256 {} root@192.168.xx.xx:/tmp/xxx
tea01.dbf           100% 6152KB   6.0MB/s   00:01
undotbs02.dbf       100%   16MB  16.0MB/s   00:01
undotbs03.dbf       100%   16MB  16.0MB/s   00:01
T01.dbf             100%   40MB  20.0MB/s   00:02
temp01.dbf          100%  150MB  50.0MB/s   00:03
example01.dbf       100%  346MB  49.5MB/s   00:07
users01.dbf         100%  400MB  22.2MB/s   00:18
system01.dbf        100%  770MB  22.0MB/s   00:35
undotbs01.dbf       100% 1475MB  22.4MB/s   01:06
sysaux01.dbf        100% 2800MB  27.5MB/s   01:42

real    1m42.486s
user    3m46.769s
sys     0m11.963s
*/
--//效果并不明显,问题在与sysaux01.dbf太大了.

2.方法2: tar+pigz+ssh
--//注意两边都要安装pigz:
# tar cvf - book -I pigz | ssh oracle@192.168.xx.xx tar xvf - -I pigz -C /tmp/xxx
--//有一些tar版本不支持-I参数使用--use-compress-program pigz代替.
# tar cvf - book --use-compress-program pigz | ssh oracle@192.168.xx.xx tar xvf - --use-compress-program pigz -C /tmp/xxx
--//注意一点tar f参数后面的-千万不要忘记写!!例子:

# time tar cvf - book/*.dbf --use-compress-program pigz | ssh root@192.168.xx.xx tar xvf - --use-compress-program pigz -C /tmp/xxx
# time tar cf - book/*.dbf --use-compress-program pigz | ssh root@192.168.xx.xx tar xvf - --use-compress-program pigz -C /tmp/xxx
book/example01.dbf
book/sysaux01.dbf
book/system01.dbf
book/T01.dbf
book/tea01.dbf
book/temp01.dbf
book/undotbs01.dbf
book/undotbs02.dbf
book/undotbs03.dbf
book/users01.dbf
<stdin> OK, has trailing junk which was ignored
real    0m31.753s
user    7m53.904s
sys     0m17.523s
*/

--//这种方式非常考验网络,如果网络或者交换机不给力,整个网络都会有影响.
--//再次提醒tar f参数后面的 - 千万不要忘记写!!

来自 “ ITPUB博客 ” ,链接:/267265/viewspace-2666513/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2549
  • 访问量
    6336677