GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menyelidiki kebocoran memori dengan Apache dan PHP?

Solusi 1:

Kami tahu masalah memori berasal dari apache/PHP karena setiap kali kami mengeluarkan /etc/init.d/httpd memuat ulang, penggunaan memori turun

Tidak - itu hanya terkait dengan lalu lintas web. Anda telah menyebutkan bahwa Anda sedang menjalankan mysql pada kotak - mungkin mengelola data untuk server web - bisa dengan mudah menjadi pelakunya di sini. Seperti halnya layanan lain yang digunakan webstack Anda yang tidak Anda sebutkan.

Setiap utas apache diberi batas memori PHP sebesar 512MB yang menjelaskan

Tidak. Anda melaporkan rata-rata 7 dan maksimal 25 server sibuk - namun grafik memori Anda menunjukkan delta sekitar 25 Gb.

Benar-benar Anda harus mulai lagi dengan penyetelan HTTP dasar - Anda tampaknya menjalankan 256 httpds konstan, namun penggunaan puncak Anda adalah 25 - ini benar-benar bodoh.

dan max_execution_time 120 detik yang seharusnya mengakhiri utas yang eksekusinya memakan waktu lebih lama

Tidak - hanya jika utas eksekusi ada di dalam juru bahasa PHP - bukan jika PHP diblokir.

yang melakukan pemodelan keuangan

(mendesah)

Akan sangat membantu jika Anda memberikan perincian tentang bagaimana Anda mengonfigurasi Apache, berulir atau prefork, versi apa, bagaimana PHP dipanggil (modul, cgi, fastcgi), apakah Anda menggunakan koneksi persisten, apakah Anda menggunakan prosedur tersimpan.

Saya sarankan Anda mulai dengan memindahkan mysql ke mesin terpisah dan berhenti menggunakan koneksi persisten (jika saat ini Anda menggunakannya). Tetapkan batas memori banyak turunkan dan timpa ini berdasarkan per skrip. Pastikan Anda telah menginstal dan mengonfigurasi pengumpul sampah referensi melingkar.

Solusi 2:

Anda mungkin telah memecahkan masalah Anda sekarang. Sebagai sementara untuk menjaga agar server tidak bertukar / meronta-ronta, saya menjalankan perintah berikut setiap jam dari cron:

#!/bin/sh 
sync; echo 3 > /proc/sys/vm/drop_caches

Saya tidak mengatakan ini adalah solusi, hanya cara agar semuanya tetap berjalan dan meminimalkan waktu henti saat Anda menyelidiki penyebab sebenarnya dari kebocoran memori.

Rincian lebih lanjut dapat ditemukan di sini.

http://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/


Linux
  1. Cara mengaktifkan dan menonaktifkan modul PHP curl dengan Apache di Ubuntu Linux

  2. Cara Update Apache Dan PHP Dengan EasyApache Di Server cPanel

  3. Cara Melindungi Apache dan SSH Dengan Fail2Ban di CentOS 8

  1. Cara Menemukan File Konfigurasi MySQL, PHP dan Apache

  2. Instal Apache dan PHP di CentOS 7

  3. Cara Menginstal PHP-FPM dengan Apache di Ubuntu 20.04

  1. Cara Menginstal Laravel di Ubuntu 18.04 dengan Apache

  2. Cara Menginstal Nextcloud dengan Nginx dan PHP 7.3 di CentOS 8

  3. Cara Menginstal dan Mengkonfigurasi OpenLiteSpeed ​​dengan PHP 7.4 di CentOS 8