У одного із замовників зіткнувся з цікавою проблемою установки оновлень на клієнтах з Windows 7. Оновлення поширюються за допомогою сервера WSUS, інтегрованого в середу System Center Configuration Manager. На SCCM сервері використовується Windows Server 2008 R2, версія WSUS відповідно - WSUS 3.0 SP2. Повинні оновлюється клієнтські ПК з Windows 7 SP (близько 2000 комп'ютерів).
Комп'ютери клієнтів не можуть отримати оновлення з Software Update Point, в журналах при цьому фіксується помилка 0x80244022.
На стороні клієнта журнал WUAhandler.log містить помилки:
OnSearchComplete - Failed to end search job. Error = 0x80244022.
Scan failed with error = 0x80244022.
У журналі служби Windows Update WindowsUpdate.log теж безліч помилок виду:
2017-08-09 11: 02: 04 371 612 4858 Setup WARNING: SelfUpdate check failed to download package information, error = 0x80244022
2017-08-09 11: 02: 04 371 612 4858 Setup WARNING: SelfUpdate check failed to download package information, error = 0x80244022
2017-08-09 11: 02: 04 371 612 4858 Agent * WARNING: Skipping scan, self-update check returned 0x80244022
2017-08-09 11: 02: 04 371 612 4858 Agent * WARNING: Exit code = 0x80244022
2017-08-09 11: 02: 04 371 612 4858 Agent WARNING: WU client failed Searching for update with error 0x80244022
2017-08-09 11: 02: 04 371 612 4abc AU # WARNING: Search callback failed, result = 0x80244022
2017-08-09 11: 02: 04 371 612 4abc AU # WARNING: Failed to find updates with error code 80244022
На стороні сервера при цьому в балці WSUSCtrl.log є помилка:
request failed with HTTP status 503: Service Unavailable
Failures reported during periodic health check by the WSUS Server SPB-MAN1. Will retry check in 1 minutes
Тобто по балці видно, не відповідає сайт WSUS відповідає. Дійсно, якщо відкрити URL адреса WSUS Administration (http: // SCCM-Srv1: 8530), з'являється помилка:
HTTP Error 503. The service is unavailable
Відкривши консоль управління IIS Manager, я побачив що пул, який відповідає за роботу WSUS (WsusPool) знаходиться в відключеному стані.
Після ручного запуску пулу, через 20-30 хвилин він знову впаде. У журналі системи при цьому виявилося цікаве повідомлення Event ID 5117 WAS з текстом:
A worker process serving application pool 'WsusPool' has requested a recycle because it reached its private bytes memory limit
За замовчуванням в системі ліміт використовуваної пам'яті для пулу WsusPool
обмежений 1,8 Гб. При перевищенні цього значення (а це може запросто трапиться при великій кількості клієнтів WSUS, особливо при першому скануванні), пул скидається. Щоб зрозуміти скільки пам'яті використовує ваш пул WSUS, досить подивитися за процесом w3wp.exe. При перевищенні ліміту 1,8 Гб, процес перезапускається. Таким чином для вирішення проблеми потрібно збільшити обсяг виділеної пам'яті.
Зробити це можна з консолі IIS Manager, вибравши Application Pools -> ПКМ WsusPoll -> Recycling, збільшивши значення в поле Private memory usage (in KB).
Наскільки збільшити, вирішуйте самі, рекомендую почати з 3-4 Гб. У моєму випадку для 2000+ клієнтів WSUS, виявилося досить 6 Гб пам'яті.
Розмір виділеної пам'яті також можна змінити і з розділу розширених налаштувань пулу (Advanced Settings), збільшивши значення в поле Private memory usage (KB).
Залишилося перезапустити пул через кнопки Start / Stop або Recycle.
Після чого процес w3wp.exe перестав споживати більше 3 Гб RAM. А на наступний день на комп'ютерах стали закачуватимуться поновлення.
Порада. При великій кількості клієнтів WSUS, які отримують оновлення з SCCM Software Update Point (особливо отримують поновлення вперше), в розширених налаштуваннях пулу можна збільшити наступні параметри:
- Queue Length з 1000 до 25000
- "Service Unavailable" Response Type - c HttpLevel на TcpLevel
- Failure Interval (minutes) - з 5 до 30
- Change 'Maximum Failures' - з 5 to 60
Крім того, рекомендується встановити на WSUS 3.0 SP2 під Windows Server 2008 R2 наступні оновлення:
- KB2720211
- KB2734608
На WSUS 4.0 на Windows Server 2012 R2 такі:
- KB2919442
- KB2919355
- KB3095113
- KB3159706