GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Scp Sangat Lambat Dan Bagaimana Cara Mempercepatnya?

Saya mencoba menyalin sekumpulan file dengan scp tapi itu sangat lambat. Ini adalah contoh dengan 10 file:

$ 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

Yang aneh adalah kecepatan transfernya sekitar 413KB/s dan ukuran filenya sekitar 413KB, jadi sebenarnya itu harus mentransfer satu file per detik, namun butuh sekitar 4,3 detik per file.

Adakah ide dari mana overhead ini berasal, dan apakah ada cara untuk membuatnya lebih cepat?

Jawaban yang Diterima:

Komentar @wurtel mungkin benar:ada banyak overhead untuk membuat setiap koneksi. Jika Anda dapat memperbaikinya, Anda akan mendapatkan transfer yang lebih cepat (dan jika tidak bisa, cukup gunakan rsync @roaima solusi). Saya melakukan percobaan mentransfer file berukuran serupa (head -c 417K /dev/urandom > foo.1 dan membuat beberapa salinan file itu) ke host yang membutuhkan waktu untuk terhubung (HOST4) dan host yang merespons dengan sangat cepat (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. Mengapa Data Penting Dan Bagaimana Cara Melindunginya

  2. Cara Membuat Situs Saya Memuat Lebih Cepat

  3. Bagaimana cara membuat skrip sed ini lebih cepat?

  1. Cara menginstal TBB dari sumber di Linux dan membuatnya berfungsi

  2. Cara kerja penautan dinamis, penggunaannya, dan bagaimana dan mengapa Anda membuat dylib

  3. Bagaimana cara mengurutkan berdasarkan ekstensi file dan kemudian nama?

  1. Bagaimana Linux menyelamatkan komputer yang lambat (dan planet ini)

  2. Cara Membuat File dan Direktori Tidak Dapat Dihapus, Bahkan Dengan Root di Linux

  3. Redis sebagai Cache:Cara Kerja dan Mengapa Menggunakannya