TL; DR 1
Server Anda berada dalam wadah virtuozzo / openvz / virtualization-du-jour . Mencoba memahami penggunaan memori memiringkan kincir angin.
TL; DR 2
Linux memakan RAM Anda! Tapi tidak apa-apa, itu berlaku untuk semua orang.
Kisah Panjang
Mari kita jatuhkan!
Di Mem:
bagian ini kami memiliki:
$n total
: jumlah RAM fisik di mesin Anda
$n used
: berapa banyak memori yang dikonsumsi oleh Linux, bukan hanya jumlah dari proses.
$n free
: Berapa banyak RAM yang tidak dikonsumsi oleh Linux. Ini tidak memperhitungkan bahwa memori yang di-cache dan buffer pada dasarnya "bebas".
$n buffers
: ruang penyangga adalah tempat blok I / O disk telah dibaca atau menunggu penulisan disimpan. Buffer adalah representasi RAM dari blok disk tunggal.
Di Swap:
bagian ini kami memiliki:
$n total
: Cukup jelas. Jumlah ruang disk yang tersedia untuk bertukar halaman ke.
$n used
: Cukup jelas. Berapa banyak ruang swap disk yang digunakan.
$n free
: Herp Derp.
$n cache
: Terkait erat dengan buffer di atas. Ini sebenarnya bagian dari cache halaman dan itu sendiri tidak memiliki ruang pada disk fisik. Jangan khawatir tentang detail untuk percakapan ini.
Bagian yang menarik datang ketika Anda berlari free -m
. Anda akan melihat tiga baris, dan semua angka akan berkorelasi dengan atas. Saya akan memberikan PC saya sendiri sebagai contoh:
total used free shared buffers cached
Mem: 8070 7747 323 0 253 5713
-/+ buffers/cache: 1780 6290
Swap: 5055 0 5055
Baris Mem menunjukkan total RAM dalam megabyte ( $n total
di atas), berapa banyak yang digunakan ( $n used
di atas), berapa banyak yang gratis ( $n free
di atas), berapa banyak yang dibagikan (abaikan itu), dan sekarang tiba bagian yang baik! The buffers
dan cached
kolom dalam free -m
berkorelasi dengan, diduga, $n buffers
dan $n cache
. Tapi lihat baris kedua free -m
yang dimulai dengan -/+ buffers/cache:
. Matematika menunjukkan bahwa jumlah yang digunakan benar-benar (total) - ((digunakan-buffer) -cached). Gratis adalah (total) - (yang Baru Digunakan).
Apa artinya semua ini? Itu artinya Linux memakan RAM Anda! Ceritanya adalah bahwa kernel Linux melahap RAM karena tersedia untuk digunakan untuk cache disk. Tidak ada yang dapat Anda lakukan kecuali Anda ingin mencoba mengkompilasi kernel kustom. Kiat Pro: Jangan.
RAM benar-benar ada dan gratis untuk proses yang digunakan sesuai keinginan mereka. Itulah yang dimaksud dengan -/+ buffers/cache:
baris dalam free -m
. Namun, Anda berada di dalam wadah virtualisasi non hyper-visor yang membuat hal-hal sedikit tupai. Anda tidak bisa mengambil stok memori Anda dengan akurasi byte pada saat ini. Namun, Anda tidak melihat perilaku yang sangat tidak biasa.
Tetap tenang dan terus berjalan. Juga, dapatkan server fisik (kecuali Anda menyukai statistik memori yang terlihat seperti Kreskin adalah SysAdmin Anda).