Saya memiliki dua mesin Linux Debian yang terhubung melalui 1 Gbit LAN. Saya bisa mengukur ini dengan transfer file HTTP mentah dengan wget
yang 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 -C
flag 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 htop
sepertinya 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.
sumber
-C
opsi untuk kompresi membuatnya lebih lambat (21MB / s bukannya 112MB / s). Jadi tolong berhati-hati-C
.Jawaban:
Mungkin ini enkripsi. Anda dapat mencoba scp dengan cipher yang berbeda, misalnya:
Periksa halaman buku panduan ssh_config untuk melihat Cipers yang tersedia. RC4 (arcfour) adalah cipher cepat, tetapi mungkin tidak seaman beberapa alternatif.
sumber
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).
sumber