5 คะแนน โดย GN⁺ 2025-08-01 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • MacBook Pro Silicon M1 Max พบปรากฏการณ์ แบตเตอรี่ลดลงตลอดคืน
  • พยายามวิเคราะห์ ล็อกการจัดการพลังงาน ด้วยตนเอง แต่ขีดจำกัดทำให้หาสาเหตุไม่ได้
  • ใช้ แอปเฉพาะ Sleep Aid เพื่อดู เหตุการณ์ Wake (wake event) แบบภาพได้
  • ในการตั้งค่า Sleep Aid พบว่าออปชัน "Wake for maintenance (เปิดตื่นเพื่อการบำรุงรักษา)" ถูกปิดใช้งาน และเป็นสาเหตุ
  • เมื่อเปิดใช้งานตัวเลือกนี้อีกครั้ง หลังจากนั้นปัญหาการลดแบตเตอรี่ทั้งคืน หายไป

ประสบการณ์ปัญหาการใช้แบตเตอรี่ตลอดคืนบน MacBook Pro

  • มีประสบการณ์ใช้งาน MacBook Pro Silicon M1 Max มาหลายปี
  • ช่วงล่าสุดพบอาการที่เมื่อวางโน๊ตบุ๊กไว้โดยไม่ต่อไฟแล้วแบตเตอรี่ ลดลงอย่างมากตลอดคืน โดยไม่คาดคิด
  • อาการรุนแรงขึ้นเรื่อยๆ จนต้องเริ่ม วิเคราะห์หาสาเหตุ ด้วยตัวเอง

พยายามวิเคราะห์ล็อกการจัดการพลังงาน

  • สามารถตรวจสอบ ล็อกที่เกี่ยวข้องกับพลังงาน ได้ผ่านคำสั่งเทอร์มินัลของ macOS pmset -g log
  • เนื่องจากผลลัพธ์ของล็อกมีขนาดใหญ่และตีความยาก จึงใช้เครื่องมือเรียบง่ายที่พัฒนาขึ้นเองชื่อ pmset-analyzer เพื่อช่วยวิเคราะห์ล็อก
  • อย่างไรก็ตาม เครื่องมือนี้ช่วยแก้ปัญหาเชิงปฏิบัติได้ไม่มาก

การปรับค่าเชิงละเอียดและการสืบค้นเพิ่มเติม

  • ทดลองปรับ การตั้งค่าการจัดการพลังงาน ทีละอย่างตามเอกสารทางการและชุมชน เช่น tcpkeepalive
  • การเปลี่ยนแปลงการตั้งค่าเพียงอย่างเดียวไม่สามารถให้ผลในการ แก้ปัญหา อย่างมีนัยสำคัญ

แก้ปัญหาด้วยแอป Sleep Aid

  • ในระหว่างการสืบค้นเพิ่มเติม ได้รู้จักกับแอป Sleep Aid
    • แอปนี้แสดง wake event ในรูปแบบภาพ และมีอินเทอร์เฟซที่ใช้งานง่ายในการเปลี่ยนการตั้งค่าจัดการพลังงานต่างๆ
  • จากการตรวจสอบใน Sleep Aid พบว่าออปชัน "Wake for maintenance (การปลุกเพื่อการบำรุงรักษา)" ถูกปิดใช้งาน
  • ตามคำอธิบายในแอป หากปิดการตั้งค่านี้อาจทำให้เกิด wake event บ่อยขึ้น
  • เปิดออปชันนี้อีกครั้ง และหลังจากนั้น อาการแบตเตอรี่ลดลงตลอดคืนหายไป

2 ความคิดเห็น

 
ahwjdekf 2025-08-02

