รายงานเรื่อง Mac ค้างหลังตื่นมักรวมความล้มเหลวสามอย่างไว้ในข้อร้องเรียนเดียว ตัวชี้ยังขยับได้ขณะที่ไคลเอนต์ VPN ไม่สนใจการคลิก ไคลเอนต์อาจทำงานขณะที่เซสชันระยะไกลหนึ่งรายการหมดอายุ หรือทั้งเดสก์ท็อปอาจหยุดรับอินพุต แต่ละกรณีต้องใช้หลักฐานต่างกัน และนาทีแรกหลังค้างเป็นตัวตัดสินว่าคุณกำลังดูกรณีใด การเดาผิดทำให้ทุกขั้นตอนถัดไปไปผิดทาง

อะไรหยุดตอบสนอง และอะไรแค่หยุดรอ

เริ่มจากการทดสอบที่ถูกที่สุด ขยับตัวชี้และพิมพ์ในช่องข้อความภายในเครื่อง เปิดมุมมองสถานะของไคลเอนต์เองแล้วอ่านสถานะที่มันรายงาน จากนั้นเริ่มการทำงานใหม่ในแอปส่วนตัวแทนการกลับไปใช้เซสชันที่เปิดอยู่แล้ว เขียนคำตอบทั้งสามลงก่อนแตะอย่างอื่น เพราะลำดับของสิ่งที่ล้มเหลวคือรายละเอียดแรกที่คนมักลืม

ผลลัพธ์แต่ละแบบชี้ไปคนละที่ เซสชันเดียวที่ติดค้างวางหลักฐานไว้อีกฟากของอุโมงค์ และ Mac เป็นเพียงผู้สังเกต ไคลเอนต์ที่ไม่สนใจการคลิกขณะเดสก์ท็อปยังทำงานอยู่ทำให้การค้นแคบลงเหลือกระบวนการนั้นกับบันทึกของมัน เครื่องที่ไม่สนใจตัวชี้ตัดทางเลือกในการรันสิ่งใด ๆ ออกไป เพราะทุกคำสั่งตรวจสอบต้องมีเชลล์ที่ตอบสนอง

แยกสามกรณีออกจากกันแม้ผู้ใช้จะเล่าในประโยคเดียว รายงานที่คุณส่งต้องบอกว่าการทดสอบใดล้มเหลวก่อนและอันใดยังผ่าน ไม่ใช่บอกว่าเครื่องค้าง ความต่างนี้เองที่ทำให้วิศวกรสนับสนุนตัดสินได้ว่าจะดูเครือข่าย ไคลเอนต์ หรือฮาร์ดแวร์

ไทม์ไลน์ที่คุณยังปกป้องได้ในวันพรุ่งนี้

นาฬิกาคือส่วนของบันทึกที่สร้างใหม่ภายหลังไม่ได้ บันทึกว่าเปิดฝาเมื่อไรหรือเครื่องตื่นเมื่อไร การกระทำที่ล้มเหลวครั้งแรกเกิดเมื่อไร และสองช่วงเวลานั้นห่างกันไม่กี่วินาทีหรือไม่กี่นาที จากนั้นเขียนว่า Mac นอนหลับจริงหรือเพียงล็อกหน้าจอ เพราะเป็นคนละสถานะและมีเส้นทางตื่นต่างกัน บันทึกการหลับคือส่วนเดียวของไทม์ไลน์นั้นที่คุณตรวจย้อนหลังได้

pmset -g log | grep -i -E 'wake|sleep'
log show --last 15m --predicate 'process == "<client-process>"' --style compact

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

เลือกการเก็บภาพที่ตรงกับอาการ

Apple อธิบายการเก็บภาพสามแบบไว้ในคู่มือวินิจฉัยของ Activity Monitor และแต่ละแบบตอบคำถามต่างกัน Sample Process เฝ้าดูกระบวนการที่เลือกหนึ่งรายการเป็นเวลาสามวินาที spindump มุ่งเป้าไปที่แอปที่หยุดตอบสนองและกำลังจะถูกบังคับปิด และ System Diagnostics รวบรวมบันทึกของระบบไว้ในชุดเดียว

