負荷はどれぐらいでしょうか?

私はDBのサポートみたいなこともやってます。
もちろん、システム企画や設計、構築にもかかわってるのですが、
サポートセンタに聞けないこととか、聞く前の段階での相談とか、
まぁ、言うてみれば、日本代表における今野のように、何でも屋のように使われているわけです。


で、このシリーズはそういった業務で培ってきた
サポート(やサポート業務をしてる社内の人間)との情報共有を
円滑にするための豆知識をだらだらとお送りしていきたいと思います。
ちなみにほっとんど Oracle 固有の知識とは関係がありませんので、
そういう目ではあまり見ないでください。
あと、そんなことみんなやってるやろ、常考。やったらごめんなさい。


では第1回目。


[トレースを取ったら|イベントを設定したら]負荷はどの程度になりますか?


について。


障害が起こったけど原因がわからん!
とかの場合、かなりの確率で、再現時に情報取得できるように、
サポートからなんらかのイベントやトレースを設定するよう、依頼がきます。
でも、本番環境を運用している身からすると、
そんなもんいきなり設定してCPU張り付きでもしたら、
やれ二次災害だのなんだのってえらいことになってしまいます。
そこで、サポートに聞くわけです。


「これを設定した場合、負荷はどの程度あがりますか?」


まぁ、「負荷」とかいうばっくりした単語使ってる時点で、
技術者としてどうかってとこがありますが、それはここではおいといて、
これをそのままサポートに問い合わせたら、
100%以上の確率で下記の答えが返ってくるでしょう。


「トレースを取得した際の負荷については、
物理構成など、システム固有の設計に依存するため、
こちらではお答えすることができません。
検証環境などでのテストを行なってから、
本番環境へ反映させることをお勧めいたします。」


確実。
絶対テンプレートからコピペよねこれ。ってぐらいこんな答えが返ってきます。
まぁ、でも確かにその言い分もわかる。
で、それをね、アプリケーションの開発担当とかに伝えると、
確実にこう返されるわけですよ。


「そんなもん、そっちの不具合の情報取得をしたいがために
トレースを取得しようとしてるのに、なんでわざわざテストまでせなあかんねん!
サポートやったら、標準的に負荷がどれぐらいとかだされへんのか!」


ごもっとも。こちらもその通り。
障害対応明けで疲れ果ててるときに、そんなテストの話を上にしようもんなら、
+2日はお風呂にはいれませんもんね。
また、本番−検証でハードウェア構成が違うとかってざらにあるから、
そもそもテストできる環境がないケースもありますもんね。


で、まぁ、なんでこうなっちゃうかと言うと、こういう乖離があるわけですよね。

  • サポートの言い分

そもそも、うちの環境で負荷状況しらべても意味がないよね。
お客さんの環境とあわせることなんかできないし。
そんな不確実な状況だしても役にたたないし、
後々責任問題に発展するとイヤだから、お客さんの環境で確認してもらうしかないよね。

  • お客さんの言い分

テストする工数なんか余ってないんです。
でも、いきなり本番環境にトレースとかイベント設定するって言っても、
レビュー通るわけないでしょ。
とにかく、少しでも参考になる情報がほしいのよね。


まぁ、ここからは、コレまでの経験や推測がまじりますが、
多分お客さん側は、確実な情報を求めてはいないし、
# もちろんあるに越したことはないんだろうけど。
サポートから負荷情報を出してもらったとして、
それが違ったから、責任取れ!ってことはないと思うんですよね。
さすがにそこまでバカじゃないですよ。


なので、そういうことであれば、はじめからこういう風に
依頼をしたら話がスムーズにいくんですよね。


「トレース取得を行なうために、設定した際の負荷を把握しておきたいと思います。
御社で標準的に行なっているベンチマークなどのツールを動かした上で、
依頼を頂いたトレースを設定した場合と設定しない場合で比較した
各リソースの負荷状況の情報を頂けないでしょうか。
その際、ハードウェア、ソフトウェア構成なども、参考情報として頂けると助かります。
なお、提供いただいた情報が弊社システム上でも有効かどうかの判断はこちらで行い、
弊社システム上で同様の負荷状況にならなかったからといって、
責任がどうのというような話にはいたしませんので、ご協力をお願いいたします。」


これで、しぶしぶながらやってくれますよ。高確率で。
断る理由ないですからね。
役に立てば幸い。では。