Windows Serverは定期的に再起動した方がいい?再起動しない運用は問題?

Windows

Windows Serverを長期間運用していると、「サーバーは定期的に再起動した方がいいのか?」と迷うことがあります。

毎週再起動している環境もあれば、Windows Updateなどで必要になるまで何か月も再起動しない環境もあります。

結論からいうと、Windows Serverを「毎週」「毎月」など決まった周期で必ず再起動しなければならない、というMicrosoftの一律の推奨は確認できません。

重要なのは再起動回数ではなく、Windows Updateによる再起動要求、サーバーの状態、役割、業務への影響などを確認して、必要なタイミングで計画的に再起動することです。

Windows Serverを定期的に再起動する必要性と判断ポイント
Windows Update、Pending Reboot、障害、構成変更からWindows Serverの再起動タイミングを判断

Windows Serverは定期的に再起動する必要がある?

「Windows Serverは月に1回再起動した方が安定する」といった運用ルールを聞くことがあります。

しかし、すべてのWindows Serverに対して「○日ごとに再起動する」と決める必要はありません。

例えば、安定して動作しており、再起動が必要な更新や構成変更もなく、リソースにも問題がないのであれば、単純に稼働日数が長いという理由だけで再起動する必要性は高くありません。

一方で、Windows Updateなどによって再起動が要求されている場合は別です。

Windows Update後に再起動を要求されたら?

Windows Serverへ更新プログラムをインストールすると、再起動が必要になる場合があります。

再起動が必要な更新では、再起動によって更新処理が完了します。

MicrosoftのWindows Server Updateトラブルシューティングでも、Pending Reboot状態を確認し、サーバーがまだ再起動されていない場合は再起動する手順が案内されています。

そのため、

「Windows Updateは適用したが、業務を止めたくないので再起動だけ何週間も先延ばしする」

という運用には注意が必要です。

Pending Rebootとは?

Windowsでは更新や構成変更などによって、処理を完了するための再起動待ち状態になることがあります。

これを一般に「Pending Reboot」と呼びます。

例えば、

  • Windows Update
  • 役割・機能の追加や変更
  • ドライバーの更新
  • アプリケーションのインストール
  • システム構成の変更

などによって再起動が必要になる場合があります。

サーバーの再起動を検討するときは、「前回再起動から何日経過したか」だけでなく、再起動待ちになっていないかを確認することが重要です。

再起動すればメモリは解放される

Windows Serverを再起動すると、OS、サービス、アプリケーションなどが再起動され、使用していたメモリなどの状態もリセットされます。

そのため、長期間稼働してメモリ使用量が増えているサーバーを再起動すると、一時的にメモリ使用量が減ることがあります。

しかし、ここで注意したいことがあります。

メモリリークを定期再起動で隠さない

例えば特定のサービスやアプリケーションにメモリリークがあり、時間の経過とともにメモリ使用量が増加しているとします。

毎週サーバーを再起動すれば、一時的にはメモリ使用量が元に戻るかもしれません。

しかし、これは根本的な解決ではありません。

MicrosoftもWindows Serverのメモリリークについて、イベントログ、タスクマネージャー、WPRなどを利用して原因となるプロセスを調査する方法を案内しています。

つまり、

メモリ使用量が増える
        ↓
毎週再起動
        ↓
一時的に改善
        ↓
またメモリ使用量が増える

という状態なら、再起動周期を短くするより原因を調査した方がよいでしょう。

再起動した方がよい主なケース

Windows Serverの再起動を検討する代表的なケースは次のとおりです。

  • Windows Updateで再起動が要求されている
  • 役割や機能を追加・変更した
  • ドライバーやシステムコンポーネントを更新した
  • 再起動を必要とするアプリケーションを更新した
  • Pending Rebootになっている
  • トラブルシューティングで再起動が必要

このような場合は、業務への影響を確認してメンテナンス時間に再起動します。

「調子が悪いからとりあえず再起動」は悪い?

トラブル発生時に再起動すること自体が悪いわけではありません。

実際に再起動によってサービスやシステムの状態が正常に戻ることもあります。

ただし、原因調査が必要な障害では、再起動前にログや状態を確認しておいた方がよい場合があります。

再起動すると、障害発生時の状態が変化してしまうからです。

例えば、

  • イベントログ
  • CPU使用率
  • メモリ使用量
  • 異常なプロセス
  • サービスの状態
  • ネットワーク接続状態

などを確認してから再起動すると、その後の原因調査に役立ちます。

