最遅のIO速度を知っておく

ADSL

多分20年位前の話。インターネット回線としてADSLを使用していた私のところに、セールス電話が来た。
光回線を使いませんか?という内容だった。当時、私の家のADSLは8Mbpsくらい出ており、それなりに満足していたので断ったが、その時の断り文句として「無線LANを使っているので、無線LAN速度を超えた速度は必要ないです」であった。当時の無線LANは理論11Mbpsで実際は8Mbpsもでれば上等だったので、自宅内のLANが10Mbpsもないのに、インターネットで100Mbp出たところで何の意味があるのか。という感じで勧誘を追っ払ったのだ。いや、当時の光回線は高かったのよマジで。
その後、無線LANの性能は上がっていき、実速度30Mbpsくらいになった。無線LANが速くなったことで、ボトルネックADSLになってしまったが、ちょうどそのころ光回線の価格が劇的に下がったので、100Mbpsの光回線を契約したのであった。

HDD

サーバが複数台あり、このサーバ群でクラスタリングを行っているシステムで、データの共有速度が異常に遅いという現象に出会ったことがあった。
一般的にデータの共有速度は「HDDへの書き込み性能」か「共有に使用する経路の速度」によって決定されるので、「HDDへの書き込み性能」を計算してみたところ、データの共有速度の20倍以上出ている。もしかして「共有に使用する経路の速度」なのかと思って確認するも、こちらもデータの共有速度の50倍以上でている。おかしいなと思って、クラスタリングソフトの設計を見てみたところ、なんと共有の最高速度が推奨値の1/64の設定になっているではないか*1
この設定を変更したところ、共有速度はまともな状態になったのであった。

システムを設計する人はこのように「IOが最も遅くなりそうな部分」を調査しておくとよい。
・ストレージのIO速度(通常時、障害時)
・経路の速度
・速度制御を行っている設定はないか

そしてその最も遅い部分がシステム全体のパフォーマンスを決定してしまうことがあるんですよ。というお話であった。

*1:1000Base向けの設定値を設定すべき箇所が、10Base向けの設定になっていたという笑えない話