เคอร์เนล Linux ไม่สามารถจัดการกับสถานการณ์หน่วยความจำไม่เพียงพอได้อย่างสวยงาม

ในรายชื่อผู้รับจดหมายของนักพัฒนาเคอร์เนล Linux ที่ยกขึ้น ปัญหาในการจัดการสถานการณ์หน่วยความจำเหลือน้อยใน Linux:

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

ขั้นตอน:

  • บูตด้วยพารามิเตอร์ “mem=4G”
  • ปิดการสนับสนุนการแลกเปลี่ยน (sudo swapoff -a)
  • เราเปิดตัวเว็บเบราว์เซอร์ใดก็ตาม เช่น Chrome/Chromium และ/หรือ Firefox
  • เราเริ่มเปิดแท็บพร้อมไซต์และดูว่าจำนวนหน่วยความจำว่างลดลงอย่างไร

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

วิกฤตเล็กๆ น้อยๆ นี้อาจกินเวลาไม่กี่นาทีหรือนานกว่านั้นก็ได้ ฉันเดาว่าระบบไม่ควรทำงานในลักษณะนี้ ฉันคิดว่าต้องทำอะไรบางอย่างเพื่อหลีกเลี่ยง "การค้าง" ดังกล่าว

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

В ความคิดเห็น บน Reddit ผู้ใช้บางคนแนะนำให้เปิดใช้งานการแลกเปลี่ยน แต่วิธีนี้ไม่สามารถแก้ปัญหาได้ แต่จะเลื่อนออกไปและมักจะทำให้แย่ลงเท่านั้น วิธีแก้ปัญหาที่เป็นไปได้ในอนาคต อาจเกี่ยวข้องกับเคอร์เนลที่ปรากฏในเคอร์เนล 4.20 และปรับปรุงในส่วนแกนกลาง 5.2 ระบบย่อย PSI (Pressure Stall Information) ซึ่งช่วยให้คุณวิเคราะห์ข้อมูลเกี่ยวกับเวลารอในการรับทรัพยากรต่างๆ (CPU, หน่วยความจำ, I/O) ระบบย่อยนี้ทำให้สามารถจัดระเบียบการตรวจสอบการขาดแคลนหน่วยความจำในระยะเริ่มต้น ระบุแหล่งที่มาของปัญหา และยุติแอปพลิเคชันที่ไม่สำคัญโดยไม่ก่อให้เกิดผลกระทบที่ผู้ใช้สังเกตเห็นได้

ที่มา: opennet.ru

เพิ่มความคิดเห็น