Score:0

เมื่อใดควรอัปเกรด RAM ตามเอาต์พุตฟรี

ธง cn

ฉันมีแอปพลิเคชันจาวาที่ทำงานบนเซิร์ฟเวอร์ Linux ที่มีหน่วยความจำกายภาพ (RAM) จัดสรรเป็น 12GB ซึ่งฉันจะเห็นการใช้งานปกติในช่วงระยะเวลาหนึ่งดังต่อไปนี้

sys> ฟรี -h
              รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
เมม: 11G 7.8G 1.6G 9.0M 2.2G 3.5G
สลับ: 0B 0B 0B

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

sys> ฟรี -h
              รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
เมม: 11G 11G 134M 17M 411M 240M
สลับ: 0B 0B 0B
sys> ฟรี -h
              รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
หน่วยความจำ: 11G 11G 145M 25M 373M 204M
สลับ: 0B 0B 0B

ฉันอ้างถึง https://www.linuxatemyram.com/ ที่มันแนะนำจุดด้านล่าง

สัญญาณเตือน ของสถานการณ์หน่วยความจำเหลือน้อยจริง ๆ ที่คุณอาจต้องการตรวจสอบ:

  • หน่วยความจำที่มีอยู่ (หรือ "ว่าง + บัฟเฟอร์/แคช") มีค่าใกล้เคียงกับศูนย์
  • swap ที่ใช้เพิ่มขึ้นหรือผันผวน
  • dmesg | grep oom-killer แสดง OutOfMemory-killer ในที่ทำงาน

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

คำถาม:

  1. ในกรณีที่มีค่าใกล้เป็น 0 ระบบจะล่มหรือไม่
  2. หมายความว่าฉันต้องอัปเกรด RAM เมื่อหน่วยความจำที่มีอยู่เหลือน้อยลงใช่หรือไม่
  3. หน่วยความจำ RAM ควรจัดสรร / เพิ่มบนพื้นฐานใด
  4. เรามีคำแนะนำ/แนวปฏิบัติอย่างเป็นทางการที่ต้องปฏิบัติตามสำหรับการจัดสรรหน่วยความจำ RAM หรือไม่
Nikita Kipriyanov avatar
za flag
คุณเห็น "หน่วยความจำที่มีอยู่น้อยกว่าศูนย์" ที่ไหน
br flag
คุณรีบูทเมื่อเร็ว ๆ นี้หรือไม่? บางครั้งแอปพลิเคชันจะยังคงใช้หน่วยความจำต่อไป แต่หากคุณรีสตาร์ท แอปพลิเคชันมักจะกลับไปใช้หน่วยความจำที่น้อยลง
Michael Hampton avatar
cz flag
ตามค่าเริ่มต้น Java จะไม่ปล่อยหน่วยความจำฮีปให้กับ OS ในกรณีส่วนใหญ่ แม้ว่าจะไม่ได้ใช้งานอีกต่อไปก็ตาม ก่อนที่คุณจะออกไปซื้อ RAM เพิ่ม ให้ทำโปรไฟล์แอปเพื่อดูว่าหน่วยความจำนั้นใช้ไปมากน้อยเพียงใด
ragul rangarajan avatar
cn flag
@NikitaKipriyanov อ้างถึงในบทความนี้ https://www.linuxatemyram.com/ ภายใต้หัวข้อ "ฉันควรเริ่มกังวลเมื่อใด"
ragul rangarajan avatar
cn flag
@ Chopper3 ไม่มีการรีบูต ฉันสังเกตเห็นว่าหน่วยความจำของคุณเหลือน้อยเมื่อรีสตาร์ทและเพิ่มขึ้นเรื่อย ๆ ในวันต่อ ๆ ไป หากแอปพลิเคชันจำเป็นต้องตอบสนองวัตถุประสงค์สำหรับลูกค้า การรีสตาร์ทแอปพลิเคชันจะนำไปสู่การหยุดทำงานซึ่งไม่ใช่กรณีที่ถูกต้องใช่ไหม
ragul rangarajan avatar
cn flag
@MichaelHampton โปรไฟล์ Hope ของแอปหมายถึงการจัดสรรฮีปสูงสุดสำหรับแอปพลิเคชันซึ่งกำหนดค่าเป็น 50% ของ RAM (6GB)
Score:1
ธง cn

สามารถรับคำตอบสำหรับคำถามของฉัน

ในกรณีที่มีค่าใกล้เป็น 0 ระบบจะล่มหรือไม่

จากการทดสอบในเซิร์ฟเวอร์เครื่องหนึ่งของฉัน ซึ่งฉันโหลดหน่วยความจำจนเกือบเต็มตามด้านล่าง

sys> ฟรี -h
              รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
เมม: 11G 11G 135M 25M 187M 45M
สลับ: 0B 0B 0B

สามารถดูแอปพลิเคชันของฉันคนเดียว (ซึ่งใช้หน่วยความจำมากกว่า) ถูกฆ่าโดย Out of memory killer ซึ่งสามารถอ้างอิงได้ในบันทึกเคอร์เนล

dmesg -e

[355623.918401] [21805] 553000 21805 69 21 2 0 0 ฿
[355623.921381] หน่วยความจำไม่พอ: ฆ่ากระบวนการ 11465 (java) ได้คะแนน 205 หรือสังเวยลูก
[355623.925379] กระบวนการที่ถูกฆ่า 11465 (java), UID 553000, total-vm:6372028kB, anon-rss:2485580kB, file-rss:0kB, shmem-rss:0kB

https://www.kernel.org/doc/gorman/html/understand/understand016.html

Out Of Memory Killer หรือ OOM Killer เป็นกระบวนการที่เคอร์เนลลินุกซ์ใช้เมื่อระบบมีหน่วยความจำเหลือน้อยมาก สถานการณ์นี้เกิดขึ้นเนื่องจากเคอร์เนล linux มีหน่วยความจำที่จัดสรรให้กับกระบวนการมากเกินไป ... ซึ่งหมายความว่ากระบวนการที่กำลังทำงานอยู่ต้องการหน่วยความจำมากกว่าที่มีอยู่จริง

โพสต์คำตอบ

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