ในกล่องเรามีหน่วยความจำ 38 GB หลังจากฉันตั้งจำนวนหน้าขนาดใหญ่ (2048k) เป็น 17290 ฉันพบว่ามีการใช้หน่วยความจำเกือบทั้งหมด แต่ฉันไม่ได้ทำกระบวนการใด ๆ มันจะเป็นอย่างไร ฉันควรตั้งค่าหน้าเว็บขนาดใหญ่จำนวนเท่าใด
ในกล่องเรามีหน่วยความจำ 38 GB หลังจากฉันตั้งจำนวนหน้าขนาดใหญ่ (2048k) เป็น 17290 ฉันพบว่ามีการใช้หน่วยความจำเกือบทั้งหมด แต่ฉันไม่ได้ทำกระบวนการใด ๆ มันจะเป็นอย่างไร ฉันควรตั้งค่าหน้าเว็บขนาดใหญ่จำนวนเท่าใด
คำตอบ:
คุณสงวนหน่วยความจำเกือบทั้งหมดไว้สำหรับหน้าเว็บขนาดใหญ่ ที่เหลือเกือบจะไม่มีหน่วยความจำในการจัดเก็บข้อมูลจริง ขนาดที่แนะนำคือประมาณ 1 ใน 1,000 ของขนาดที่คุณตั้งไว้
คำถามนี้เก่า แต่ฉันคิดว่าคำตอบอื่น ๆ ผิด ขึ้นอยู่กับว่ามีการจัดสรรหน้าเว็บขนาดใหญ่อย่างไรถ้าทำอย่างถูกต้องในเวลานั้นโดยใช้
echo 17290 > /proc/sys/vm/nr_hugepages
หรืออะไรทำนองนั้นสิ่งที่เห็นคือพฤติกรรมที่ตั้งใจและเป็นเอกสาร เป็นเรื่องปกติที่จะสำรองจำนวนหน้าขนาดใหญ่ที่คิดว่าเป็นสิ่งจำเป็นสำหรับเวิร์กโหลดและหน่วยความจำว่างเกือบทั้งหมดหายไปในสถานการณ์ที่อธิบายไว้เป็นไปตามที่คาดไว้เช่นกัน:
เพจที่ใช้เป็นเพจขนาดใหญ่ถูกสงวนไว้ภายในเคอร์เนลและไม่สามารถใช้เพื่อวัตถุประสงค์อื่น ไม่สามารถสลับหน้าขนาดใหญ่ได้ภายใต้ความกดดันของหน่วยความจำ
https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt
คนอื่นทำสิ่งเดียวกัน:
ตั้งค่าพารามิเตอร์เคอร์เนล vm.nr_hugepages เป็นค่าที่เหมาะสม ในกรณีนี้เราตัดสินใจใช้ 12GB และตั้งค่าพารามิเตอร์เป็น 6144 (6144 * 2M = 12GB) คุณสามารถเรียกใช้: echo 6144> / proc / sys / vm / nr_hugepages
https://blog.pythian.com/performance-tuning-hugepages-in-linux/