Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไข: CPU สูงจาก searchindexer.exe

ผู้ใช้ Windows จำนวนมากรำคาญกับความช้าของเครื่อง ซึ่งมักเกิดจาก CPU ใช้หน่วยความจำมากเกินไปเพื่อรันแอปพลิเคชันที่ติดตั้งอยู่ โปรแกรมเฉพาะที่พบว่ากิน RAM หรือ CPU จำนวนมากคือ SearchIndexer.exe

มีมาตรการเบื้องต้นบางอย่างเพื่อป้องกันไม่ให้ SearchIndexer.exe ใช้หน่วยความจำเพิ่มเติม เช่น การปิดบริการจาก Task Manager และการตั้งค่า Affinity ที่จำกัดจำนวน Core ของระบบสำหรับโปรแกรม - ไม่ควรถือเป็นโซลูชันถาวร แต่เพียงพอที่จะแก้ปัญชั่วคราวสำหรับบางผู้ใช้

searchindexer.exe เป็นบริการในตัวของ Windows ที่จัดการการจัดทำดัชนี (indexing) ของเอกสารสำหรับ Windows Search ซึ่งขับเคลื่อนเครื่องมือค้นหาไฟล์ในตัวของ Windows ที่ขับเคลื่อนกระบวนการทั้งหมดจาก Windows Explorer ไปจนถึงกล่องค้นหาใน Start Menu รวมถึงฟีเจอร์ Libraries ด้วย

ก่อนปฏิบัติตามคู่มือนี้ หากปัญหาเพิ่งเริ่มขึ้น โปรดรอ 1-2 ชั่วโมงเพื่อดูว่าจะแก้เองได้หรือไม่ เนื่องจากอาจกำลังจัดทำดัชนีไฟล์อยู่ หากไม่แก้หลังจาก 2-3 ชั่วโมง (6-7 ชั่วโมง) ให้ดำเนินการตามขั้นตอนด้านล่าง

ในคู่มือนี้ เราจะอภิปรายวิธีการที่พิสูจน์แล้วว่าสามารถแก้ปัญหา CPU สูงจาก searchindexer.exe ได้

วิธีที่ 1: รีสตาร์ท Windows Search Service

กดค้าง Windows Key และ กด R ในกล่องโต้ตอบ Run พิมพ์ services.msc แล้วคลิก OK

แก้ไข: CPU สูงจาก searchindexer.exe

ค้นหา Windows Search Service คลิกขวาที่มัน และเลือก Properties (คุณสมบัติ)

แก้ไข: CPU สูงจาก searchindexer.exe

คลิก Stop (หยุด) แล้วเลือก Disable (ปิดใช้งาน) จากเมนูแบบเลื่อนลง

แก้ไข: CPU สูงจาก searchindexer.exe

เมื่อเสร็จแล้ว รีบูตระบบ หลังจากระบบรีสตาร์ทแล้ว ไปที่ services.msc อีกครั้ง คลิกขวาที่บริการ และเลือก Properties ตั้งค่าบริการเป็น Automatic (Delayed Start) (อัตโนมัติ (เริ่มต้นล่าช้า)) และเริ่มบริการ

รอ และทดสอบดูว่า CPU Usage ที่ถูกใช้โดย searchindexer.exe ลดลงหรือไม่ หากปกติแล้ว คุณก็โอเค หากไม่ ให้ไป วิธีที่ 2

วิธีที่ 2: เปลี่ยนชื่อ korwbrkr.dll เป็น korwbrkr.bak

ทำตามวิธีที่ 1 เพื่อหยุด Windows Search Service จากนั้นคลิก Start และพิมพ์ CMD คลิกขวา cmd และเลือก Run As Administrator ใน Command Prompt ให้พิมพ์

cd C:\windows\system32

กด ENTER

จากนั้นพิมพ์ ren korwbrkr.dll korwbrkr.bak

เริ่ม Windows Search Service รีบูต PC และนี่ควรจะแก้ปัญหา

วิธีที่ 3: สร้าง Process DUMP เพื่อวิเคราะห์

