Zauważyłem, że Apache uruchamia wiele procesów na moim serwerze LAMP (ubuntu 10.10). Właśnie uruchamiam witrynę Wordpress z MySQL jako bazą danych. Wygląda na to, że www-data uruchamia apache2 bardziej niż powinien (zużywając zbyt dużo pamięci), czy mam rację:
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
źródło
źródło
Odpowiedzi:
Apache uruchamia wiele procesów, aby były gotowe, gdy nadejdzie żądanie klienta. Odradzanie procesu serwera jest powolne, więc najlepiej mieć jeden czekający na klienta.
Przy korzystaniu z pamięci należy wziąć pod uwagę rozmiar RES (wyświetlany u góry), czyli ilość pamięci fizycznej wykorzystywanej przez zadanie.
Jak myślisz, dlaczego masz zbyt wiele procesów Apache2 zużywających zbyt dużo pamięci? Czego oczekujesz? Dlaczego tego oczekujesz?
źródło
Jak wyjaśnia odpowiedź Pawła, apache używa modelu proces na żądanie z pulą procesów (lub wątek na żądanie z mpm_worker).
Możesz być w stanie zmniejszyć zużycie pamięci, używając serwera WWW opartego na nieblokującym We / Wy, takiego jak nginx. W ten sposób serwer nie musi poświęcać procesu / wątku na połączenie.
źródło
Apache uruchomi tyle procesów, ile skonfigurujesz. W konfiguracji różni się w przypadku korzystania z prefork lub pracownik moduły multi-processing.
źródło