Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 7

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

บริการ wuauserv เป็นบริการ Windows Update มาตรฐานที่ใช้สแกนคอมพิวเตอร์ ค้นหา ดาวน์โหลด และติดตั้งแพตช์ความปลอดภัยและอัปเดตใหม่จาก Windows Update หรือ WSUS Server ภายใน ในบางกรณี บริการ wuauserv อาจทำงานไม่ถูกต้อง ทำให้ CPU และ RAM ใช้งานสูงผิดปกติ เนื่องจาก wuauserv รันภายใน Process Container svchost.exe ดูเหมือนว่า Process svchost ใช้ RAM และ CPU มากเกินไปบนอุปกรณ์ Windows ของคุณ ในบทความนี้ เราจะแสดงวิธีแก้ปัญหาการใช้ Memory และ CPU สูงโดย Process wuauserv ใน Windows 7 และ Windows 10

เนื้อหา:

  • Wuauserv Service ใน Windows 7 ใช้ CPU และ Memory สูงถึง 50%
  • Wuauserv: CPU และ Memory Usage สูงบน Windows 10

Wuauserv Service ใน Windows 7 ใช้ CPU และ Memory สูงถึง 50%

บางผู้ใช้ร้องเรียนปัญหาประสิทธิภาพบนคอมพิวเตอร์ Windows 7 ปัญหาแสดงออกดังนี้: ทุกวันเวลาเดียวกัน (แต่ละคนเวลาไม่เหมือนกัน) คอมพิวเตอร์เริ่มช้า Task Manager แสดงว่า Process svchost.exe ใช้ Memory 1.2-2 GB และ CPU ถึง 100% ของ Core หนึ่ง ผลคือไม่สามารถใช้คอมพิวเตอร์ได้ 30-60 นาที มันช้ามากและค้างตลอด

ปัญหาเกิดบน Client Windows 7 SP1 x86 และ x64 เมื่อรับอัปเดตจาก SCCM Server ภายใน (ใช้จัดการ Microsoft Updates บน Client) รัน Task Manager บน Client และจัดเรียง Process ตาม Memory หรือ CPU Usage ในแท็บ Processes คุณจะเห็น Process svchost.exe ปัจจุบันใช้ 11% CPU และ 1.2 GB Memory จริงๆ svchost.exe เป็น Process Container ที่ Thread ของโปรแกรมและบริการระบบอื่นๆ ทำงานอยู่ การใช้ Task Manager ไม่สามารถบอกได้ว่า Thread (Service) ไหนก่อให้เกิด Load ระบบสูง

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ข้อมูลรายละเอียดมากขึ้นเกี่ยวกับ Process และ Thread สามารถได้จากยูทิลิตี้ Process Explorer

รัน procexp.exe และหา Process svchost.exe ที่มีปัญหา ใช้ Memory และ/หรือ CPU มาก

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

เปิด Properties ไปที่แท็บ Threads ที่นี่คุณเห็นชัดเจนว่า Thread wuauserv (Windows Update) ใช้ CPU และ Memory ส่วนใหญ่ภายใน Process svchost.exe (บริการ wuauserv สแกนระบบและ Update Server หาอัปเดต) เนื่องจากปัญหาโค้ด wuauserv เริ่ม Leak และกิน Memory ที่มีอยู่จนถึง 1.5-2 GB (ขนาดสูงสุดที่ Process ใช้ได้) และเริ่มใช้ Paging File อย่างหนัก ระบบจึงช้าลง

น่าสนใจคือ ปัญหานี้มักเกิดบน Client ที่มี 2 GB RAM หาก PC มี Memory 4 GB ขึ้นไป ปัญหาจะไม่ชัดเจนเท่านั้น เพราะ Memory Leak ใน wuauserv ไม่เกิน 2 GB

หากคุณหยุด wuauserv ผ่านคอนโซล services.msc โหลด Memory และ CPU สูงใน Windows จะลดลงอย่างมาก และ svchost.exe เริ่มใช้ Memory เพียง 180-200 MB