เลือกตามสิ่งที่คุณสังเกต ไม่ใช่ตามความเคยชิน ไคลเอนต์ที่ทำงานแต่ประพฤติไม่ดีได้ sample ซึ่งเก็บด้วย sample <pid> 3 -file ~/Desktop/sample.txt หรือจากเมนูเฟือง แอปที่หมุนวนไม่รู้จบและต้องฆ่าได้รายการ Spindump จากเมนูเดียวกัน ปัญหาที่ครอบคลุมทั้งไคลเอนต์และระบบได้ sudo sysdiagnose -f ~/Desktop เก็บ sample ก่อนบังคับปิดเมื่อทำได้ เพราะการยุติทำลายสถานะที่คุณต้องการตรวจสอบพอดี และตั้งชื่อไฟล์ตามเหตุการณ์และเวลา ไม่ใช่ตามการเดาสาเหตุของคุณ

ถือว่าทุกชุดข้อมูลอ่อนไหว รายงานเหล่านี้มีชื่อบัญชี ชื่อโฮสต์ เส้นทาง และรายละเอียดเครือข่าย จึงส่งผ่านช่องทางสนับสนุนที่องค์กรคุณใช้ แทนการแนบไปยังกระทู้สาธารณะ ถ้าต้องตัดทอนรายงาน ให้ตัดจากสำเนาและเก็บต้นฉบับไว้ครบถ้วน

เมื่อตัวชี้เองไม่ขยับ

อินเทอร์เฟซที่ตายแล้วเปลี่ยนลำดับการทำงาน คุณเก็บ sample ของกระบวนการหรือรันคำค้นจากเชลล์ที่ไม่ตอบสนองไม่ได้ ดังนั้นเป้าหมายแรกคือการกู้คืน และเป้าหมายที่สองคือบันทึก การรีสตาร์ตแบบบังคับบางครั้งเป็นทางออกเดียว และยังเป็นช่วงเวลาที่รายละเอียดที่มีประโยชน์ที่สุดหายไป บันทึกเวลา หน้าต่างที่เปิดอยู่ และเมนูเครือข่ายแสดงการเชื่อมต่อหรือไม่ก่อนรีสตาร์ต เพราะการสังเกตเหล่านั้นอยู่รอดข้ามการรีบูต แม้สถานะของกระบวนการจะไม่รอด

เมื่อเครื่องกลับมา อย่าด่วนสรุปว่าการรีสตาร์ตพบตัวการ มันคืนบริการและไม่ได้ระบุสิ่งใด เฉพาะการทำซ้ำด้วยการเปลี่ยนแปลงที่ควบคุมได้หนึ่งอย่างเท่านั้นที่ชี้ไปยังองค์ประกอบได้

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

ส่งต่อเหตุการณ์หนึ่งเหตุการณ์ ไม่ใช่อารมณ์

การส่งต่อที่ทำให้เกิดการลงมือระบุสี่อย่าง อะไรหยุดตอบสนอง เกิดขึ้นเมื่อไร เครือข่ายเป็นอย่างไรในขณะนั้น และการเก็บภาพใดครอบคลุมช่วงเวลานั้น เพิ่มเวอร์ชันไคลเอนต์และบิลด์ของ macOS แล้วหยุด ทั้งทีมแพลตฟอร์มและผู้จำหน่ายไคลเอนต์ลงมือจากประโยคนั้นได้ และไม่มีฝ่ายใดลงมือจากคำบรรยายความหงุดหงิดได้ เก็บบันทึกไว้ที่เดียวและต่อเติมเข้าไปแทนการเล่าเรื่องใหม่ทุกครั้ง ถ้าอัปเดตเปลี่ยนพฤติกรรม ให้ระบุว่าเป็นตัวไหน เพราะนั่นก็เป็นหลักฐาน

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

ก่อนปิดตั๋ว ตรวจสามอย่าง ตราเวลามาจากบันทึกการหลับไม่ใช่จากความจำ การเก็บภาพตรงกับอาการที่คุณเห็นจริง และชุดข้อมูลอยู่ในตำแหน่งที่อนุมัติ ถ้าขาดอย่างใดอย่างหนึ่งในสาม รายงานยังไม่พร้อมส่ง

บทความที่เกี่ยวข้อง