Skąd się wzięło tyle procesów apache?
jestemradek - 29-09-2009 11:10
Skąd się wzięło tyle procesów apache?
Witam,
Mam poważne problemy z moim serwerem (Ubuntu 8.04 Server). Resetowałem go już dzisiaj dwa razy, jednak to rozwiązywało problem tylko na pewien czas.
Problem polega na tym, że namnażają się procesy w systemie, co prowadzi do zawieszenia.
Nie wiem dlaczego tak się dzieje, gdyż nic w systemie nie modyfikowałem od nowości, jedynie dodałem parę virtualhostów.
Poniżej przykład:
Kod:
> 3692 ? D 0:01 /usr/sbin/apache2 -k start
> 3964 ? D 0:03 /usr/sbin/apache2 -k start
> 4245 ? D 0:00 /usr/sbin/apache2 -k start
> 4313 ? D 0:00 /usr/sbin/apache2 -k start
> 4314 ? D 0:00 /usr/sbin/apache2 -k start
> 4315 ? D 0:01 /usr/sbin/apache2 -k start
> 4326 ? D 0:01 /usr/sbin/apache2 -k start
> 4361 ? D 0:00 /usr/sbin/apache2 -k start
> 4813 ? D 0:00 /USR/SBIN/CRON
> 4814 ? S 0:00 /USR/SBIN/CRON
> 4818 ? D 0:00 /usr/sbin/apache2 -k start
> 4819 ? D 0:00 /usr/sbin/apache2 -k start
> 4821 ? D 0:01 /usr/sbin/apache2 -k start
> 4822 ? S 0:00 /USR/SBIN/CRON
> 4823 ? D 0:00 /usr/sbin/apache2 -k start
> 4826 ? D 0:00 /usr/sbin/apache2 -k start
> 4828 ? D 0:00 /usr/sbin/apache2 -k start
> 4829 ? D 0:00 /usr/sbin/apache2 -k start
> 4830 ? S 0:00 /USR/SBIN/CRON
> 4831 ? S 0:00 /USR/SBIN/CRON
> 4832 ? D 0:00 /usr/sbin/apache2 -k start
> 4833 ? D 0:00 /usr/sbin/apache2 -k start
> 4834 ? D 0:00 /usr/sbin/apache2 -k start
> 4835 ? S 0:00 /USR/SBIN/CRON
> 4836 ? D 0:00 /usr/sbin/apache2 -k start
> 4837 ? D 0:00 /usr/sbin/apache2 -k start
> 4838 ? S 0:00 /USR/SBIN/CRON
> 4839 ? D 0:01 /usr/sbin/apache2 -k start
> 4840 ? D 0:00 /usr/sbin/apache2 -k start
> 4841 ? D 0:01 /usr/sbin/apache2 -k start
> 4842 ? S 0:00 /USR/SBIN/CRON
> 4844 ? D 0:00 /usr/sbin/apache2 -k start
> 4846 ? S 0:00 /USR/SBIN/CRON
> 4848 ? D 0:01 /usr/sbin/apache2 -k start
> 4849 ? D 0:00 /usr/sbin/apache2 -k start
> 4850 ? D 0:01 /usr/sbin/apache2 -k start
> 4851 ? S 0:00 /USR/SBIN/CRON
> 4852 ? D 0:00 /usr/sbin/apache2 -k start
> 4853 ? D 0:00 /usr/sbin/apache2 -k start
> 4854 ? D 0:00 /usr/sbin/apache2 -k start
> 4855 ? D 0:00 /usr/sbin/apache2 -k start
> 4856 ? S 0:00 /USR/SBIN/CRON
> 4859 ? D 0:00 /usr/sbin/apache2 -k start
> 4860 ? S 0:00 /USR/SBIN/CRON
> 4862 ? D 0:00 /usr/sbin/apache2 -k start
> 4863 ? D 0:00 /usr/sbin/apache2 -k start
> 4865 ? S 0:00 /USR/SBIN/CRON
> 4866 ? D 0:00 /usr/sbin/apache2 -k start
> 4868 ? D 0:00 /usr/sbin/apache2 -k start
> 4869 ? D 0:00 /usr/sbin/apache2 -k start
> 4870 ? D 0:00 /usr/sbin/apache2 -k start
> 4872 ? D 0:00 /usr/sbin/apache2 -k start
> 4875 ? S 0:00 /USR/SBIN/CRON
> 4876 ? D 0:00 /usr/sbin/apache2 -k start
> 4877 ? D 0:00 /usr/sbin/apache2 -k start
> 4878 ? D 0:00 /usr/sbin/apache2 -k start
> 4882 ? D 0:00 /usr/sbin/apache2 -k start
> 4883 ? D 0:00 /usr/sbin/apache2 -k start
> 4884 ? D 0:00 /usr/sbin/apache2 -k start
> 4886 ? S 0:00 /USR/SBIN/CRON
> 4888 ? D 0:00 /usr/sbin/apache2 -k start
> 4889 ? D 0:00 /usr/sbin/apache2 -k start
> 4891 ? S 0:00 /USR/SBIN/CRON
> 4892 ? D 0:00 /usr/sbin/apache2 -k start
> 4894 ? D 0:01 /usr/sbin/apache2 -k start
> 4895 ? S 0:00 /USR/SBIN/CRON
> 4897 ? D 0:00 /usr/sbin/apache2 -k start
> 4899 ? D 0:00 /usr/sbin/apache2 -k start
> 4901 ? S 0:00 /USR/SBIN/CRON
> 4902 ? D 0:01 /usr/sbin/apache2 -k start
> 4903 ? D 0:00 /usr/sbin/apache2 -k start
> 4904 ? D 0:00 /usr/sbin/apache2 -k start
> 4905 ? S 0:00 /USR/SBIN/CRON
> 4906 ? D 0:00 /usr/sbin/apache2 -k start
> 4907 ? D 0:00 /usr/sbin/apache2 -k start
> 4908 ? D 0:00 /usr/sbin/apache2 -k start
> 4909 ? S 0:00 /USR/SBIN/CRON
> 4910 ? S 0:00 /USR/SBIN/CRON
> 4913 ? D 0:00 /usr/sbin/apache2 -k start
> 4914 ? D 0:00 /usr/sbin/apache2 -k start
> 4915 ? D 0:00 /usr/sbin/apache2 -k start
> 4916 ? D 0:00 /usr/sbin/apache2 -k start
> 4917 ? S 0:00 /USR/SBIN/CRON
> 4918 ? S 0:00 /USR/SBIN/CRON
> 4919 ? S 0:00 /USR/SBIN/CRON
> 4920 ? S 0:00 /USR/SBIN/CRON
> 4922 ? D 0:00 /usr/sbin/apache2 -k start
> 4923 ? S 0:00 /USR/SBIN/CRON
> 4924 ? S 0:00 /USR/SBIN/CRON
> 4925 ? S 0:00 /USR/SBIN/CRON
> 4926 ? S 0:00 /USR/SBIN/CRON
> 4927 ? D 0:00 /usr/sbin/apache2 -k start
> 4931 ? D 0:00 /usr/sbin/apache2 -k start
> 4932 ? D 0:00 /usr/sbin/apache2 -k start
> 4933 ? D 0:00 /usr/sbin/apache2 -k start
> 4934 ? D 0:00 /usr/sbin/apache2 -k start
> 4935 ? S 0:00 /USR/SBIN/CRON
> 4936 ? S 0:00 /USR/SBIN/CRON
> 4938 ? S 0:00 /USR/SBIN/CRON
> 4939 ? S 0:00 /USR/SBIN/CRON
> 4940 ? S 0:00 /USR/SBIN/CRON
> 4941 ? S 0:00 /USR/SBIN/CRON
> 4942 ? S 0:00 /USR/SBIN/CRON
> 4943 ? S 0:00 /USR/SBIN/CRON
> 4944 ? S 0:00 /USR/SBIN/CRON
> 4946 ? D 0:00 /usr/sbin/apache2 -k start
> 4947 ? S 0:00 /USR/SBIN/CRON
> 4948 ? S 0:00 /USR/SBIN/CRON
> 4949 ? D 0:00 /usr/sbin/apache2 -k start
> 4950 ? S 0:00 /USR/SBIN/CRON
> 4951 ? S 0:00 /USR/SBIN/CRON
> 4953 ? D 0:00 /usr/sbin/apache2 -k start
> 4954 ? D 0:00 /usr/sbin/apache2 -k start
> 4955 ? D 0:00 /usr/sbin/apache2 -k start
> 4956 ? D 0:00 /usr/sbin/apache2 -k start
> 4957 ? D 0:00 /usr/sbin/apache2 -k start
> 4958 ? D 0:00 /usr/sbin/apache2 -k start
> 4959 ? D 0:00 /usr/sbin/apache2 -k start
> 4960 ? D 0:00 /usr/sbin/apache2 -k start
> 4961 ? S 0:00 /USR/SBIN/CRON
> 4962 ? S 0:00 /USR/SBIN/CRON
> 4963 ? S 0:00 /USR/SBIN/CRON
> 4964 ? S 0:00 /USR/SBIN/CRON
> 4965 ? S 0:00 /USR/SBIN/CRON
> 4966 ? S 0:00 /USR/SBIN/CRON
> 4967 ? D 0:00 /usr/sbin/apache2 -k start
> 4968 ? S 0:00 /USR/SBIN/CRON
> 4969 ? S 0:00 /USR/SBIN/CRON
> 4970 ? D 0:00 /usr/sbin/apache2 -k start
> 4971 ? S 0:00 /USR/SBIN/CRON
> 4972 ? D 0:00 /usr/sbin/apache2 -k start
> 4973 ? D 0:00 /usr/sbin/apache2 -k start
> 4974 ? S 0:00 /USR/SBIN/CRON
> 4975 ? D 0:00 /usr/sbin/apache2 -k start
> 4976 ? D 0:00 /usr/sbin/apache2 -k start
> 4977 ? S 0:00 /usr/sbin/apache2 -k start
> 4978 ? D 0:00 /usr/sbin/apache2 -k start
> 4979 ? D 0:00 /usr/sbin/apache2 -k start
> 4980 ? S 0:00 /USR/SBIN/CRON
> 4981 ? D 0:00 /usr/sbin/apache2 -k start
> 4982 ? S 0:00 /USR/SBIN/CRON
> 4983 ? S 0:00 /USR/SBIN/CRON
> 4984 ? S 0:00 /usr/sbin/apache2 -k start
> 4985 ? D 0:00 /usr/sbin/apache2 -k start
> 4987 ? D 0:00 /usr/sbin/apache2 -k start
> 4988 ? D 0:00 /usr/sbin/apache2 -k start
> 4989 ? S 0:00 /usr/sbin/apache2 -k start
> 4990 ? S 0:00 /usr/sbin/apache2 -k start
> 4991 ? S 0:00 /usr/sbin/apache2 -k start
> 4992 ? S 0:00 /USR/SBIN/CRON
> 4993 pts/0 R+ 0:00 ps xa
Czy miał ktoś takie problemy?
Dodam, że w pliku apache2.conf
mam coś takiego:
Kod:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
Proszę o pomoc
pozdrawiam
Radek
grafzero - 29-09-2009 12:39
http://httpd.apache.org/docs/2.0/mod/prefork.html
jestemradek - 29-09-2009 13:55
Zdaję sobie sprawę, że to chodzi o ten prefork, dlatego też wkleiłem fragment pliku apache2.conf
Widzę tam ustawienie max 10 uruchomionych kopii apache, jednak procesów takich jest o wiele wiele więcej..
grafzero - 29-09-2009 15:12
A czytałeś ten link co wkleiłem? Polecam szczególnie "How it Works"
wiesz co znaczy fork()? proces rodzic/dziecko? zasoby systemowe i co się z nimi dzieje jak bedzie zbyt wiele stworzonych procesow potomnych? a może nie znasz angielskiego i nie zamierzasz się go nauczyć? itp, itd.
jeśli tego nie wiesz to darmo będziesz szukał odpowiedzi na "Skąd się wzięło tyle procesów apache?" i czy to jest dobrze czy źle;
chyba, że czytałeś i nie do końca rozumiesz? jeśli tak to przedstaw swój tok myślenia a wtedy ktoś Ci uzupełni luki lub skoryguje błędy w nim
zanotowane.pldoc.pisz.plpdf.pisz.plkonstruktor.keep.pl