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

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

คุณอยู่ในโซน ทำงานได้เต็มที่ และทันใดนั้น Mac เริ่ม Lag แอปพลิเคชันไม่เปิดเร็วเหมือนเดิม และการสลับแอปมีความล่าช้า

เพื่อเข้าใจว่าทำไม Mac ถึงทำงานแบบนี้ คุณน่าจะเปิด Activity Monitor และพบว่า CPU ของ Mac ทำงานเต็มที่ ทำให้ Mac 掙扎 (Struggle)

แตทำไม CPU Usage บน Mac จึงสูงมาก? เป็นเพราะ Process ที่ชื่อ WindowServer หรือไม่? มาหาคำตอบกัน

WindowServer บน Mac คืออะไร?

จากชื่อ คุณอาจคิดว่า WindowServer เกี่ยวกับอินเทอร์เน็ต เพราะ Server มักอยู่บน World Wide Web ช่วย Serve เว็บไซต์ที่เราหา

แต่จริงๆ แล้ว Process WindowServer บน Mac ไม่เกี่ยวกับอินเทอร์เน็ตเลย มันรับผิดชอบงานพื้นฐานสำคัญของ Mac - การวาด Windows (หน้าต่าง) บนหน้าจอของ Mac หมายความว่า Windows ทั้งหมดที่คุณเห็นบน Mac ถูก Render และ Managed โดย WindowServer

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

ดังนั้น เมื่อคุณเปิดแอปพลิเคชันบน Mac มันจะสื่อสารกับ WindowServer เพื่อสร้าง UI บนหน้าจอ หลังจากนั้น WindowServer จะจัดการ Transparency (ความโปร่งใส) เนื้อหา และ Elements อื่นๆ บนหน้าจอแบบ Dynamic

เพิ่มเติม Process นี้เริ่มทำงานทันทีที่ Mac เปิดเครื่อง เพราะมันรับผิดชอบ Render Dock, macOS Menu Bar และไอคอนทั้งหมดบน Desktop

ทั้งนี้แสดงว่า WindowServer เป็น Mission-critical Process และ CPU Usage ของ Process นี้สัมพันธ์โดยตรงกับจำนวน Desktops และ Windows บน Mac

ดังนั้น หากคุณเปิดแอปหลายตัว หรือใช้ Multiple Displays WindowServer จะใช้ทรัพยากร CPU มาก

แต่คุณจะเช็คว่า WindowServer ใช้ทรัพยากรเท่าไหร่ได้อย่างไร? มาดูด้านล่าง

วิธีเช็ค CPU Usage ของ WindowServer

ตอนนี้เรารู้ว่า WindowServer คืออะไร เราสามารถตรวจสอบได้ว่า Process นี้ใช้ทรัพยากรฮาร์ดแวร์ของ Mac เท่าไหร่ ทำตามขั้นตอนง่ายๆ ด้านล่าง:

  1. ใช้ Shortcut Command + Space เปิด Spotlight ค้นหา Activity Monitor
    ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น
  2. ค้นหา WindowServer และ Double-click เพื่อดู CPU และ Memory Usage ของ Process
    ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

как đã 解说 (As explained earlier) WindowServer อาจใช้ CPU Cycles มากได้ แต่ถ้าแอปบน Mac ทำงานถูกต้อง Process ควรใช้ 10-30% ของ Computing Power ของ CPU

반대로 (On the contrary) หากแอปบน Mac มี Bug อาจทำให้ WindowServer ใช้ Computing Power มากขึ้น แต่นี่คือวิธีแก้ไข

11 วิธีลด CPU Usage ของ WindowServer

หาก Process WindowServer บน Mac ใช้ CPU Cycles มาก คุณสามารถทำตามเคล็ดลับด้านล่างเพื่อลดลง

1. ทำความสะอาด Desktop

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

การวางไฟล์บน Desktop สะดวก ช่วยเข้าถึงไฟล์ง่ายและได้ภาพรวมของไฟล์ที่ใช้บ่อย แต่ถ้าคุณมี Elements เยอะบน Desktop WindowServer ต้อง Render ทั้ง Icons และ Windows ที่คุณกำลังทำงาน

ดังนั้น หากคุณมี Icons เยอะบน Desktop ให้ย้ายไปที่อื่น หรือลบหากไม่จำเป็น การทำอย่างนี้จะลด Load บน CPU ขณะ Render Windows บน Desktop

2. ลดจำนวน Desktops (Spaces)

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

การมีหลาย Desktops พร้อมแอปต่างๆ อาจทำให้คุณเป็น Productivity Maestro แต่ถ้าคุณมีหลาย Desktops อาจลืมบาง Desktop ไปได้

เพราะนี้ WindowServer ต้อง Paint Windows เพิ่มเติมที่คุณไม่ได้ใช้ เพิ่ม Load ให้ Process WindowServer

เพื่อแก้ปัญหานี้ ให้เปิด Mission Control โดยกด F3 และ Hover Cursor บน Desktop ที่ไม่ค่อยใช้ จะมีไอคอน "x" ปรากฏ คลิกเพื่อปิด Desktop นั้น

3. ลด Motion และ Transparency

แอปบน Mac มีพื้นหลังโปร่งใส ทำให้ดูสวยงาม แต่ต้องแลกมาด้วย CPU Cycles เพิ่มเติม

ดังนั้น การลด Transparency ของแอปสามารถทำให้ CPU Usage ของ WindowServer ลดลง

เพื่อลด Transparency และ Motion บน Mac ทำตามขั้นตอน:

  1. เปิด System Settings โดยเปิด Spotlight ด้วย Command + Space หรือเปิดจาก Dock
    ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น
  2. คลิก Accessibility > Display และเปิด Toggle Reduce motion และ Reduce transparency
    ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

