ความแตกต่างระหว่างหน่วยความจำทั้งหมดกับหน่วยความจำว่างคืออะไร


12

ฉันมีระบบเดสก์ท็อปที่ติดตั้ง Centos 7 มันมี 4 คอร์และ 12 GB หน่วยความจำ เพื่อค้นหาข้อมูลหน่วยความจำฉันใช้free -hคำสั่ง ฉันมีหนึ่งความสับสน

[user@xyz-hi ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:            11G        4.6G        231M         94M        6.8G        6.6G
Swap:          3.9G        104M        3.8G

ในคอลัมน์รวมว่ากันว่าทั้งหมด 11GB (ถูกต้อง) ในคอลัมน์สุดท้ายที่มีอยู่มันบอกว่า 6.6GB และใช้เป็น 4.6G

หากหน่วยความจำที่ใช้คือ 4.6GB ก็จะเหลือ 6.4 GB (11-4.6 = 6.4) การตีความเอาต์พุตที่ถูกต้องคืออะไรความแตกต่างระหว่างผลรวมและที่มีและหน่วยความจำว่างคืออะไร ฉันมีหน่วยความจำไม่เพียงพอถ้าฉันต้องการอีก 1 GB สำหรับแอปพลิเคชั่นใหม่หรือไม่?


ดังนั้นคำถามของคุณเกี่ยวกับสาเหตุที่มันเป็น 6.6 และไม่ใช่ 6.4?
αԋɱҽԃαмєяιcαη

1
คำถามนี้ย้อนกลับไปหลายทศวรรษ .. คุณอ้างถึงหน่วยความจำที่ใช้เป็นแคชในปัจจุบัน แต่เป็น 'ว่างหรือว่าง' กล่าวคือ มันมีข้อมูลจากดิสก์จึงเป็น 'แคช' หากจำเป็น แต่แอปพร้อมใช้งานแล้วควรจะ malloc () ความแตกต่างที่คุณกังวลคือมีประโยชน์ในการแจ้งให้เราทราบว่า 'หน่วยความจำนี้ใช้ค่าใดในหน่วยความจำ' และจะถกเถียงกันทุกสองสามปีตั้งแต่ยุค 80 มันไม่ได้เปลี่ยนไปเหมือนเดิมทุกครั้ง (การตั้งค่าที่น่ารำคาญมีประโยชน์! และการไม่เปลี่ยนแปลงไม่ได้หมายความว่าเราต้องแก้ไขสคริปต์เก่าที่ใช้มานานหลายทศวรรษ)
guiverc

คำตอบ:


15

man free คำสั่งแก้ปัญหาของฉัน

DESCRIPTION
       free  displays the total amount of free and used physical and swap mem‐
       ory in the system, as well as the buffers and caches used by  the  ker‐
       nel.  The  information  is  gathered by parsing /proc/meminfo. The dis‐
       played columns are:

       total  Total installed memory (MemTotal and SwapTotal in /proc/meminfo)

       used   Used memory (calculated as total - free - buffers - cache)

       free   Unused memory (MemFree and SwapFree in /proc/meminfo)

       shared Memory used (mostly) by tmpfs (Shmem in /proc/meminfo, available
              on kernels 2.6.32, displayed as zero if not available)

       buffers
              Memory used by kernel buffers (Buffers in /proc/meminfo)

       cache  Memory  used  by  the  page  cache and slabs (Cached and Slab in
              /proc/meminfo)

       buff/cache
              Sum of buffers and cache

       available
              Estimation of how much memory  is  available  for  starting  new
              applications,  without swapping. Unlike the data provided by the
              cache or free fields, this field takes into account  page  cache
              and also that not all reclaimable memory slabs will be reclaimed
              due to items being in use (MemAvailable in /proc/meminfo, avail‐
              able on kernels 3.14, emulated on kernels 2.6.27+, otherwise the
              same as free)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.