Contoh EC2 kecil saya dengan memori 1,7 GB, menjalankan Amazon AMI berbasis CentOS, memiliki masalah dengan Apache menggunakan terlalu banyak memori daripada seharusnya. Jika Anda melihat tangkapan layar, penggunaan memori akan berada pada 90-100% hingga saya mem-boot ulang layanan httpd, di mana ia akan memulai kembali, meningkatkan jalannya kembali hingga 90+%.
Saya akan sangat menghargai bantuan tentang cara menemukan masalah ini. Apakah ini mungkin perilaku apache "normal", untuk memanfaatkan semua memori yang tersedia? Atau ada kemungkinan kebocoran yang harus saya lakukan untuk memburu. Saat ini saya agak bingung apa yang mungkin terjadi.
Kami menggunakan prefork Apache MPM, dan tidak ada sql atau yang serupa - hanya apache. Situs webnya ada di sini .
sumber
RequestHeader set X-Request-Start "%t"
jika Anda belum melakukannya. Ini akan muncul sebagai "Permintaan Antrian" ketika Anda masuk ke App Server> Tinjauan Umum - mungkin membantu Anda sampai ke bagian bawah masalah.Jawaban:
Seperti yang dikatakan HTTP500, Anda mungkin tidak perlu khawatir kecuali mesin benar-benar tersedak. Lihatlah Bantuan! Linux Makan RAM Saya! . Ini bukan situasi yang analog, karena Anda memiliki proses alih-alih buffer menggunakan RAM, tetapi tidak terlalu jauh: RAM fisik mesin Anda adalah sumber daya untuk digunakan, baik dengan buffer kernel atau proses pekerja Apache cadangan untuk segera menangani masuk permintaan. Jika Anda tidak menggunakan RAM, Anda membayar lebih untuk ukuran kotak Anda.
Bagaimanapun, jika Anda ingin bermain dengan pengaturan MPM, dokumentasi Apache adalah http://httpd.apache.org/docs/current/mod/prefork.html
Anda mungkin dapat mengurangi MinSpareServers, StartServers, dll, karena Anda telah menyatakan bahwa situs tersebut lalu lintasnya rendah. Anda kemudian akan memiliki lebih banyak RAM gratis untuk dikonsumsi oleh buffer kernel untuk tujuan jahat mereka.
sumber
linux menggunakan semua memori Anda adalah normal, memori yang tidak digunakan dinyatakan sebagai cache disk. lihat: linux eat my ram
Anda dapat memverifikasi ini dengan melihat output
free -m
dan berharap untuk melihat sesuatu seperti ini:baris +/- buffer / cache adalah yang Anda inginkan. Ini menambahkan ram di-cache gratis untuk memberi Anda gambaran yang lebih baik tentang berapa banyak memori yang benar-benar tersedia. Dalam hal ini, Anda ingin memperhatikan angka 3416, bukan 101.
sumber