ที่ลูกค้าหนึ่ง ผมเจอปัญหาที่น่าสนใจเกี่ยวกับการติดตั้งอัปเดตบนไคลเอ็นต์ Windows 7 อัปเดตถูกกระจายผ่าน WSUS Server ที่ผสานรวมกับ System Center Configuration Manager (Software Update Point – SUP) SCCM Server รัน Windows Server 2008 R2 WSUS Version คือ WSUS 3.0 SP2 ไคลเอ็นต์ PC Windows 7 SP1 (ประมาณ 2,000 เครื่อง) ต้องได้รับอัปเดต
ไคลเอ็นต์คอมพิวเตอร์ไม่สามารถรับอัปเดตจาก Software Update Point ได้ เกิดข้อผิดพลาด 0x80244022 ใน Logs
ฝั่ง Client WUAhandler.log แสดงข้อผิดพลาด:
OnSearchComplete - Failed to end search job. Error = 0x80244022.
Scan failed with error = 0x80244022.
WindowsUpdate.log ก็มีข้อผิดพลาดจำนวนมาก เช่น:
2017-11-11 14:25:41:271 612 4858 Setup WARNING: SelfUpdate check failed to download package information, error = 0x80244022
2017-11-11 14:25:41:271 612 4858 Agent * WARNING: Skipping scan, self-update check returned 0x80244022
2017-11-11 14:25:41:271 612 4858 Agent WARNING: WU client failed Searching for update with error 0x80244022
2017-11-11 14:25:41:271 612 4abc AU # WARNING: Search callback failed, result = 0x80244022
2017-11-11 14:25:41:271 612 4abc AU # WARNING: Failed to find updates with error code 80244022

ฝั่ง Server WSUSCtrl.log แสดงข้อผิดพลาด:
The request failed with HTTP status 503: Service Unavailable
Failures reported during periodic health check by the WSUS Server SCCM-SRV1. Will retry check in 1 minutes

นั่นคือ WSUS Site ไม่ตอบสนอง จริงๆ ถ้าเปิด URL ของ WSUS Administration (https://SCCM-Srv1:8530) จะเจอข้อผิดพลาด:
HTTP Error 503. The service is unavailable

เปิด IIS Manager พบว่า Application Pool ที่รับผิดชอบ WSUS (WsusPool) หยุดทำงานอยู่

หลัง Start ด้วยตนเอง มันจะหยุดอีกครั้งภายใน 20-30 นาที ใน System Log มี Event ID 5117 จาก WAS:
A worker process serving application pool 'WsusPool' has requested a recycle because it reached its private bytes memory limit

Default ขีดจำกัดหน่วยความจำของ WsusPool คือ 1.8 GB หากเกิน (อาจเกิดขึ้นหากมี WSUS Clients มาก โดยเฉพาะครั้งแรกที่ Scan) Pool จะถูก Reset เพื่อดูว่า Pool ใช้หน่วยความจำเท่าไหร่ ให้ดู Process w3wp.exe หากเกิน 1.8 GB Process จะถูก Restart ดังนั้น เพื่อแก้ปัญหานี้ ต้องเพิ่มหน่วยความจำที่จัดสรร
หมายเหตุ ปัญหานี้คล้ายกับกรณี Error 0x8024401C เมื่อรับอัปเดตใน Windows 10 ที่เคยพิจารณาไว้ก่อนหน้านี้
สามารถทำได้ใน IIS Manager เลือก Application Pools คลิกขวา WsusPool -> Recycling แล้วเพิ่มค่าใน Field Private memory usage (in KB)

เพิ่มเท่าไหร่ก็ตามที่คุณเหมาะสม แต่วิธีแนะนำเริ่มจาก 3-4 GB ในกรณีของผม 6 GB เพียงพอสำหรับ 2,000+ WSUS Clients
ขนาดหน่วยความจำที่จัดสรรยังสามารถเปลี่ยนได้ใน Advanced Settings ของ Pool โดยเพิ่มค่าใน Field Private memory usage (KB)

จากนั้น Restart Pool ด้วยปุ่ม Start/Stop หรือ Recycle

หลังจากนั้น w3wp.exe หยุดใช้ RAM เกิน 3 GB วันถัดไป คอมพิวเตอร์เริ่มรับอัปเดตได้ปกติ
เคล็ดลับ หากมี WSUS Clients จำนวนมากที่รับอัปเดตจาก SCCM Software Update Point (โดยเฉพาะที่รับอัปเดตครั้งแรก) สามารถเพิ่มค่าพารามิเตอร์ต่อไปนี้ใน Advanced Settings:
- Queue Length จาก 1,000 เป็น 25,000
- "Service Unavailable" Response Type – จาก HttpLevel เป็น TcpLevel
- Failure Interval (minutes) – จาก 5 เป็น 30
- Maximum Failures – จาก 5 เป็น 60
นอกจากนี้ แนะนำติดตั้ง Updates ต่อไปนี้สำหรับ WSUS 3.0 SP2 บน Windows Server 2008 R2:
- KB2720211
- KB2734608
และ Updates เหล่านี้สำหรับ WSUS 4.0 บน Windows Server 2012 R2:
- KB2919442
- KB2919355
- KB3095113
- KB3159706