Kami menjalankan situs web Drupal yang berat yang melakukan pemodelan keuangan. Kami tampaknya mengalami semacam kebocoran memori mengingat fakta bahwa memori lembur yang digunakan oleh apache bertambah sementara jumlah proses apache tetap stabil:


Kami tahu masalah memori berasal dari apache / PHP karena setiap kali kami mengeluarkan /etc/init.d/httpd reloadpenurunan penggunaan memori (lihat tangkapan layar di atas dan di bawah keluaran CLI):
Sebelum httpd dimuat ulang
$ gratis
total digunakan buffer bersama gratis di-cache
Mem: 49447692 45926468 3521224 0 191100 22609728
- / + buffer / cache: 23125640 26322052
Swap: 2097144 536552 1560592
Setelah httpd dimuat ulang
$ gratis
total digunakan buffer bersama gratis di-cache
Mem: 49447692 28905752 20541940 0 191360 22598428
- / + buffer / cache: 6115964 43331728
Swap: 2097144 536552 1560592
Setiap utas apache diberi PHP memory_limitsebesar 512MB yang menjelaskan penggunaan memori yang tinggi mengurangi volume permintaan yang rendah, dan max_execution_time120 detik yang akan menghentikan utas yang membutuhkan waktu lebih lama, dan karenanya harus mencegah pertumbuhan konstan dalam penggunaan memori kami. melihat.
T: Bagaimana kami menyelidiki apa yang menyebabkan kebocoran memori ini?
Idealnya saya mencari langkah pemecahan masalah yang dapat saya lakukan pada sistem tanpa harus mengganggu tim pengembang.
Informasi tambahan:
OS: RHEL 5.6
PHP: 5.3
Drupal: 6.x
MySQL: 5.6
FYI kami mengetahui masalah swapping yang kami selidiki secara terpisah dan tidak ada hubungannya dengan kebocoran memori yang telah kami amati sebelum swapping mulai terjadi.
memcachedperpustakaan PHP . Berdasarkan halaman admin memcache memcache.php, yang dapat kita lihat adalah bahwa kita telah mengalokasikan 5GBuntuk memcache, yang 3.3GBsedang digunakan. Akan lebih baik jika Anda dapat membantu kami lebih lanjut di sini.
memcacheddaemon itu sendiri mungkin baik-baik saja. Ini adalah perpustakaan memcache PHP yang mungkin atau mungkin tidak bocor memori (dan karenanya menumbuhkan proses penggunaan memori oleh Apache). Masalah saya sekitar 1-2 tahun yang lalu, jadi mungkin sudah diperbaiki setelah itu. Bagaimanapun, jika memcached tidak wajib untuk Anda, coba nonaktifkan untuk sementara waktu dan lihat apakah penggunaan memori Apache masih tumbuh.
httpd, penggunaan memori terus bertambah dan kotak akhirnya crash dengan beberapa pesan kernel memori keluar. Performanya bagus (sampai penggunaan memori mendekati batas memori). Harap abaikan masalah pertukaran.