オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

通信インフラの仕事は徹夜作業が多い

»

昨日は20時から午前8時頃まで、徹夜での作業でした。またまた当社のWEB負荷試験ツール「SADEE2」を使った負荷試験で、前回と同様に、20個VMを立ち上げて背景負荷を作り出し、10スレッド分、実ユーザ環境に近い状態側で測定を行います。

20111124_22526
20個VMを起動して、遠隔制御している様子です。20個小さなターミナルウインドウを開いています。昨日は最大で15000同時アクセスを背景負荷としてかけるということで、750スレッド×20VMがMAXでした。

SADEE2は、背景負荷用(というか、単純に負荷をかけ続けるもの)と、測定用の2つの負荷試験ツールがあり、背景負荷は止めるまでシナリオを繰り返し実行し続けます。

この状態で、実ユーザ環境に近い側で私のMacBookAirで測定を行います。測定用の負荷試験ツールは詳細な結果を取れますので、あとでExcelなどで統計処理を行って、レポートをまとめます。

また、測定と同時に、人が体感速度を見るのも大事です。

今回のテストでは、前回、高負荷にサーバが耐えられなかったため、負荷分散の台数を増やし、その様子を見ることが一番の目的でしたが、さすがにサーバ台数が4倍になっただけあり、前回と比べると格段に性能がUPしていました。

このようなテストを行うのは、仕事ということ以外で考えても、なかなか楽しいのですが・・・運用が始まっているシステムだとまず間違いなく深夜の作業になります。深夜はユーザが少ないので、事前に告知して、メンテナンスなどを行うことが多いのです。

本当は私のようなオヤジが作業するより、深夜は若手が頑張ってくれた方が体調にひびかないのですが、WEBの負荷試験はかなり経験が必要で、SADEE2を普通に使うことは、当社メンバーならほとんどの人ができるのですが、どんなケースでも臨機応変に対応できる人になると、なかなかいないのです。SADEE2は私が10年以上前に作ったツールですので、私なら何でも対応できるのと、WEB開発は嫌いですがHTTPはそれなりに詳しいので、なんとかできるということがあり、結局私が自分でやることが多いのです。。特に昨晩のように大規模運用が始まっているシステムでのテストとなると、多くの関係者が徹夜で連携しながらテストを進めることになり、それこそ、シナリオがうまく作れなかったり、テストをミスしてしまうと、非常に多くの人に迷惑がかかります。20時にシナリオ作成を開始し、案の定想定外の問題にぶつかり、22時過ぎに解決して、一通りシナリオが問題ないことを確認し、0時からテストを開始した後も、ずっとミスしないように神経を研ぎ澄まして作業を続け、5時過ぎまでテストを続けました。お手伝い気分ではとてもできない作業です。

WEB負荷試験でシナリオを作る際に大変なのは、セッション管理です。今どきのWEBシステムはログインしてセッション情報を保持しながら様々な処理を行います。その仕組みがシステムにより様々で、ツールで対応するのはなかなか大変なのです。Cookie埋め込みはまだわかりやすいのですが、URL埋め込み・FORM埋め込み、さらには、動的にURLが変わるシステムなど、ツールで対応が大変なケースはかなりあります。おまけに、コンテンツに有効期限があったりすると、シナリオ作成時はうまくいったのに、テスト時点ではエラーになることもあります。本当はWEBシステム側を開発した人か設計した人が、ツールを使いこなして試験するのが一番だと思うのですが、大抵は試験を丸ごと依頼されます。シナリオを作り、動かしてみながら、HTTPの生データを観察し、まるでハッキングしているような大変さで解析しながらシナリオを作ります。

シナリオが固まれば後はかなり楽になりますが、結果もかなり膨大なデータになるので、整理が大変です。

ということで、WEB負荷試験は大事といいながらも、実は結構大変ということと、深夜作業は年を取るごとに辛くなるという愚痴でした。。本当は私の著書でも参考に、皆さんが自作して自分のシステムに合わせた負荷ツールを作ってくれればいいのですけどね・・・。

Comment(0)