configd: แก้ไขปัญหาการใช้งาน CPU สูงด้วยกระบวนการ configd ใน Mac OS X
configd เป็น daemon การกำหนดค่าระบบที่ทำงานเบื้องหลัง Mac OS X ผู้ใช้ส่วนใหญ่จะไม่สังเกตเห็นหรือเห็นกระบวนการ OS X หลักที่ทำงานอยู่เบื้องหลัง Mac ของตน จากที่กล่าวมา บางครั้ง configd สามารถทำงานและทำให้ CPU พุ่งขึ้นผิดปกติและกิจกรรมของพัดลมทำให้ Mac ของคุณดูเหมือนอุโมงค์ลม พฤติกรรม configd แปลก ๆ สามารถวินิจฉัยได้ง่ายโดยการเปิดใช้ตัวตรวจสอบกิจกรรม จัดเรียงตามตัวเลือก “% CPU” และดูกระบวนการของผู้ใช้รูท 'configd' ซึ่งอยู่ด้านบนสุดซึ่งกิน CPU ระหว่าง 20-95%หากพฤติกรรมนั้นคงอยู่ประมาณหนึ่งนาทีหรือมากกว่านั้นก็ไม่ใช่เรื่องใหญ่ การพุ่งขึ้นชั่วคราวอาจเป็นเรื่องปกติ ดังนั้นปล่อยให้มันทำงานและเพิกเฉยต่อมัน แต่ก็มีบางครั้งที่ configd สามารถทำงานผิดพลาดอย่างอธิบายไม่ได้ และจะใช้งาน CPU ประมาณ 50% หรือนานกว่านั้นเป็นเวลาหลายชั่วโมงโดยไม่มีเหตุผลที่ชัดเจน นั่นคือสิ่งที่เรากำลังหาทางแก้ไขที่นี่
แก้ไข configd การใช้งาน CPU สูงด้วย Force Relaunch ผ่าน Terminal
เราจะบังคับเปิดใช้งาน configd ใหม่อีกครั้งด้วยการเตะกางเกงอย่างรวดเร็วโดยใช้คำสั่ง 'killall' ที่ทรงพลัง เนื่องจาก configd เป็นกระบวนการของระบบ จึงเปิดใช้ใหม่ทันทีเมื่อถูกฆ่า และในทุก ๆ กรณีที่ configd ใช้งานโปรเซสเซอร์อย่างบ้าคลั่ง เคล็ดลับนี้จะแก้ปัญหาได้
Launch Terminal (นั่งอยู่ภายใน /Applications/Utilities/ ตามปกติ) แล้วพิมพ์คำสั่งต่อไปนี้:
sudo killall configd
คุณจะต้องป้อนรหัสผ่านผู้ดูแลระบบเพื่อดำเนินการคำสั่งในฐานะผู้ใช้ขั้นสูง ดังนั้นคำนำหน้า sudo การรันคำสั่งโดยไม่มี sudo นั้นไม่ได้ผลเพราะกระบวนการนี้เป็นของ root (ผู้ใช้ระดับสูง)
หากคุณเปิดตัวตรวจสอบกิจกรรมไว้และจัดเรียงตาม CPU คุณจะพบว่า 'configd' หายไปและเมื่อเปิดใหม่อีกครั้งจะไม่อยู่ที่ด้านบนสุดของรายการอีกต่อไปและไม่กิน CPU มากเกินไปอีกต่อไป . การค้นหากระบวนการควรพบว่ามีการใช้ CPU ระหว่าง 0% ถึง 1%
หากคุณยังมีปัญหากับ configd หลังจากใช้คำสั่ง killall ให้ข้ามไปที่ด้านล่างของบทความนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการแก้ไขปัญหา configd
จัดการกับ configd โดยไม่ใช้ Terminal
หากคุณไม่สะดวกกับบรรทัดคำสั่ง มีตัวเลือกอื่นอีกสองตัวเลือก:
- ออกจากแอปพลิเคชัน Mac ที่กำลังทำงานอยู่ทั้งหมด ซึ่งคุณสามารถทำได้ด้วยตนเองหรือโดยใช้แอปที่สร้างขึ้นเองนี้เพื่อออกจากการทำงานทุกอย่างใน OS X
- รีบูตเครื่อง Mac
การรีบูตเครื่อง Mac มีผลเหมือนกับการฆ่ากระบวนการ configd โดยตรง แม้ว่าจะเป็นการรบกวนขั้นตอนการทำงานของคุณมากกว่าอย่างเห็นได้ชัด การออกจากทุกแอปพลิเคชันสามารถช่วยได้หากข้อผิดพลาด configd เกิดจากพฤติกรรมที่ผิดพลาดของแอป โปรดอ่านรายละเอียดเพิ่มเติมในอีกสักครู่
การวินิจฉัยปัญหา configd เฉพาะและการเรียนรู้เกี่ยวกับ configd
Apple อธิบาย configd อย่างเป็นทางการดังนี้:
configd daemon รับผิดชอบด้านการกำหนดค่าต่างๆ ของระบบโลคัล configd รักษาข้อมูลที่สะท้อนถึงสถานะที่ต้องการและเป็นปัจจุบันของระบบ แจ้งเตือนไปยังแอปพลิเคชันเมื่อข้อมูลนี้เปลี่ยนแปลง และโฮสต์ตัวแทนการกำหนดค่าจำนวนหนึ่งในรูปแบบของบันเดิลที่โหลดได้
ข้อความที่ตัดตอนมานั้นนำมาจากหน้าคู่มือใน configd ซึ่งสามารถเข้าถึงได้โดยพิมพ์ข้อความต่อไปนี้ลงในเทอร์มินัล:
man configd
คุณสามารถอ่านได้โดยตรงบน Mac ของคุณผ่านบรรทัดคำสั่ง หรือผ่านเว็บโดยใช้ลิงก์ Developer Library ที่นี่
หากคุณต้องการลองวิเคราะห์ว่าทำไม configd ถึงบ้าในตอนแรก คุณสามารถดูรอบ ๆ สองตำแหน่งต่อไปนี้สำหรับไฟล์ configd bundles และ plist ซึ่งอาจให้คำแนะนำบางอย่างเกี่ยวกับสิ่งที่เกิดขึ้น ผิดและทำไม:
/System/Library/SystemConfiguration/
/Library/Preferences/SystemConfiguration/
อีกทางเลือกหนึ่งคือการเลือกที่จะเรียกใช้ configd อีกครั้งในโหมด verbose ด้วยคำสั่งต่อไปนี้:
sudo /usr/libexec/configd -v
การดำเนินการนี้จะส่งออกข้อมูลโดยละเอียดไปยัง OS X System Console ซึ่งสามารถอ่านได้จากแอป Console หรือผ่านบรรทัดคำสั่งเช่นกันการเปรียบเทียบข้อมูลนั้นกับสิ่งที่พบในไดเร็กทอรีระบบดังกล่าวจะมีประโยชน์มากในการวินิจฉัยสาเหตุที่แม่นยำ
ประสบการณ์ทั่วไปแสดงให้เห็นว่าแอปและกระบวนการบางอย่างทำให้เกิดปัญหา configd บ่อยกว่าแอปอื่นๆ ซึ่งบางรายการอาจรวมถึงบริการที่ใช้ Java และ Java เช่น CrashPlan เครื่องพิมพ์บางเครื่องที่มีข้อผิดพลาดในการพิมพ์ที่ยังไม่ได้แก้ไข และเครือข่ายที่ไม่เหมาะสม การกำหนดค่าที่การเชื่อมต่อเครือข่ายพยายามและล้มเหลวซ้ำๆ นี่คือสาเหตุที่บางครั้งการออกจากแอปทั้งหมดมีผลในการแก้ไขปัญหา เนื่องจากอาจยุติการทำซ้ำที่ล้มเหลวซึ่งทำให้ configd ยุ่งเหยิง และในบางกรณีที่การฆ่า configd ไม่สามารถแก้ปัญหาได้ การลบไฟล์ plist ของผู้ร้ายจะสามารถแก้ไขได้ ปัญหาครั้งแล้วครั้งเล่า ประสบการณ์และผลลัพธ์ของแต่ละคนอาจแตกต่างกันไป