Mac OS X Mavericks หยุดทำงานหยุดตอบสนองเมื่อหน่วยความจำไม่เพียงพอ


9

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

ฉันสามารถใช้คอมพิวเตอร์ได้หากฉันลงชื่อเข้าใช้จากคอมพิวเตอร์เครื่องอื่นโดยใช้ SSH หรือใช้รีโมทจากโทรศัพท์ของฉัน (ฉันใช้ Rowmote) มันช้ามากแม้ว่า - แต่มันจะตอบสนอง

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

นี่คือ/var/log/system.logผลลัพธ์ที่เกี่ยวข้องจากช่วงเวลาที่เกิดขึ้น:

Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:28 knifen.local WindowServer[119]: BUG in libdispatch: 13A603 - 2930 - 0x1000480c
Jan  3 10:39:51 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:40:50 knifen.local Spotify[13941]: Got disconnected: Error Domain=GCDAsyncSocketErrorDomain Code=4 "Read operation timed out" UserInfo=0xfa075f0 {NSLocalizedDescription=Read operation timed out}
Jan  3 10:40:55 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:41:50 knifen.local hidd[95]: IOHIDEventQueue unable to get policy for event of type 11. (e00002e8)
Jan  3 10:41:56 --- last message repeated 113 times ---

ฉันไม่ได้สงสัยอะไรเลยที่นี่ถ้าคุณมีเคล็ดลับฉันเดาว่าคงจะดี ดูเหมือนว่าจะเป็นวิศวกรรมที่ไม่ดีในส่วนของ Apple

คำตอบ:


4

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

Mavericks มีโอกาสน้อยที่จะจัดสรร RAM เต็มจำนวนให้กับ / var / db / sleepimage ดังนั้นผู้คนที่เคยมีพื้นที่ที่จัดสรรไว้ล่วงหน้าสามารถวิ่งไปสู่ความประหลาดใจได้เมื่อระบบปฏิบัติการต้องการพื้นที่เล็ก ๆ ในการเติบโตอิมเมจหากเงื่อนไขการปฏิบัติการกำหนด

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

นี่คือคำแนะนำของฉัน:

  • มาตรวัด "ความดันหน่วยความจำ" ของ Mavericks และโยเซมิตีมีขนาดเท่าไหร่? มีข้อมูลที่ดีเกี่ยวกับการตรวจสอบและทำให้เกิดความกดดันในหน่วยความจำคำสั่ง
  • บูตระบบของคุณลงชื่อเข้าใช้ผู้ใช้รายหนึ่งออกจากแอปพลิเคชันทั้งหมด
  • เปิดกิจกรรมการตรวจสอบและสังเกต / บันทึกหน้าจอหน่วยความจำ
  • ให้เครื่องเข้าสู่โหมดพักเครื่องและปลุก 30 วินาทีในภายหลัง
  • เรียกใช้sudo du -sm /var/vm/*และสังเกตว่าไฟล์อิมเมจสลีปของคุณมีขนาดใหญ่เท่าไรและมีการสร้างไฟล์สลับใด ๆ บนดิสก์

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

นอกจากนี้ถ้าคุณรู้สึกว่าการปรับแต่งระบบไม่ถูกต้องคุณได้อย่างง่ายดายยื่นรายงานข้อผิดพลาดโดยการทำงานsysdiagnoseหลังจากคลีนบูตตามที่อธิบายไว้ข้างต้นอีกครั้งเมื่อระบบทำงานภาระงานที่ตั้งใจไว้อย่างถูกต้องและคนสุดท้ายที่sydiagnoseวิ่งเมื่อคุณได้ก่อให้เกิดความทรงจำ การจัดสรรเพื่อเริ่มต้นทำลายระบบ มีความเป็นไปได้ที่จะมีทางเลือกที่ดีกว่าที่ Apple สามารถทำได้ แต่อาจเป็นเพราะซอฟต์แวร์ของคุณมีหน่วยความจำแบบ buggy / leaking และระบบหยุดทำงานตามที่ตั้งใจไว้เมื่อทรัพยากรที่ จำกัด ได้หมดลงแล้ว ไม่มีรายละเอียดเพิ่มเติมมันยากที่จะบอกว่าเป็นกรณีใด


2

"shmem" เป็นหน่วยความจำที่แชร์และ OS X ไม่สามารถจัดสรรหน่วยความจำที่แชร์ได้ ดังนั้นจึงดูเหมือนว่าคอมพิวเตอร์มีหน่วยความจำไม่เพียงพอทั้ง RAM และหน่วยความจำฮาร์ดไดรฟ์ เป็นกรณีนี้หรือไม่? ในช่วงเวลาของการแช่แข็งดูเหมือนว่าจะเหลือพื้นที่ว่างประมาณ 1GB

  • เพิ่มพื้นที่ว่างในดิสก์โดยการลบไฟล์
  • เพิ่มหน่วยความจำด้วยการปิดแอปพลิเคชัน

ในกรณีพิเศษนี้บันทึกในภายหลังระบุว่า Spotlight พยายามทำดัชนีปริมาณสปรูเบิลเดอร์เบิลที่ประกอบเข้าด้วยกันส่งผลให้ดิสก์สำรองข้อมูลหมดพื้นที่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.