ฉันมีปัญหาที่แปลกมากซึ่งฉันมีปัญหาในการวินิจฉัยสาเหตุที่แท้จริง
ฉันมีMac Pro (2008, 8-core 2.8 GHz, 8800GT) พร้อม RAM ขนาด 14 GB (อัปเกรดเมื่อเร็ว ๆ นี้เนื่องจากปัญหานี้!)
เมื่อฉันบูตระบบและล็อกอิน vm_stat / top / Activity Monitor จะแสดงว่า kernel_task มีการจัดสรรประมาณ 150 MB และเครื่องมีหน่วยความจำแบบใช้สายประมาณ 800 MB
แม้ในตอนแรก 800 MB ดูเหมือนว่าจะมีการจัดสรรหน่วยความจำแบบใช้สายจำนวนมากโดยไม่มีแอปพลิเคชั่นทำงาน แต่มันก็แย่ลง (หมายเหตุ: สายถูกล็อคหน่วยความจำที่ไม่สามารถใช้งานได้)
หลังจากช่วงเวลาสั้น ๆ บางครั้งถูกทริกเกอร์โดยบางสิ่งที่ง่ายพอ ๆ กับการเปิดตัวเทอร์มินัล kernel_task จะส่งไปยังหน่วยความจำจริง (RSIZE) 8-900 MB และหน่วยความจำแบบใช้สายจะเร่งความเร็วไปที่ 1.6 GB RAM แบบมีสายในเคอร์เนล)
หากฉันออกจากทุกอย่าง (IE: ไม่มีแอปพลิเคชันที่กำลังทำงานอยู่ให้ตรวจสอบกิจกรรมหรือเทอร์มินัลเพื่อดูด้านบน) ไม่มีการลดลงอย่างเห็นได้ชัดใน kernel_task RSIZE หรือการใช้หน่วยความจำแบบมีสาย การไปในทางตรงกันข้ามและการโหลดระบบพร้อมงานก็แสดงให้เห็นว่าหน่วยความจำแบบใช้สายไม่ได้ลดลง - และที่สำคัญคือไม่ลดลงในการเลือกการแลกเปลี่ยนที่หนักหน่วง
หากฉันออกจากระบบและกลับเข้าสู่ระบบอีกครั้งจะลดลงเล็กน้อย (450 MB kernel_task, 1.28 GB Wired) แต่ไม่กลับสู่จุดเริ่มต้น
ฉันไม่ได้เรียกใช้kextแปลกประหลาดใด ๆ- และยิ่งกว่านั้น kextstat แสดงให้เห็นว่าไม่มีการจัดสรรหน่วยความจำขนาดใหญ่ที่นั่น; com.apple.nvidia.nv50hal ที่ใหญ่ที่สุดคือหน่วยความจำประมาณ 4 MB
เครื่องรู้สึกโดยรวมซบเซามากขึ้นเมื่อสิ่งนี้เกิดขึ้น - ไม่น่าแปลกใจเพราะ RAM จำนวนมากดังกล่าวถูกทำเครื่องหมายว่าไม่สามารถเพจได้
ดังนั้นฉันมีคำถามสองสามข้อ:
1) มีวิธีที่ดีในการวิเคราะห์สิ่งที่จัดสรรหน่วยความจำแบบมีสายทั้งหมดนี้หรือไม่? บ่อยครั้งกว่าขนาด kernel_task 2 เท่าโดยไม่เรียกใช้แอปพลิเคชัน ยอดรวมหน่วยความจำที่แท้จริงดูเหมือนจะไม่เพิ่มขึ้น - ดูเหมือนว่ามี RAM จำนวนมากที่ไม่ได้ถูกคิดรวมอยู่ที่ใด
2) เกิดอะไรขึ้นที่จะทำให้เคอร์เนลต้องการหน่วยความจำมากถึง 6 เท่า?