Apa yang membatasi kinerja scp?

13

Saya memiliki dua mesin Linux Debian yang terhubung melalui 1 Gbit LAN. Saya bisa mengukur ini dengan transfer file HTTP mentah dengan wgetyang mendapat sekitar 100MB / s di kedua arah.

Ketika saya sekarang menggunakan scp, maksimum tanpa kompresi yang saya dapatkan adalah sekitar 15MB / s . Mengaktifkan kompresi dengan -Cflag memberi saya, bergantung pada konten, hingga 50MB / s .

Namun, ada banyak bandwidth yang terbuang di sini sepertinya. Saya tidak peduli untuk waktu yang lama sampai saya benar-benar harus memikirkan beberapa transfer file log yang sangat besar dan baru menyadari betapa anehnya lambatnya scp. Sudah sewajarnya bagi saya untuk menggunakannya scp, bahkan di lingkungan perusahaan, karena semua infrastruktur sudah disiapkan untuk itu.

Apa yang membatasi kinerja scp sebanyak itu? Apakah CPU terikat karena enkripsi? Ketika saya menggunakannya htopsepertinya tidak menggunakan CPU multicore, hanya satu dari empat CPU yang maksimal.

Apakah ada cara untuk meningkatkan throughput? Saya memiliki server HTTP dan samba yang tersedia, tetapi untuk memindahkan file di antara mesin-mesin Linux saya biasanya hanya menggunakan SSH, begitulah cara saya tumbuh dengannya. Tapi ini sekarang membuat saya berpikir tentang hal itu, sepertinya saya perlu mempertimbangkan cara transfer lain untuk sejumlah besar data.

HTTP hanya digunakan untuk aplikasi tertentu dalam PHP / Java / apa pun dan samba digunakan untuk beberapa alasan khusus kita memerlukan akses dari mesin Windows.

menandai
sumber
Jawaban dari JooMing bekerja untuk saya luar biasa, tetapi -Copsi untuk kompresi membuatnya lebih lambat (21MB / s bukannya 112MB / s). Jadi tolong berhati-hati -C.
matematika

Jawaban:

7

Mungkin ini enkripsi. Anda dapat mencoba scp dengan cipher yang berbeda, misalnya:

scp -c arcfour src dest

Periksa halaman buku panduan ssh_config untuk melihat Cipers yang tersedia. RC4 (arcfour) adalah cipher cepat, tetapi mungkin tidak seaman beberapa alternatif.

Bersenang-senang
sumber
Perlu dicatat bahwa penggunaan RC4 yang tidak aman dan komunikasi dapat rusak dengan mudah.
Evan Darwin
6

Sebagian darinya mungkin ada hubungannya dengan implementasi internal OpenSSH. Lihatlah HPN-SSH untuk penjelasan yang layak karena satu alasan untuk kemacetan, dan tambalan ke OpenSSH yang dapat menyelesaikannya (jika Anda bersedia menambal dan membangun kembali dari sumber).

James Sneeringer
sumber