なぜ再起動するの?

以前から疑問に思っていたのですが、システムを運用する上で365日24時間稼働させることが目標であるシステムでも、1ヶ月に1度または2ヶ月に1度程度サーバを再起動することを運用の条件とすることがあります。

再起動する必要もないのになぜ再起動をするのだろうと疑問に思っていたのですが、これはメモリリークが発生していたときのために再起動を行うそうです。Javaや.NETであれ、案マネージリソースを使用する場合にはメモリリークが発生する可能性があるわけですから納得です。

こうしてみると、開発と運用では同じシステムを対象としていても見てる視点がかなり違うことがあるものです。その辺のノウハウは、門外不出?や一子相伝なのでしょうか?何か書籍があれば参考にしたいのですが、手頃なものはあるのでしょうかね。