動かし続けたソフトウェアを、いつ再起動するか

長く動かし続けたソフトウェアは、メモリの断片化や資源の消費が積み重なって、だんだん不安定になります。これをソフトウェアエージングと呼びます。対策のひとつが、壊れる前にあらかじめ再起動してしまうソフトウェア若化 (software rejuvenation) です。

早く再起動しすぎればサービスを止める時間が無駄に増え、遅すぎれば障害を起こしてしまう。最適な間隔がどこかにあります。

この研究では、システムの劣化過程を確率モデルで表し、稼働率を最大にする若化のタイミングを推定する方法を与えました。分布の形をあらかじめ仮定せずに実測データから直接スケジュールを求められる点が特徴です。研究室で最も引用されている成果のひとつです。

元になった論文

Estimating software rejuvenation schedules in high-assurance systems

The Computer Journal (2001)