Linux比較的大きいサイズのファイルをSCPで転送することがあって、できるだけ高速化してみたかったので、色々試してみたメモ。scpというかsshには、暗号化方式と圧縮有無の指定があるので、それらのベンチマークを。v1はかなり遅かったのと、そもそも使っていないので試していません。2019/11)本エントリの情報は既に古いため、以下のエントリにて再検証しています。あわせてご覧くださいませ。ディスクI/Oがボトルネックにならないように、RAMディスク(tmpfs)を使いました。sshを見る限りは以下のようです。aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr何も指定しないと、デフォルトで"aes128-cbc"が選択されるようです。厳密には、"/etc/ssh/ssh_config"の"Ciphers"の指定順で優先して、暗号化方式が選択されるようなので、そちらもあわせて確認してみると良いと思いますコマンドの実行例としては以下のような感じです。username@hostname:/tmp下記の結果は、暗号化方式ごとにSCP転送を行い、サーバ間で1.5GBのファイル(単一)を転送したスループットを測ったものです。arcfour256のスループットが断然速い結果となりました。デフォルトの"aes128-cbc"と比較しても2倍以上のスピードが出ています。それだけ暗号化によるオーバヘッドがかかっていない、つまり強度的に弱くなっている可能性があるので、選択は慎重に行ってください。イントラネット内等でセキュリティをさほど気にする必要のない場合は、arcfour系の選択でも良いかと思います。arcfour128,arcfour256,arcfour,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbcな感じで指定しておくとデフォルトでの方式が変更されます。以降で紹介する転送時に圧縮を行うオプションを使用する事もそうですが、上記は暗号化を行う際にCPUを利用するので、スループットの大小は、サーバのCPUパワーに多少なりと依存します。↑のベンチマークで利用したサーバより高速なCPUを利用すると、もっとスループットは上がると思いますし、低速なCPUだとその逆になるかと思います。圧縮して転送するとどうなるかデータを圧縮して転送する"-C"オプションを使うとどうなるかを試してみました。manによると圧縮に使われるアルゴリズムはgzipと同じものとのこと。試してみたのは、以下の3種類の暗号方式のみですが、結論から言うと、経路およびスループットが高速な通信環境の場合は、あまり必要のないオプションと言えそうです。ナローバンドのような環境では、また違うのでしょうが。ちなみに、実行コマンド例としては、以下のような感じです。77.8MB/s元々、時間がかかっていた"3des-cbc"に限っては、そこそこ速くなりました。75.0MB/s既に何らかの形で(↑は転送時の圧縮方式と同じgzipというのもあると思うが)圧縮がかかっているものについては、スピードが遅くなる結果となりました。2015...メモった。Tok...これまたメモったので、貼付けておきます。#awssummit今日は午後から、表題のカンファレンスに行ってきました。読者になる@namikawaをフォローこのブログについてメールアドレス執筆・講演依頼や、その他ご連絡は、以下のメールアドレスまでお願いします。お問い合わせ引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。