Saya perhatikan Apache sedang menjalankan beberapa proses pada server LAMP saya (ubuntu 10.10). Saya hanya menjalankan situs Wordpress dengan MySQL sebagai basis data. Sepertinya www-data menjalankan apache2 lebih dari yang seharusnya (menggunakan terlalu banyak memori juga), apakah saya benar:
ID Owner Size Command
31200 www-data 251236 kB /usr/sbin/apache2 -k start
20678 www-data 250948 kB /usr/sbin/apache2 -k start
25781 www-data 248888 kB /usr/sbin/apache2 -k start
31045 www-data 248844 kB /usr/sbin/apache2 -k start
19926 www-data 246480 kB /usr/sbin/apache2 -k start
20749 www-data 239380 kB /usr/sbin/apache2 -k start
32616 www-data 238632 kB /usr/sbin/apache2 -k start
8846 mysql 238128 kB /usr/sbin/mysqld
24178 www-data 234228 kB /usr/sbin/apache2 -k start
32618 www-data 232344 kB /usr/sbin/apache2 -k start
32615 www-data 232204 kB /usr/sbin/apache2 -k start
19805 root 208156 kB /usr/sbin/apache2 -k start
apache-2.2
ubuntu
performance
memory
Trent Scott
sumber
sumber
Jawaban:
Apache menjalankan banyak proses untuk menyiapkannya saat permintaan klien masuk. Memunculkan proses server lambat, jadi sebaiknya menunggu satu proses untuk klien.
Untuk penggunaan memori, Anda harus memperhitungkan ukuran RES akun (seperti yang ditampilkan di atas), yang merupakan jumlah memori fisik yang digunakan oleh tugas tersebut.
Mengapa Anda pikir Anda memiliki terlalu banyak proses apache2 menggunakan terlalu banyak memori? Apa yang kamu harapkan? Mengapa begitu?
sumber
Seperti yang dijelaskan oleh Pawel, apache menggunakan proses per model permintaan dengan kumpulan proses (atau utas per permintaan dengan mpm_worker).
Anda mungkin dapat mengurangi penggunaan memori dengan menggunakan server web berdasarkan IO non-pemblokiran, seperti nginx. Dengan begitu server tidak perlu mendedikasikan proses / utas per koneksi.
sumber
Apache akan menjalankan banyak proses sesuai konfigurasi Anda. Konfigurasi berbeda jika Anda menggunakan modul multi-pemrosesan prefork atau pekerja .
sumber