IVP Internet Value Provider IVP Co. Ltd.IVP Internet Value Provider IVP Co. Ltd.

  • タイトル

パフォーマンス診断 (自社製品ERS_V6.5) 第7回 続・WEBサーバーの追加とSSD導入の有効性

 | 

■WEBサーバー最大10台構成 (DBサーバーはSSD搭載のサーバー1台)

SSDとHDDの違いですが、ディスクIOの性能差が挙げられます。
ですので、ディスクIOがHDDの処理能力で収まっている場合はあまり効果がありません。
WEBサーバー3台での購入処理の場合のみDBサーバーのディスクIOが上がっていた点と
上記に記載したようにサーバーの追加では対応が困難なので商品購入のみSSDの導入を検討します。

表1


試験方法


負荷試験機にはJmeterを使用。
購入ページのみ同時アクセス数を増やしていく方法を取りました。

※先述のとおり各テストケースには文言チェックを入れ、あるべき応答ページが返されない場合にはエラーとして検知するようにしました。

負荷試験機にて上記1パターンの試験をし、同時可能接続数を計測しました。
※同時可能接続数とは平均3秒以内のレスポンスが期待できるセッション数を結果とします。

また、今回ハードウェアが足りなかった為、WEB サーバーのスペックはばらばらです。
また、レプリケーションを張っていない状態とレプリケーションを張った状態も並べます。
レプリケーションはバックアップ用途を想定しています。
slonyは2.0を使用しています。


試験結果


1台あたり1秒あたり30接続の時の伝票作成枚数 (レプリケーションなし)
表1


表2

この試験の時、SSDによるディスクIOがわかるようにそちらも集計を取っています。

1台あたり同時30アクセスの時のDBのCPU使用率
表3

1台あたり同時30アクセスの時のDBのI/Oキュー
表4


表5

表6

結果から言うとHDD使用時は WEBサーバー3台でも4台でもほぼ伸びがありません。
WEBサーバー4台の時であってもDBのCPU使用率が10%台でほとんど使用されていない状態です。
I/Oキューを見るとWEBサーバー3台で14.71と非常に高い数値になっています。
ですので、CPUに余裕があるもののHDDがボトルネックになってしまっています。

次にSSDを搭載すると、WEBサーバーが10台になっても伝票枚数が伸びている状態でした。
CPUをみても40%にもいかず、I/O キューも4程度できちんと処理がされている状態でした。
数字の伸びにばらつきがあるのはWEBサーバーのスペックが違うためでまだ数字が伸びそうでしたがハードウェアが足りずにここまでの試験となっています。

ですのでHDDであれば秒間13アクセスが限界ですが、SSDを使用すれば秒間50アクセスを超えると考えれます。

レプリケーションを張った状態でも試験をしたのですが、HDDでも秒間13アクセス、SSDであれば50アクセスを超える状態で特別数字が変わることはありませんでした。
これは slony が非同期のレプリケーションを張っていることが大きいと思われます。


パフォーマンス試験まとめ


今回の負荷試験でわかったことは今回のERSのバージョンアップに伴い
トップページはネットワークがボトルネックになること
検索ページはWEBサーバーのCPUがボトルネックになること
購入ページはDBサーバーのディスクIOがボトルネックになると考えれます。

以前、商品検索や購入処理はDBサーバーがボトルネックになりやすかったが
今回はWEBサーバーがボトルネックになりやすかったのはpostgresでインデックスが使用されていたり、RaidのキャッシュやメモリにDBの情報のほとんどが載ってしまうためディスクIOに負担がかからなかったのだと思われます。

やはり、64bitOSでメモリの搭載量が巨大になった点やpostgresのバージョンアップなどが大きかったと考えれます。

以上の試験結果からアクセス数の多いサイトについて
トップページは回線の増強で対応する。
商品検索は WEBサーバーの増設とDBの増設 (slony によるレプリケーション) で対応する。
商品購入はSSDを搭載することで対応する。
といった選択肢で適切にリソースを追加出来そうだとわかりました。

当然、本番環境と負荷試験の結果には乖離が発生するので、本番サイトについては cactiでリソースを監視したり24時間保守チームがアラートを検知したらパフォーマンスを診断してボトルネックを見つけたりして運用を実施しております。


次回のブログについて


今回負荷試験で秒間のアクセス数という表現をしてきましたが、具体的にどのくらいのPVのサイトであればこのくらいの秒間アクセス数を見込めばいいか実サイトを例に挙げて記事を書きたいと思います。

こちらは各サイトにより違いがありますが、実運用に基づいているので参考になるかと思います。