サービスだけ再起動すればよい場合もある

問題が特定のWindowsサービスだけに発生している場合、OS全体を再起動する必要がないこともあります。

例えば特定サービスの異常であれば、影響範囲を確認したうえでサービスのみを再起動することで復旧できる場合があります。

ただし依存サービスがある場合は注意が必要です。

Microsoftのサービスに関するガイドラインでも、サービスを停止・再起動すると依存するサービスにも影響することが説明されています。

業務サーバーは「再起動すること」自体にもリスクがある

Windows Serverでは、再起動すれば必ず安全というわけではありません。

再起動によって、

  • サービスが正常に起動しない
  • 業務アプリケーションが起動しない
  • データベースとの接続に失敗する
  • ネットワークサービスが復旧しない
  • 更新プログラム適用後に不具合が発生する

可能性も考える必要があります。

そのため本番サーバーでは、再起動そのものも変更作業の一つとして計画する方が安全です。

再起動前に確認したいこと

業務サーバーを再起動する場合は、最低限次の項目を確認しておきます。

  • 利用者への影響
  • 停止するサービス
  • 依存している他サーバー
  • バックアップの状態
  • 更新プログラムの内容
  • 再起動後の確認項目
  • 問題発生時の切り戻し方法

冗長構成なら1台ずつ再起動する

複数台で冗長化されているサーバーでは、サービスを維持しながら1台ずつメンテナンスできる場合があります。

例えば、

  • Active Directoryドメインコントローラー
  • Webサーバー
  • クラスタ構成
  • ロードバランサー配下のサーバー

などです。

ただし、冗長化されているから安全と決めつけず、もう一方のサーバーが正常にサービスを提供できることを確認してから作業します。

再起動履歴はイベントログで確認できる

「このサーバーは最後にいつ再起動したのか」「なぜ再起動したのか」を調査するときは、Windowsのシステムイベントログが役立ちます。

Microsoftでは、再起動の調査に次のようなイベントIDを利用する方法を案内しています。

  • Event ID 12
  • Event ID 13
  • Event ID 41
  • Event ID 1074
  • Event ID 6005
  • Event ID 6008
  • Event ID 6009

例えばEvent ID 1074では、どのプロセスやユーザーが再起動・シャットダウンを開始したかを調査できる場合があります。

Windows Serverの稼働時間を確認する

サーバーの起動日時はPowerShellから簡単に確認できます。

Get-CimInstance Win32_OperatingSystem |
Select-Object LastBootUpTime

また、次のコマンドでも確認できます。

systeminfo | findstr /i "System Boot Time"

日本語版Windowsでは表示名が異なることがあるため、PowerShellの方法が分かりやすいでしょう。

ただし、稼働時間が長いこと自体を異常と判断する必要はありません。

では、どのくらいの頻度で再起動すればいい?

「1週間」「1か月」「3か月」など、すべてのWindows Serverに共通する再起動周期を決めるのではなく、次の条件から判断します。

  • Windows Updateで再起動が必要か
  • Pending Rebootになっているか
  • サーバーのリソース状態に異常がないか
  • アプリケーションに問題が発生していないか
  • 構成変更を行ったか
  • メンテナンス可能な時間があるか

「毎月だから再起動する」ではなく、「必要な作業に合わせて計画的に再起動する」と考えると分かりやすいでしょう。

おすすめの運用

Windows Serverでは、次のような流れで管理するとよいでしょう。

  1. Windows Updateを計画的に適用する
  2. 再起動要求の有無を確認する
  3. CPU・メモリ・サービスなどを監視する
  4. 問題があれば原因を調査する
  5. 必要な場合はメンテナンス時間を確保する
  6. サーバーを再起動する
  7. 再起動後にサービス・イベントログを確認する

再起動することそのものを目的にするのではなく、安定したサービスを維持することを目的に運用します。

まとめ

Windows Serverには、「毎週」「毎月」などすべての環境に共通する定期再起動周期があるわけではありません。

安定して動作しているサーバーを、稼働日数だけを理由に頻繁に再起動する必要性は高くありません。

一方で、Windows Updateなどによって再起動が要求されている場合は、長期間放置せず、業務への影響を考慮して計画的に再起動します。

また、メモリリークやサービス異常を定期再起動だけで回避している場合は、根本原因を調査することも重要です。

再起動するかどうかは「何日稼働したか」ではなく、「更新・障害・構成変更・サーバーの状態」を見て判断するのがおすすめです。

参考情報

コメント

タイトルとURLをコピーしました