Translate

2017年7月14日金曜日

WSUSの「接続エラー」の対処方法について

 WSUSを運用していると管理画面に「接続エラー」が表示されることがあります。最初のうちは「サーバノードのリセット」を行えば、再度接続できるようになるのですがその状態を放置し続けるとそのうちリセットしても再接続できなるなってきます。
 これはWSUSの運用を続けることで無駄なデータが蓄積されていくことによるもので、データベースの容量制限やメモリ不足であったり、IISのメモリ不足などさまざまな要因が重なることでおきるようです。
 以前、このブログ内でも「WSUSのクリーンアップ」という題名で紹介しておりますが、今回はそれでも問題が解決しない場合の対処方法について説明します。

■原因

接続エラーの主な原因は次のようなものが在るようです。
  • DBのディスク容量不足によりDBの処理に失敗する。
  • DBのメモリ不足によりDBの処理に失敗する。
  • IISのメモリ不足によりIISがクラッシュする。

■基本的な対策

 この対策は主にDBのディスク容量不足に対するものです。MSのサポート曰く基本的な対策として定期的に行ったほうが良いようです。
 詳しい内容は「WSUSのクリーンアップ」をご覧ください。

■IISの上限メモリを増やす

IIS内のアプリケーション(WsusPool)のメモリ制限を4GBに増やす。 4GBに設定すればほぼ安定するようですが、それでも安定しない場合はより多く確保してください。
  1. IISマネージャを起動して左ペインのWSUSのサーバ内にある「アプリケーションプール」を選択します。
  2. 次に右ペインの「WsusPool」右クリックして「詳細設定」を選択して詳細設定を開きます。
  3. 詳細設定内の「プライベートメモリ制限(KB)」を4000000(4GB)に設定する。
  4. 「OK」ボタンを押して設定を反映させる。

■DBの上限メモリを増やす

SQL ServerもしくはWindows Internal Databaseの最小メモリを1GBに増やす。

SQL Serverの場合

SQL Serverの場合はSQL Server Management Studioを起動して、サーバのプロパティを開き、メモリ内の「最小サーバーメモリ(MB)」を1024MBに設定するだけです。

Windows Internal Databaseの場合

  1. 管理者権限でコマンドプロンプトを起動します。
  2. Windows Internal Databaseに接続します。

    WSUS 3.0 SP2 の場合

    sqlcmd -E -S \\.\pipe\mssql$microsoft##ssee\sql\query
    

    Windows Server 2012 / 2012 R2 WSUS の場合

    sqlcmd -E -S \\.\pipe\MICROSOFT##WID\tsql\query
    
  3. 次のSQLを実行します。
    EXEC sp_configure 'show advanced options',1
    GO
    Reconfigure
    GO
    EXEC sp_configure 'min server memory',1024
    GO
    Reconfigure
    GO
    
  4. 次のSQLを実行しrun_value(最小メモリ)が1GBに設定されたことを確認します。
    EXEC sp_configure 'min server memory'
    GO
    
    出力例)
    name                                minimum     maximum     config_value run_value
    ----------------------------------- ----------- ----------- ------------ -----------
    min server memory (MB)                        0  2147483647         1024        1024
    

参考資料

より詳しい資料はMSのサポートページをご覧ください。詳しく説明されています。