การใช้งานหน่วยความจำจริง


15

ถ้าฉันเข้าใจถูกต้องในผลลัพธ์ต่อไปนี้ที่ผลิตโดยฟรี 3535m เป็นหน่วยความจำว่างจริงที่แอพพลิเคชั่นใช้เพียง 413m ใช้ถูกต้องหรือไม่ ต้องการคำชี้แจงเกี่ยวกับความแตกต่างระหว่าง Mem และ - / + บัฟเฟอร์ / แถวแคช

ฟรี
             แคชบัฟเฟอร์ที่ใช้ร่วมกันทั้งหมดที่ใช้รวมอยู่
Mem: 3949 3854 95 0 9 3431
- / + บัฟเฟอร์ / แคช: 413 3535
Swap: 2047 1322 725

คำตอบ:


16

Mem: totalตัวเลขเป็นจำนวนเงินทั้งหมดของแรมที่สามารถใช้โดยการใช้งาน นี่คือ RAM ทั้งหมดที่ติดตั้งบนระบบลบ:

  • หน่วยความจำที่สงวนไว้โดยอุปกรณ์ฮาร์ดแวร์ (มักเป็นหน่วยความจำวิดีโอหากการ์ดกราฟิกไม่มี RAM ของตัวเอง);
  • หน่วยความจำที่ใช้โดยเคอร์เนลเอง

ยอดรวมดังกล่าวรวมถึง:

  • free: หน่วยความจำที่ใช้ในปัจจุบันเพื่อวัตถุประสงค์ใด ๆ
  • shared: แนวคิดที่ไม่มีอยู่อีกต่อไป มันเหลืออยู่ในเอาต์พุตเพื่อความเข้ากันได้แบบย้อนหลัง (มีสคริปต์ที่แยกวิเคราะห์เอาต์พุตfree) (โดยทั่วไปในระบบปัจจุบันคุณจะเห็นค่าที่ไม่เป็นศูนย์เนื่องจากsharedได้รับการจัดแสดงใหม่เพื่อแสดงหน่วยความจำใช้ร่วมกันอย่างชัดแจ้งผ่านกลไกหน่วยความจำร่วม . ในระบบเก่ามันรวมไฟล์แมปโดยกระบวนการมากกว่าหนึ่งและหน่วยความจำที่สามารถแชร์ได้ว่ายังคงใช้ร่วมกันหลังจากfork().)
  • buffers: หน่วยความจำที่สำรองข้อมูลด้วยไฟล์และสามารถเขียนลงดิสก์ได้ถ้าต้องการ
  • cache: หน่วยความจำที่สำรองข้อมูลด้วยไฟล์และสามารถเรียกคืนได้ตลอดเวลา buffersคือบัฟเฟอร์ต้องถูกบันทึกลงดิสก์ก่อนนำกลับมาใช้ใหม่ในขณะที่แคชประกอบด้วยสิ่งต่าง ๆ ที่สามารถโหลดจากดิสก์ได้);
  • used -buffers/cache: หน่วยความจำที่ใช้โดยแอปพลิเคชัน (และไม่สามารถสลับเพจออกได้)

ในชั่วครู่ระบบสามารถทำงานได้โดยไม่ต้องบัฟเฟอร์และแคชสำรองแรมสำหรับการใช้งานและดำเนินการอ่านและเขียนดิสก์อย่างเป็นระบบโดยไม่ต้องแคชใด ๆ -/+ buffers/cacheตัวเลขระบุจำนวนเงินของ RAM มาใช้โดยตรงโดยการใช้งาน ( usedคอลัมน์) และปริมาณของแรมไม่ได้ใช้งาน ( freeคอลัมน์)

ถึงแม้ว่าสิ่งนี้อาจแตกต่างกันมาก แต่โดยทั่วไปแล้วระบบที่มีสุขภาพดีจะมี RAM ประมาณครึ่งหนึ่งซึ่งอุทิศให้กับแอปพลิเคชันและอีกครึ่งที่ทุ่มเทให้กับบัฟเฟอร์และแคช เว้นแต่ว่าคุณกำลังใช้งานไฟล์เซิร์ฟเวอร์เฉพาะระบบของคุณจะมี RAM มากกว่าที่จำเป็นสำหรับสิ่งที่คุณทำอยู่ในปัจจุบัน หากว่าfree - buffers/cacheตัวเลขต่ำแสดงว่าระบบที่มี RAM ไม่เพียงพอ (ตรงกันข้ามกับความเชื่อที่แพร่หลายการมีหน่วยความจำจำนวนมากสำหรับบัฟเฟอร์และแคชเป็นสิ่งสำคัญสำหรับประสิทธิภาพของระบบและพยายามจองหน่วยความจำเพิ่มเติมสำหรับแอปพลิเคชัน ทำให้ 99.99% ของระบบช้าลง)

swapบรรทัดตรงไปตรงมาก็แสดงให้เห็นปริมาณของการแลกเปลี่ยนที่อยู่ในการใช้งาน (ทั้งโดยการใช้งานหรือtmpfsจัดเก็บข้อมูล) และจำนวนเงินที่ไม่ได้เป็น


1
"ใช้ร่วมกัน: แนวคิดที่ไม่มีอยู่อีกต่อไป" - ดูเหมือนว่าจะได้รับการแนะนำใหม่ในช่วงระหว่างปี 2011 ถึง 2016: unix.stackexchange.com/questions/307015//
Marisha

3

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

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