それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ssh の転送速度を測定をしてみる

SSHの速度を測定しようと思い立った。

なんかネットワークが遅いので、SSHでの速度測定をしてみることに。

速度測定するコマンド

ファイルの準備

dd if=/dev/urandom  of=test.img bs=1k count=1000000

転送

cat test.img  | ssh host.tld 'dd of=/dev/null '

ssh でパイプする

ssh でパイプするとファイル転送ができる。

cat test.img | ssh host ' cat - > test.img'

dd は of だけ指定すると標準入力

dd は if / of で指定するけど、標準入力からもととれる。

実際にやってみた例

takuya@:Desktop$ dd if=/dev/urandom  of=test.img bs=1k count=1000000
1000000+0 レコード入力
1000000+0 レコード出力
1024000000 bytes (1.0 GB, 977 MiB) copied, 39.8002 s, 25.7 MB/s
takuya@:Desktop$ cat test.img  | ssh myhost 'dd of=/dev/null '
sign_and_send_pubkey: signing failed: agent refused operation
2000000+0 レコード入力
2000000+0 レコード出力
1024000000 bytes (1.0 GB, 977 MiB) copied, 9.16781 s, 112 MB/s

ファイル書き込みがボトルネックになっていないか

先程の例は、純粋にネットワーク速度に近いものが出ているはず。ファイルに書き込んでみたいと思う

この場合は、ファイルIOがメモリキャッシュされないように結構な量を書き込む必要がある。たぶん3GBくらい

SSD 相手に書き込んだとき

takuya@:Desktop$ cat test.img  test.img test.img | ssh host.tld ' dd of=test.img'
sign_and_send_pubkey: signing failed: agent refused operation
6000000+0 レコード入力
6000000+0 レコード出力
3072000000 bytes (3.1 GB, 2.9 GiB) copied, 30.6751 s, 100 MB/s

HDDを相手に書き込んだとき

takuya@:Desktop$ cat test.img test.img test.img  | ssh host.tld ' dd of=./mount/96.作業用/test.img'
sign_and_send_pubkey: signing failed: agent refused operation
6000000+0 レコード入力
6000000+0 レコード出力
3072000000 bytes (3.1 GB, 2.9 GiB) copied, 35.9622 s, 85.4 MB/s

メモリキャッシュがきいてる気もする。が、まぁ実際に使ってる速度に近い測定結果ナノではないでしょうか。

あくまで概算

ssh は圧縮されたりするので、本当のネットワークの速度よりも若干高くなる。 /dev/urandom を使うことで圧縮されないようにはしてるけど。

我が家の環境では 111 MB/s でているようである。

ところが、Samba経由したり WebDAV 経由すると 3MB/s くらいしかでない。こまった。

curl でもできる

curl を使ってもできる

これはSFTPで速度測定になる。

takuya@:~$ curl sftp://192.168.11.125/home/takuya/test.img > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2929M  100 2929M    0     0  42.3M      0  0:01:09  0:01:09 --:--:-- 44.0M
100 2929M  100 2929M    0     0  42.3M      0  0:01:09  0:01:09 --:--:-- 42.3M

/dev/urandom の速度

ちなみに、/dev/uramdom でdd したときの速度が 25MB/s 程度のCPUで測定しました