สำคัญ. ไม่ได้หมายความว่าคุณต้องหยุด wuauserv และปิดไว้ตลอด เนื่องจากระบบจะหยุดรับอัปเดตความปลอดภัยและเสี่ยงต่อการโจมตีจากแฮกเกอร์

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ลอง Reset การตั้งค่า Windows Update Agent ตามคำแนะนำในบทความ "How to Reset Windows Update Agent Configuration" ปัญหาแก้ไขได้และไม่เกิดขึ้นอีกหลายวัน แต่ภายหลังเกิดขึ้นอีก ดูเหมือนขนาด Local Cache และ Update Database ถึงขีดจำกัด และ wuauserv เริ่มใช้ Memory สูง (Leak) อีกครั้ง

ลองหลายวิธีอื่นๆ แต่มีแต่การติดตั้งแพตช์ต่อไปนี้สำหรับ Windows Update Agent ที่ช่วยได้จริง:

  • https://support.microsoft.com/en-us/kb/3050265 (อัปเดต Windows Update Agent จาก มิถุนายน 2015);
  • https://support.microsoft.com/en-us/kb/3065987 (อัปเดต Windows Update Agent จาก กรกฎาคม 2015);
  • https://support.microsoft.com/en-us/kb/3102810 (แพตช์สำหรับ Windows 7/ 2008 R2 ช่วยแก้ปัญหา CPU และ Memory สูงระหว่างติดตั้งอัปเดตผ่าน WSUS จาก พฤศจิกายน 2015)
Tip. เราติดตั้งแพตช์ไม่ใช่บนทุกเครื่อง Windows 7 แต่เฉพาะเครื่องที่ผู้ใช้รายงานปัญหาคล้ายกัน

หลังติดตั้งอัปเดตแล้ว Memory Usage ของ wuauserv ลดเหลือ 200 MB และกระบวนการสแกนอัปเดตใช้เวลาน้อยลงมาก

Wuauserv: CPU และ Memory Usage สูงบน Windows 10

ปัญหาที่ Windows Update Service โหลด Processor สูงและใช้ Memory มาก เกิดขึ้นใน Build ต่างๆ ของ Windows 10 เช่นกัน
เปิด Task Manager หา Process svchost.exe ที่ใช้ Memory หรือ CPU มาก คลิกขวาเลือก "Go to Services"

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ตรวจสอบว่าบริการ wuauserv กำลังรันเป็นส่วนหนึ่งของ Process svchost.exe นี้ (Windows Update Service) ตรวจสอบให้แน่ใจว่า wuauserv (Windows Update Service) กำลังรันเป็นส่วนหนึ่งของ Process svchost.exe

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

เนื่องจาก Task Manager ไม่ช่วยระบุได้ว่าบริการระบบไหนภายใน svchost Process ก่อให้เกิด Load สูง คุณต้องใช้ Process Explorer (ตามที่อธิบายข้างต้น) ตรวจสอบว่า CPU และ/หรือ Memory สูงเกิดจาก wuauserv Service (ในตัวอย่างนี้คือ Library C:\WINDOWS\system32\wuaueng.dll)

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

แตกต่างจากกรณี Memory Leak ใน Update Service ของ Windows 7 ข้างต้น ไม่มี Patch แบบ Universal ที่แก้ปัญหาสำหรับ Windows 10 ด้านล่างคือขั้นตอนพื้นฐานที่ควรทำเพื่อลด Memory และ CPU Usage โดย Windows Update Service

รอให้ Windows Updates ติดตั้งเสร็จ

หาก Windows Update Service กำลังสแกนคอมพิวเตอร์หรือติดตั้งอัปเดตอยู่ โหลดสูงของคอมพิวเตอร์ไม่ควรทำให้แปลกใจ ลองรอ (1-2 ชั่วโมง ขึ้นอยู่กับประสิทธิภาพคอมพิวเตอร์) จนกว่า wuauserv จะดาวน์โหลดและติดตั้งอัปเดตเสร็จ

รัน Windows Update Troubleshooter

ลองวินิจฉัย Windows Update Service 10 ด้วย Window Update Troubleshooter built-in ไปที่ Settings -> Update and Security -> Troubleshoot เลือก Windows Update (Resolve problems that prevent you from updating Windows) -> Run the troubleshooter

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

