Saya memiliki server Red Hat Linux rumah yang relatif kecil (sekitar 8 GB RAM). Saya tidak menggunakannya untuk banyak hal selain menjalankan beberapa aplikasi buatan rumah untuk melacak berbagai hal. Satu-satunya hal nyata yang berjalan di kotak adalah database dan server web.
Saya perhatikan ketika memeriksa penghitung sistem menggunakan alat seperti NMON dan TOP bahwa total memori bebas sistem relatif rendah (sekitar beberapa ratus MB), sedangkan memori aktif untuk basis data dan server web masih rendah (hanya mengkonsumsi gabungan 3 GB). Bahkan ketika menyertakan semua proses yang berjalan lainnya, total memori yang dikonsumsi kurang dari 4 GB.
Mengapa Red Hat Linux melaporkan memori kurang dari total memori dikurangi jumlah total memori yang digunakan dari proses yang berjalan?
sumber
Linux akan secara aktif me-cache akses sistem file ke dalam memori untuk memberikan waktu akses disk yang lebih cepat. Tidak ada yang perlu dikhawatirkan.
Menjalankan gratis -m pada kotak akan memberi Anda ide yang lebih baik tentang di mana memori sedang digunakan.
Di bawah ini adalah output yang ditarik dari salah satu kotak saya. Memori bebas 147Meg dengan hampir 4G di-cache untuk permintaan akses sistem file.
sumber
Apakah Anda juga menyertakan bidang "buffered" dan "cached"?
sumber
Dengan linux, lihat Committed_AS di / proc / meminfo, ini adalah jumlah memori (real + swap) yang sebenarnya dijanjikan oleh kernel untuk menjalankan proses.
Linux menggunakan memori dengan sangat efisien, setiap blok yang tidak dijanjikan untuk beberapa proses digunakan untuk melakukan cache baru-baru ini / file yang sering diakses. Jadi, biasanya Linux menggunakan 90% dari semua memori fisik yang tersedia tidak lama setelah boot.
Lihatlah apa yang telah dilakukan kernel untuk menyediakan .. dan penggunaan kotor (swap), ini memberi Anda gambaran keseluruhan yang lebih baik.
Jika Anda perlu menyesuaikan perilaku ini, harap perbarui pertanyaan Anda :)
Ini adalah standar MO untuk Linux .. beberapa distro men-tweak manajemen memori yang sesuai dengan kebutuhan mereka melalui sysctl. Namun, apa yang Anda laporkan cukup tipikal di antara semuanya.
sumber
Kernel apa yang Anda jalankan di sistem? Kernel 32-bit hanya akan melaporkan memori sekitar 3,6GB, kecuali jika dikompilasi dengan PAE diaktifkan.
Mengatakan itu, jika ini adalah versi modern Redhat Enterprise Linux (atau CentOS) - v3 dan seterusnya - kernel 32-bit default akan memungkinkan ini diaktifkan.
Jika Anda dapat memposting output dari perintah 'gratis' yang dirinci di atas, kami akan dapat melihat apakah ini masalahnya.
sumber