4. ปิด Separate Spaces สำหรับ External Displays

การต่อ External Displays เพิ่มประสิทธิภาพการทำงานได้มาก แต่แลกมาด้วย CPU Cycles เพิ่มเติม

จำไว้ว่า External Monitor ยังพึ่งพา CPU ของ Mac ในการ Output Display ดังนั้น Windows ทั้งหมดบน External Monitor ต้องถูก Draw โดย WindowServer บน Mac

ดังนั้น การมี External Monitor ใส่ Load มากให้ระบบ เพิ่มเติม การมี Separate Spaces สำหรับ External Display เพิ่ม Load อีก เพราะต้อง Manage และ Render Desktops ใหม่

เพื่อลด Load บน CPU เมื่อต่อ External Monitors ทำตามขั้นตอน:

  1. ไป System Settings บน Mac จาก Dock หรือ Spotlight Search
  2. คลิก Desktop & Dock และปิด Toggle Displays have separate Spaces
    ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

คุณต้อง Log Out และ Log In ใหม่ เพื่อให้การเปลี่ยนแปลงมีผล

5. ลบแอปที่มีปัญหาออกจาก Mac

หาก CPU Usage ของ WindowServer เพิ่มขึ้นเมื่อคุณเปิดแอปบางตัว แอปที่มี Bug อาจเป็นตัวทำให้เกิดปัญหาทั้งหมด

ดังนั้น หากคิดว่าแอปบางตัวเพิ่ม CPU Load ให้ลบมัน หรือติดต่อ Developer เพื่อหาวิธีแก้

6. ตรวจสอบ Updates

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

การใช้ macOS เวอร์ชันเก่า ทำให้เกิดปหลายปัญหา บางกรณีอาจทำให้ WindowServer ใช้ CPU Cycles สูงขึ้น

เพื่อแก้ไข ให้ไปที่ System Settings > General > Software Update

7. Restart Mac ของคุณ

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

ผู้ใช้ Mac นادر Restart ระบบ เพราะมันทำงานได้ดีโดยไม่ต้อง Restart แตการ Restart เป็นความคิดดี หาก WindowServer ใช้ Computing Power มาก

การทำอย่างนี้ Restart ทุก Memory Systems บน Mac และลบ Issues ที่อาจ Hog CPU หรือ Memory Systems

เพื่อ Restart Mac ให้คลิก Apple Menu และเลือก Restart จาก Dropdown หรือกดค้าง Power Button

อย่างไรก็ตาม หาก Mac ค้างจาก CPU Usage สูง สามารถใช้ Advanced Ways เพื่อ Restart หรือ Force Shut Down ได้

8. ตรวจสอบว่าแอปบน Mac อัปเดตแล้วหรือยัง

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

บ่อยครั้งที่มีแอปเก่าบน Mac ทำให้เกิดปัญหากับ WindowServer เพราะแอปเก่าไม่สามารถสื่อสารกับ macOS เวอร์ชันใหม่ได้ถูกต้อง

ดังนั้น คุณสามารถไป App Store > Updates > Update All เพื่ออัปเดตแอปพลิเคชัน หากคุณใช้ Homebrew ให้พิมพ์คำสั่งนี้ใน Terminal:

brew update

9. ปิด ProMotion บน Mac

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

Image Credit: Apple

หากคุณมี Mac ที่มีหน้าจอ ProMotion เช่น MacBook Pro 14 หรือ 16 นิ้ว การปิด ProMotion และลด Refresh Rate อาจลด CPU Usage ของ WindowServer

วิธีทำ: ไป System Preferences > Displays > Refresh Rate แล้วเลือก Refresh Rate ที่ต้องการ

10. ลบ Cache บน Mac

ลดภาระ CPU ของ Mac: แก้ WindowServer ใช้ทรัพยากรมากเกินไป เพื่อประสิทธิภาพที่ราบรื่น

ทุกแอปบนระบบสร้าง Temporary Data เพื่อทำงานถูกต้อง ไฟล์เหล่านี้เรียกว่า Cache Files แม้จะทำให้แอปทำงานได้ แต่มันก็อาจทำให้ระบบ Malfunction

ในกรณีนี้ ไฟล์เหล่านี้อาจเพิ่ม CPU Usage ของ WindowServer บน Mac

เพื่อลบไฟล์เหล่านี้ ให้เปิด Finder คลิก Go บน Menu Bar กดค้าง Option และคลิก Library ใน Dropdown Menu แล้วเปิดโฟลเดอร์ Caches และลบไฟล์ทั้งหมดที่นี่

11. รีเซ็ต SMC บน Mac

System Management Controller (SMC) จัดการ Low-level Functionalities ที่เกี่ยวกับ Mac หนึ่งในงานคือจัดการ Display เมื่อคุณยกฝาเปิด

ดังนั้น ปัญหาใน SMC อาจทำให้ CPU Usage สูงของ WindowServer บน Mac จึงอ่านคู่มือเฉพาะของเราเกี่ยวกับการ Reset SMC บน Mac

Mac ยังช้าอยู่หรือไม่?

แม้ WindowServer อาจทำให้ Mac ช้า แต่อาจมีหลายเหตุผลอื่นที่ระบบไม่ส่งมอบ Performance เหมือนเดิม

เพื่อปรับปรุง Performance คุณอาจดูที่ Storage Systems หรือซื้อ Mac ใหม่ หากใช้เครื่องปัจจุบันมาหลายปีแล้ว