Hardwareの基礎性能を測定するためのツール

インフラの性能でアプリケーションの性能限界が決まってしまうため、Hardwareの基礎性能を把握しておくことはとても重要です。以下では、Hardwareの基礎性能を測るための各種ツールを紹介します。

ディスク用ツール - fio

DBサーバーなどのI/O intensiveなサーバーで、Random Read/WriteのIOPSの限界でアプリケーション性能が決まってしまうというのは良くあるのではないかと思います

ディスクの基礎性能を測定するためのツールとしては、fio があります。

このツールでは、read/write, DirectI/O, I/O sizeなど、色々なI/Oパターンを指定して測定ができます。様々なI/Oパターンで、ディスクのIOPS・転送速度を簡単に測定できるので、とても便利です。

メモリ用ツール - stream

CPUの処理性能の向上率に比べてメモリ帯域はそれほど伸びていないという現状があり、コア数が増えていくにつれてそれが問題になってきます。特にコア数が多く・memory-intensiveなアプリケーションでは、実際にどの程度のメモリ帯域があるかの目安を知っておくことは重要になります。

メモリの帯域幅を測定するためのツールとしては、「stream」があります。

このツールでは、Copy, Scaleなどいくつかのメモリのアクセスパターンに応じてメモリの帯域幅を測定することができます。
-O3、openmp使用でコンパイルし、帯域幅を使いきれる状態にして測定しましょう。

ネットワーク用ツール - nuttcp, nepim

多量のトランザクションIMDBなどの使用、大きなサイズのファイルの転送など、ネットワークのスループット・レイテンシが重要になるケースなどは、割とあるのではないでしょうか。

スループットなどのネットワークの性能測定用のツールとしては、nuttcp, nepimがあります。

これらのツールでは、バッファサイズやキューサイズなどを変更したテストが簡単にできるため、重宝しています。

# 他に、このツール便利だよ!というのがあれば、是非教えてください!