サーバーの性能を測定する (CPU・ディスク)
プラン同士、またはVPSと専用サーバーを比較するときは、同じ方法で自分で測ってみると判断しやすくなります。Linux(Ubuntu・Debian)を前提としています。
測定中はCPUとディスクを最大限に使います。すでにサービスが動いているサーバーなら、利用者が少ない時間帯に行ってください。
CPU: コア1つと全コア
sudo apt install -y sysbench
sysbench cpu --threads=1 --time=10 run
sysbench cpu --threads=$(nproc) --time=10 run
結果のevents per secondが大きいほど速いです。
--threads=1— コア1つの性能です。マインクラフトサーバーのように、コア1つが重要なプログラムなら、この数字を比較してください。--threads=$(nproc)— すべてのコアを一緒に使ったときの性能です。複数のプログラムを動かす場合や、処理を分けて行う場合は、この数字を比較してください。
どのプログラムがどちらに当てはまるかは、シングルコア?マルチコア?を参考にしてください。
sysbenchは単純な計算を繰り返すテストなので、実際のプログラムの性能とまったく同じではありません。サーバー同士を同じコマンドで比較する用途で使ってください。
ディスク
簡単に: 書き込み速度
dd if=/dev/zero of=dd-test.tmp bs=1M count=1024 oflag=direct status=progress
rm dd-test.tmp
最後の行の末尾にある速度(MB/sまたはGB/s)が、大きなファイルを連続で書き込む速度です。
詳しく: 小さなファイルの読み書き
データベースやゲームのワールド保存のように、小さなデータを頻繁に読み書きする処理は、次のテストのほうがよく表れます。
sudo apt install -y fio
fio --name=test --filename=fio-test.tmp --size=1G --rw=randrw --rwmixread=70 --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --runtime=30 --time_based --group_reporting
rm fio-test.tmp
read: IOPS=…、write: IOPS=…— 1秒間に処理した読み取り・書き込みの回数です。大きいほど良いです。BW=— 1秒あたりの処理量です。
どちらのテストも測定用のファイル(1GB)を作成するので、ディスクに空き容量が必要です。終わったら必ずrmで削除してください。
ネットワーク速度の測定には注意してください
速度測定ツールは大きなデータをやり取りするため、トラフィックを消費します。
- 一般ネットワークでは、1日のトラフィック割り当て量を超えると、その日の残りの時間は速度が制限されます。
- セキュリティネットワークは注文時に決めたトラフィック容量を使う方式なので、テストで使い切ってしまうと追加購入が必要になることがあります。
ゲームや接続が遅い理由を確認するのが目的なら、自分のPCからサーバーまでの応答時間(ping)を測るだけで十分な場合が多いです。
ping server-ip
Windowsはコマンド プロンプト、Mac・Linuxはターミナルで実行します。(Mac・LinuxはCtrl + Cで止めます)Windowsサーバーは、デフォルトのファイアウォール設定のためにpingに応答しないことがあります。
結果を比較するとき
- 同じコマンドで2〜3回測って、近い値になるか確認してください。VPSは物理サーバーを共有する構造なので、測るたびに結果が少しずつ異なることがあります。
- 比較するサーバー同士でOSとコマンドを同じにそろえてはじめて意味があります。
- 数字よりも重要なのは、実際のプログラムが問題なく動くかどうかです。使用率を確認する方法は、サーバーが遅いときの点検を参考にしてください。