ソフトウェア・サービスを提供する前に、何を測定するとよいか。
ソフトウェア・サービスを提供しはじめてから、何を測定するとよいか。
空間と時間
測定の基本は、空間と時間。時間には、CPU稼働率、実行時間、通信時間などがある。
空間には、メモリ空間、ディスク空間、通信可能空間などがある。
CPU稼働率
ある時間にCPUが稼働している割合。CPU稼働率が高いと、温度が上昇する可能性がある。
実行時間
ある処理を始めてから終了するまでの時間。通信を含む処理の場合には、通信時間を含む場合がある。
通信時間
片方向の通信時間と往復の通信時間のどちらかだけ測る場合と、両方測る場合がある。
往復の通信時間の半分が片方向の通信時間ではないことがあるため注意するとよい。
往路と復路の通信帯域が違ったり、経路が違うと、遅延に差が出ることがある。
メモリ(空間)
最大に利用するメモリと、ずっと使い続けているメモリを確認するとよい。
ディスク(空間)
最大に利用するディスクと、ずっと使い続けているディスクを確認するとよい。
メモリの利用状況が影響するかもしれない。メモリがいっぱいっぱいで利用していると、メモリの内容をディスクに退避(swap)するために、メモリの容量近くをディスクに書き始めるかもしれない。あるいは、エラーが起きた場合に、メモリの内容を書き出し(dump)するかもしれない。
ディスクの空きがないと、そこでシステムが止まるかもしれない。
ネットワーク上に、予備のディスクや、仮想ディスクがある場合には、実行時間、通信時間は遅くなるが、処理は継続できるかもしれない。
電力、電流、電圧、温度、湿度
電気製品だから、電力、電流、電圧の何かは測っているとよい。
電力を測ったら、温度も測って、電力と温度との関係を求めているとよい。
温度が一定以上になると暴走したり、異常な処理をすることがある。
30年くらい前、intelの80386というCPUで、ヒートシンクを外すと、ネットワークがつながらないという現象が出たことがある。他の処理は正常動作していた。
箱を開いて、なんでこの機材だけヒートシンク外したままつけるのわすれてるんだって。
測定項目の関係
CPU稼働率 -> 電力 -> 温度
メモリ空間 -> ディスク空間 -> 通信時間
-> 実行時間
-> 実行時間
-> 電力 -> 温度