Utility จะตรวจสอบสถานะบริการและพยายามแก้ไขปัญหาที่พบ

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ล้างโฟลเดอร์ SoftwareDistribution และ catroot2

ลอง Reset โฟลเดอร์ SoftwareDistribution และ catroot2

  • โฟลเดอร์ C:\Windows\SoftwareDistribution เก็บไฟล์ชั่วคราวของ Windows Update Service และไฟล์อัปเดตที่ดาวน์โหลด;
  • โฟลเดอร์ %windir%\System32\catroot2 มีลายเซ็นของแพ็กเกจอัปเดต

ลองทำความสะอาดด้วยสคริปต์ต่อไปนี้ (บันทึกโค้ดเป็นไฟล์ข้อความนามสกุล *.bat และรันเป็น Administrator):

attrib -h -r -s %windir%\system32\catroot2
attrib -h -r -s %windir%\system32\catroot2\*.*
net stop wuauserv
net stop CryptSvc
net stop BITS
ren %windir%\system32\catroot2 catroot2.old
ren %windir%\SoftwareDistribution SoftwareDistribution.old
ren "%ALLUSERSPROFILE%\application data\Microsoft\Network\downloader" downloader.old
net Start BITS
net start CryptSvc
net start wuauserv

ตรวจสอบและซ่อมแซม System Files และ Component Store

ตรวจสอบและซ่อมแซม System Files ของ Windows Image ด้วยคำสั่ง:

sfc /scannow
และ
DISM /Online /Cleanup-Image /RestoreHealth

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ตรวจสอบไวรัสบนคอมพิวเตอร์

ตรวจสอบ Windows หาไวรัสในโหมด Offline โดยใช้ Rescue Disk (Kaspersky Rescue Disk หรือ Avira Rescue System)

อัปเดต Windows 10

  1. อัปเดตเวอร์ชัน Windows 10 โดยติดตั้ง Build ปัจจุบัน;
  2. ดาวน์โหลดและติดตั้งด้วยตนเองจาก Microsoft Update Catalog (https://www.catalog.update.microsoft.com/Home.aspx) Cumulative Updates ล่าสุดสำหรับเวอร์ชัน Windows ของคุณ (Microsoft แก้ไข Bug และ Error ต่างๆ ทุกเดือน และเพิ่ม Fix ลงใน Cumulative Update Package)

ปิด Windows Update Delivery Optimization

ไปที่ Settings -> Updates and Security -> Windows Update -> Advanced Options -> Delivery Optimization ปิดตัวเลือก "Allow downloads from other PCs" และรีบูทอุปกรณ์

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ถอนการติดตั้ง Windows Updates ล่าสุด

หากปัญหา CPU และ Memory สูงของ wuauserv เกิดขึ้นทันทีหลังติดตั้ง Windows Updates ใหม่ ลองถอนอัปเดตเหล่านี้ทีละตัว (Control Panel -> Programs and Features -> View Installed Updates) จัดเรียงตามวันที่ติดตั้ง คลิกขวาที่อัปเดต เลือก Uninstall

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ปิดใช้งาน Windows Update Service

ผมไม่แนะนำให้ปิด Windows Update Service เนื่องจากคุณจะหยุดรับอัปเดตความปลอดภัยและเสี่ยงต่อการโจมตีหรือติดไวรัส การปิดบริการอัปเดตสามารถใช้เป็นขั้นตอนชั่วคราว เมื่อวิธีอื่นๆ ไม่ช่วยกู้คืนการทำงานปกติของระบบ

เปิดคอนโซลจัดการ Services (services.msc) หา Windows Update Service หยุดมันและเปลี่ยน Startup Type เป็น Disabled บันทึกการเปลี่ยนแปลงและรีสตาร์ทคอมพิวเตอร์

แก้ไขปัญหา CPU สูงและ Memory Leak จาก Svchost.exe (wuauserv)

ในวันอังคารที่สองของเดือนถัดไป อย่าลืมดาวน์โหลดและติดตั้ง Cumulative Updates ใหม่สำหรับ Build Windows 10 ของคุณด้วยตนเอง เปิดใช้งาน wuauserv Service อาจจะเป็นว่าปัญหาของคุณจะได้รับการแก้ไขในอัปเดตใหม่