พอเปิดโหมดพักเครื่องของ MacBook แล้วเข้านอน อยู่ ๆ ตอนตีมืดหน้าจอก็เปิดขึ้นมาจนทั้งห้องสว่างจ้า หลายครั้งสะดุ้งตื่นมาแล้วต้องปิดเครื่องไปเลย เรื่องนี้เป็นประเด็นถกเถียงกันมาตั้งแต่เมื่อไหร่ไม่รู้ แต่จนถึงตอนนี้ก็ยัง...

 
GN⁺ 2025-08-01
ความคิดเห็นจาก Hacker News
  • นี่เป็นอีกหนึ่งทิปที่มีประโยชน์ ใน Activity Monitor ให้เปิดแท็บ Energy แล้วจัดเรียงตามคอลัมน์ "Preventing sleep" ก็จะดูได้ว่าแอปไหนกำลังขัดขวางไม่ให้ macOS เข้าสู่โหมดพักเครื่อง ในกรณีของฉันพบว่าแอป Devonthink เป็นสาเหตุ แต่ยังไม่ได้ส่งบั๊กรีพอร์ต สิ่งที่น่าแปลกคือระบบจัดการพลังงานของ Apple ไม่แจ้งผู้ใช้เกี่ยวกับปัญหาแบบนี้ ทั้งที่สถานการณ์ที่เครื่องร้อนจัดอยู่ในกระเป๋าและแบตหมดนั้นน่าจะเป็นปัญหาสำคัญ มากกว่าที่ Chrome จะคอยถามว่าจะอนุญาตให้ค้นหาอุปกรณ์เครือข่ายไหมเสียอีก
    • ที่น่าแปลกไม่ใช่แค่ Apple ไม่เตือนเรื่องนี้ แต่ยิ่งน่าแปลกกว่าคือแม้ปิดฝาแล้ว แอปบางตัวก็ยังกันไม่ให้ระบบพักเครื่องได้ สำหรับบางกรณีอย่างโปรแกรมเล่นวิดีโอ ฉันพอเข้าใจว่าบางครั้งต้องมีการกัน sleep แบบอิง timeout แต่การที่แอปจะตัดสินใจไม่ให้ระบบพักเครื่องเมื่อปิดฝาหรือกดปุ่ม sleep นั้นแทบไม่มีตัวอย่างที่เป็นประโยชน์จริง สุดท้ายส่วนใหญ่มีแต่เพิ่มโอกาสให้ได้โน้ตบุ๊กที่ร้อนจัดอยู่ในเป้ อีกอย่างคือแค่หน้าเว็บหน้าเดียวก็ทำให้ระบบไม่ยอม sleep ได้ ทำให้หายากมากว่าใน 70 แท็บนั้นแท็บไหนเป็นตัวปัญหา น่าจะแยกสิทธิ์การกัน sleep แบบอิง timeout ออกจากสิทธิ์ที่เปลี่ยนพฤติกรรมแกนหลักอย่าง "ปิดฝาแล้วต้องหลับเสมอ" ให้ชัดเจน อนุญาตให้ใช้ timeout ได้ก็จริง แต่เรื่องอย่างการปิดฝาควรต้องแจ้งและขออนุญาตจากผู้ใช้เสมอ
    • ไม่เคยรู้มาก่อนว่าแอปไหนก็ได้สามารถกันไม่ให้ทั้งระบบพักเครื่องได้ สิทธิ์แบบนี้ควรอยู่ภายใต้การควบคุมของผู้ใช้ อย่างน้อยนักพัฒนาที่จะเรียกใช้ API แบบนี้ก็น่าจะต้องมี entitlement ไม่ใช่หรือ
    • ถ้าใช้ shell สามารถรันคำสั่ง pmset -g assertions เพื่อดูได้ว่าโปรเซสไหนกำลังกันไม่ให้ระบบพักเครื่อง และดูรายละเอียดของ power assertion ที่ค้างอยู่ได้ด้วย ใน pmset ยังมีคำสั่งที่ไม่มีในเอกสารทางการ ซึ่งดูได้จากซอร์สโค้ดที่ Apple เปิดเผยไว้ และยังมีคำสั่งที่ทำให้เพิกเฉยต่อ assertion บางตัวได้ด้วย เพียงแต่ถ้าปิด assertion แบบ "UserIsActive" คุณอาจลำบากตอนจะปลุกระบบขึ้นมาอีกครั้ง
    • ไม่รู้มาก่อนว่ามีฟีเจอร์แบบนี้ ขอบคุณมาก ช่วงนี้ฉันสงสัยว่าทำไมแบตของ MacBook ที่ไม่ค่อยได้ใช้ถึงลดลงเรื่อย ๆ สุดท้ายพบว่า Firefox เป็นตัวกัน sleep ไว้ น่าจะเป็นเพราะวิดีโอเล่นอัตโนมัติ ถึงจะไม่สมบูรณ์แบบแต่ก็เป็นปัญหาที่พอแก้ได้
    • ในอีกด้านหนึ่ง Safari กลับแจ้งเตือนให้ปิดเมื่อกำลังดู Netflix อยู่เพราะกินพลังงานมาก
  • ฉันก็เคยมีอาการคล้ายกันบน MacBook Pro ของตัวเอง เป็นรุ่นก่อน Apple Silicon ตอนนั้นฉันไปตั้งค่า DHCP lease time บนเราเตอร์ให้ต่ำกว่าค่าเริ่มต้นมาก เหลือ 15 นาที ฉันคิดว่า MacBook เลยตื่นขึ้นมาทุก 15 นาทีเพื่อรีเฟรช IP ทำให้อยู่ในสภาพหลับแป๊บเดียวแล้วตื่นซ้ำ ๆ พอเปลี่ยน lease time บนเราเตอร์กลับเป็นค่าเริ่มต้นเดิม ปัญหาแบตก็หายสนิท เดาสาเหตุนี้ได้ยากเหมือนกัน แต่บังเอิญเพิ่งซื้อ MacBook Pro เครื่องใหม่ตอนนั้น เลยใส่ใจกับปัญหาต่าง ๆ มากเป็นพิเศษจึงหาเจอเร็ว
    • DHCP client ที่ทำงานถูกต้องจะส่งคำขอต่ออายุเมื่อเวลาผ่านไป 50% ของ lease time ดังนั้นมีโอกาสสูงว่ามันตื่นบ่อยกว่าที่คิดเสียอีก
    • สงสัยว่าทำไมถึงตั้ง DHCP lease time เป็น 15 นาที อยากรู้ว่ามีจุดประสงค์อะไร
    • ฉันก็เพิ่งรู้เหมือนกันว่าเราเตอร์ mikrotik ที่ใช้อยู่ตั้งค่า lease period เริ่มต้นไว้แค่ 10 นาที
    • เรื่องนี้น่าทึ่งมาก อยากรู้ว่าการตื่นขึ้นมาหนึ่งครั้งเพื่อรีเฟรช IP ใช้พลังงานไปกี่ mAh กันแน่ เดาว่าน่าจะอยู่ระดับไม่กี่มิลลิแอมป์-มิลลิวินาที เพราะสุดท้ายก็แค่เปิด WiFi ชั่วคราวแล้วแลกเปลี่ยนแพ็กเก็ตไม่กี่ชุด แน่นอนว่านี่เป็นรุ่นก่อน Apple Silicon ดังนั้นจริง ๆ ตอนตื่นมันอาจทำอย่างอื่นเพิ่มด้วยก็ได้
    • ฉันคิดว่านี่เป็นบั๊กของ macOS ตอนอยู่ในโหมด sleep ก็ไม่จำเป็นต้องใช้ IP อยู่แล้ว ดังนั้นการตื่นขึ้นมาเพื่อต่ออายุ DHCP lease จึงผิดปกติ ระบบปฏิบัติการที่ไม่เปิดซอร์สมีปัญหาในจุดแบบนี้
  • ถ้าปิดตัวเลือก “Wake for maintenance” ไว้ Sleep Aid จะแจ้งในหน้าต่างตั้งค่าว่าเครื่องอาจตื่นบ่อยขึ้นเพราะสาเหตุนี้ เลยสงสัยว่าผู้เขียนอาจเขียนผิดหรือเปล่าว่า “ปิดตัวเลือกนี้ไว้”
    • ฉันก็คิดแบบเดียวกัน นี่เป็นแค่การคาดเดา แต่ถ้าปิดการตั้งค่านี้ เหตุการณ์ที่ปลุกเครื่องอาจไม่ถูกรวมเป็นรอบ ๆ ตามเวลาเพื่อประมวลผลทีเดียว แต่อาจกระจายเกิดหลายครั้งตลอดทั้งคืน ซึ่งดูเหมือนจะอธิบายอาการนี้ได้พอดี
    • สับสนเหมือนกัน เปิดตัวเลือกที่ไว้ปลุกคอมพิวเตอร์โดยตรงแล้วกลับทำให้จำนวนครั้งที่ตื่นน้อยลงจริงหรือ
    • ฉันก็งงเหมือนกัน ในภาพหน้าจอของผู้เขียนมันอยู่ในสถานะ Enable ซึ่งดูเหมือนเป็นค่าที่ "ปกติ" เลยไม่ค่อยเข้าใจตามสัญชาตญาณว่าทำไม Disabled ถึงทำให้เกิด Wake มากกว่า
    • คำอธิบายที่ขัดกับสามัญสำนึกแบบนี้ควรมีคำอธิบายเพิ่มเติม หรืออย่างน้อยควรระบุให้ชัดว่าเป็นกรณียกเว้น เรื่องแบบนี้แก้ยากมากตอนกลับมาแก้บทความทีหลัง
  • สำหรับ Mac แล็ปท็อปทุกเครื่องที่ฉันเคยใช้มา ฉันแก้ปัญหาด้วยการตั้งให้เข้า hibernate เสมอเวลาปิดฝา ตอนเปิดกลับมาใช้งานจะใช้เวลาฟื้นคืนประมาณ 20–30 วินาที แต่ฉันถือว่าเป็นราคาที่เล็กน้อยเมื่อเทียบกับการที่ไม่ต้องคอยกังวลเรื่อง sleep และแบตอีกมาก ในเทอร์มินัลใช้คำสั่งนี้ได้: sudo pmset -a hibernatemode 25 ถ้าจะเปลี่ยนกลับก็ใช้ sudo pmset -a hibernatemode 3
    • สงสัยว่าโหมด hibernate ทำงานร่วมกับ FDE (การเข้ารหัสดิสก์ทั้งลูก) ได้ดีแค่ไหน บน Linux มีข้อควรระวังด้านการเข้ารหัสหลายอย่างเวลาจะเขียนข้อมูลในหน่วยความจำลงดิสก์
    • ฉันคิดว่านี่คือวิธีที่ง่ายที่สุดในการตั้งค่าพฤติกรรมให้เป็นแบบที่คนส่วนใหญ่คาดหวัง
  • ฉันไล่ขุดปัญหาเรื่องการ sleep ของ Macbook มานานมาก แต่ต้นตอมาจาก WindowServer และดูเหมือนสุดท้ายจะต้องลง OS ใหม่ทั้งระบบ ไม่มีอะไรน่าหงุดหงิดไปกว่าการหยิบโน้ตบุ๊กที่ร้อนและแบตหมดออกมาจากกระเป๋าเดือนละครั้งหรือสองเดือนครั้ง แล้วเจอคนตอบกลับประมาณว่า "ฉันไม่เคยเจอแบบนั้นเลย หรือคุณใช้อะไรผิดหรือเปล่า"
  • รู้สึกว่า MacOS เหมือนอยู่ในโหมดบำรุงรักษามาเกือบ 10 ปีแล้ว คิดว่าการย้ายไป ARM/Mac Silicon คงเป็นงานใหญ่มาก อัปเดต AI ก็ชวนผิดหวัง และช่วงหลัง ๆ ก็เหมือนไม่มีการปรับปรุงที่จับต้องได้มากนัก เมื่อก่อนฉันเคยใช้ Intel Macbook Air ที่ปุ่มพาวเวอร์อยู่ติดกับปุ่ม backspace เลยไปหา script จากฟอรัม Mac มาใช้เพื่อให้ต้องกดค้างก่อนเครื่องจะดับ ไม่ใช่แตะครั้งเดียวแล้วดับ ปรากฏว่าในสคริปต์นั้นซ่อนโทรจันไว้ จนต้องรีเซ็ตเครื่องกลับโรงงานและลบ iCloud ทั้งหมด สคริปต์นั้นมี GUID ที่ดูเหมือนตัวแปรภายในอยู่ด้วย และว่ากันว่าสามารถดาวน์โหลด resource จากที่ไหนก็ไม่รู้ ตอนนั้นฉันนึกว่าเป็นแค่ตัวแปรภายในเฉย ๆ
  • เอกสารซัพพอร์ตอย่างเป็นทางการของ Apple ระบุว่าฟีเจอร์นี้ (ตัวเลือกพลังงาน) มีมาให้ในระบบอยู่แล้ว
    • บน M4 MacBook Air ที่ติดตั้ง macOS 26 DB ตำแหน่งนั้นไม่มี power nap แล้ว กลับกลายเป็น "Wake for network access" แทน และค่าเริ่มต้นคือ "Only on Power Adapter"
    • ฉันเคยเข้าใจผิดว่า power nap กับ "wake for network access" คืออย่างเดียวกัน ดูเหมือนว่าใน macOS 26 จะไม่มีตัวเลือกนี้แล้ว ตอนนี้เครื่องของฉันตั้งไว้เป็น "Only on Power Adapter" ซึ่งก็ดูสมเหตุสมผล อ้างอิงจาก M4 MacBook Air
  • ฉันเองก็เพิ่งเขียนบล็อกโพสต์ที่แทบเหมือนกันเมื่อสัปดาห์ก่อน น่าเสียดายที่ในกรณีของฉัน วิธีแก้นั้นไม่ได้ผล เพราะมีกระบวนการอื่นนอกเหนือจาก power nap ที่ยังคอยปลุกเครื่องอยู่ โพสต์ที่เกี่ยวข้อง: โพสต์จาก annoying.technology
  • แท็บ Energy ใน Activity Monitor มีประโยชน์มากในสถานการณ์แบบนี้ ดูได้ว่าแอปไหนกำลังกันไม่ให้ระบบ sleep แบบเต็มรูปแบบ และยังดูการใช้พลังงานของแต่ละโปรเซสย้อนหลัง 12 ชั่วโมงได้ด้วย ทำให้ไล่หาต้นตอได้ทันทีในตอนเช้า
  • ฉันเองก็เจอปัญหาคล้ายกันบน MacBook Pro (Apple Silicon) ถ้าปล่อยให้เครื่อง sleep ทั้งที่ยังต่อ SSD อยู่ ดูเหมือนระบบจะตื่นขึ้นมาเป็นระยะเพื่อปลุกไดรฟ์ ทำให้ทั้งโน้ตบุ๊กและ SSD ร้อนและแบตหมดเร็ว วิธีรับมือเดียวที่ได้ผลคือถอดไดรฟ์ภายนอกทั้งหมดก่อน sleep และเสียบชาร์จทิ้งไว้ เป็นบั๊กที่น่ารำคาญพอสมควร และทำให้รู้สึกว่าการควบคุมคุณภาพกับการทดสอบยังไม่ดีพอ