GNU/Linux >> Linux の 問題 >  >> Linux

なぜScpはとても遅いのですか、そしてそれをより速くする方法は?

scpを使用してファイルのバッチをコピーしようとしています しかし、それは非常に遅いです。これは10個のファイルの例です:

$ time scp cap_* [email protected]:~/dir
cap_20151023T113018_704979707.png    100%  413KB 413.2KB/s   00:00    
cap_20151023T113019_999990226.png    100%  413KB 412.6KB/s   00:00    
cap_20151023T113020_649251955.png    100%  417KB 416.8KB/s   00:00    
cap_20151023T113021_284028464.png    100%  417KB 416.8KB/s   00:00    
cap_20151023T113021_927950468.png    100%  413KB 413.0KB/s   00:00    
cap_20151023T113022_567641507.png    100%  413KB 413.1KB/s   00:00    
cap_20151023T113023_203534753.png    100%  414KB 413.5KB/s   00:00    
cap_20151023T113023_855350640.png    100%  412KB 411.7KB/s   00:00    
cap_20151023T113024_496387641.png    100%  412KB 412.3KB/s   00:00    
cap_20151023T113025_138012848.png    100%  414KB 413.8KB/s   00:00    
cap_20151023T113025_778042791.png    100%  413KB 413.4KB/s   00:00    

real    0m43.932s
user    0m0.074s
sys 0m0.030s

奇妙なことに、転送速度は約413KB /秒で、ファイルサイズは約413KBなので、実際には1秒あたり1ファイルを転送する必要がありますが、1ファイルあたり約4.3秒かかります。

このオーバーヘッドがどこから来ているのか、そしてそれをより速くする方法はありますか?

承認された回答:

@wurtelのコメントはおそらく正しいです。各接続を確立するために多くのオーバーヘッドがあります。転送が速くなることを修正できる場合(できない場合は、@roaimaのrsyncを使用してください) 回避策)。同様のサイズのファイルを転送する実験を行いました(head -c 417K /dev/urandom > foo.1 接続に時間がかかるホスト(HOST4)と非常に高速に応答するホスト(HOST1)に、そのファイルのコピーをいくつか作成しました:

$ time ssh $HOST1 echo


real    0m0.146s
user    0m0.016s
sys     0m0.008s
$ time scp * $HOST1:
foo.1                                         100%  417KB 417.0KB/s   00:00    
foo.2                                         100%  417KB 417.0KB/s   00:00    
foo.3                                         100%  417KB 417.0KB/s   00:00    
foo.4                                         100%  417KB 417.0KB/s   00:00    
foo.5                                         100%  417KB 417.0KB/s   00:00    

real    0m0.337s
user    0m0.032s
sys     0m0.016s
$ time ssh $HOST4 echo


real    0m1.369s
user    0m0.020s
sys     0m0.016s
$ time scp * $HOST4:
foo.1                                         100%  417KB 417.0KB/s   00:00    
foo.2                                         100%  417KB 417.0KB/s   00:00    
foo.3                                         100%  417KB 417.0KB/s   00:00    
foo.4                                         100%  417KB 417.0KB/s   00:00    
foo.5                                         100%  417KB 417.0KB/s   00:00    

real    0m6.489s
user    0m0.052s
sys     0m0.020s
$ 

Linux
  1. キャッシュとしてのRedis:その仕組みと使用理由

  2. データが重要である理由とその保護方法

  3. SVNパッチを作成して適用するには?

  1. Linuxが遅いコンピューター(そして地球)を救う方法

  2. ls をファイル拡張子でソートしてから名前を付ける方法は?

  3. crontab が機能しないのはなぜですか? どうすればトラブルシューティングできますか?

  1. Linuxのルートでもファイルとディレクトリを削除できないようにする方法

  2. ウェブサイトの読み込みを速くする方法

  3. SCP と Rsync を使用して Linux でファイルを転送する方法