การเพิ่มจำนวนหน้าหน่วยความจำขนาดใหญ่หมดลง


1

ในกล่องเรามีหน่วยความจำ 38 GB หลังจากฉันตั้งจำนวนหน้าขนาดใหญ่ (2048k) เป็น 17290 ฉันพบว่ามีการใช้หน่วยความจำเกือบทั้งหมด แต่ฉันไม่ได้ทำกระบวนการใด ๆ มันจะเป็นอย่างไร ฉันควรตั้งค่าหน้าเว็บขนาดใหญ่จำนวนเท่าใด

คำตอบ:


1

คุณสงวนหน่วยความจำเกือบทั้งหมดไว้สำหรับหน้าเว็บขนาดใหญ่ ที่เหลือเกือบจะไม่มีหน่วยความจำในการจัดเก็บข้อมูลจริง ขนาดที่แนะนำคือประมาณ 1 ใน 1,000 ของขนาดที่คุณตั้งไว้


แอ็พพลิเคชัน java ของฉันที่ใช้ใกล้ 35G และใช้ LargePages (-XX: + UseLargePages) ดังนั้นฉันเดาว่าพื้นที่ทั้งหมดของหน้าเว็บขนาดใหญ่ควรอยู่ใกล้ 35G
user710818

@ user710818 "จำนวนหน้าขนาดใหญ่" ที่คุณตั้งค่าไม่เกี่ยวข้องกับจำนวนหน้าขนาดใหญ่ที่แอปพลิเคชันใช้ มันเกี่ยวกับจำนวน TLB เพจขนาดใหญ่ที่ใช้โดยระบบปฏิบัติการ
David Schwartz

ดังนั้นควรเป็น 17 หน้าเท่านั้น
user710818

นั่นคือคำแนะนำ
David Schwartz

Downvote เพราะฉันคิดว่าคำตอบนี้ผิดและสิ่งที่เห็นก็เป็นไปตามที่คาดไว้: superuser.com/a/1327823/308859
Thorsten Schöning

0

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

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/

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