หากไม่มีวิธีไหนได้ผล วิธีนี้จะช่วยได้ จริงๆ แล้ว วิธีที่ 2 มาจากวิธีนี้ ในวิธีนี้ เราจะสร้าง dump file ของกระบวนการ searchindexer.exe แล้วเปิดเพื่อวิเคราะห์ไฟล์เฉพาะที่ทำให้ CPU สูง

วิธีทำ: กดค้าง Windows Key และ กด R ในกล่องโต้ตอบ Run พิมพ์ taskmgr แล้วคลิก OK คลิกแท็บ Processes และค้นหา SearchIndexer.exe - คลิกขวา กระบวนการ และเลือก Create DUMP File

เมื่อเสร็จแล้ว จดตำแหน่งไฟล์ dump ต่อไป เปิดมันด้วย Debugger Tools [หรืออัปโหลดไป wikisend.com และส่งลิงก์ในคำถามใหม่ที่ eQuestions.net/ask] หากต้องการให้ผมวิเคราะห์ให้ มิฉะนั้น หากคุณทำได้เอง นี่คือตัวอย่าง output ของ dump ที่ทำให้สามารถระบุไฟล์ที่ทำให้ CPU สูงได้ ตามที่ระบุในวิธีที่ 2 (korwbrkr) - ไฟล์ภาษาเกาหลี ไม่ได้จำเป็นจริงๆ แต่อาจเกิดจาก Windows Updates

Loading Dump File [S:\Tools\SearchIndexer.exe.dmp]
User Mini Dump File with Full Memory: Only application data is available

Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path. *
* Use .symfix to have the debugger choose a symbol path. *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is:
Windows 8 Version 9200 MP (8 procs) Free x64
Product: WinNt, suite: SingleUserTS
Built by: 6.2.9200.16384 (win8_rtm.120725-1247)
Machine Name:
Debug session time: Sun Nov 4 22:01:24.000 2012 (UTC – 7:00)
System Uptime: 0 days 10:09:39.102
Process Uptime: 0 days 0:54:31.000
……………………………………
Loading unloaded module list
…
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll –
*** ERROR: Symbol file could not be found. Defaulted to export symbols for KERNELBASE.dll –
ntdll!NtWaitForSingleObject+0xa:
000007fc`5b172c2a c3 ret

นอกจากนี้ ผมตรวจสอบเธรดปัญหาใน Process Hacker นี่คือ Stack trace:

0, ntoskrnl.exe!SeAccessCheck+0x1ef
1, ntoskrnl.exe!KeDelayExecutionThread+0xc32
2, ntoskrnl.exe!KeWaitForSingleObject+0x1cf
3, ntoskrnl.exe!_misaligned_access+0x809
4, ntoskrnl.exe!SeAccessCheck+0x280
5, ntoskrnl.exe!SeAccessCheck+0x4d1
6, korwbrkr.dll!DllUnregisterServer+0x2f48
7, korwbrkr.dll!DllUnregisterServer+0x243e
8, korwbrkr.dll+0x12173
9, korwbrkr.dll!DllUnregisterServer+0x1696
10, korwbrkr.dll!DllUnregisterServer+0x62f9
11, korwbrkr.dll!DllUnregisterServer+0x6117
12, korwbrkr.dll!DllUnregisterServer+0x5db9
13, korwbrkr.dll!DllUnregisterServer+0x5882
14, korwbrkr.dll!DllUnregisterServer+0x6fa0
15, mssrch.dll!DllGetClassObject+0x3feba
16, mssrch.dll+0x19425
17, kernel32.dll!BaseThreadInitThunk+0x1a
18, ntdll.dll!RtlUserThreadStart+0x21

อย่างไรก็ตาม ก่อนเปลี่ยนชื่อหรือจัดการกับไฟล์ ให้แน่ใจว่าไฟล์นั้นปลอดภัยที่จะจัดการ การค้นหา Google מהירה จะบอกว่าไฟล์นั้นคืออะไร วิธีนี้แนะนำเฉพาะผู้ใช้ขั้นสูงเท่านั้น