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 reload
penurunan 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_limit
sebesar 512MB yang menjelaskan penggunaan memori yang tinggi mengurangi volume permintaan yang rendah, dan max_execution_time
120 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.
memcached
perpustakaan PHP . Berdasarkan halaman admin memcache memcache.php
, yang dapat kita lihat adalah bahwa kita telah mengalokasikan 5GB
untuk memcache, yang 3.3GB
sedang digunakan. Akan lebih baik jika Anda dapat membantu kami lebih lanjut di sini.
memcached
daemon 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.