View previous topic :: View next topic |
Author |
Message |
mcbarlo Tux's lil' helper
Joined: 18 Jul 2005 Posts: 130
|
Posted: Sun Jun 27, 2010 11:28 am Post subject: Apache przestaje odpowiadac - przekroczenie MaxClients |
|
|
Zauwazylem, ze czasami moj Apache sie zawiesza. W logach jako ostatni mam taki wpis:
Code: | [Sun Jun 27 05:33:47 2010] [error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting
[Sun Jun 27 05:34:46 2010] [error] server reached MaxClients setting, consider raising the MaxClients setting |
Jak widzicie taka sytuacja ma miejsce zupelnie poza szczytem co mnie dziwi tymbardziej.
Apache jest skompilowany z flaga threads, wiec moj modul mpm wyglada tak:
Code: | <IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
ServerLimit 80
MaxClients 2000
MaxRequestsPerChild 10000
</IfModule> |
Troche mi sie wierzyc nie chce, ze 2000 klientow bylo polaczonych z serwerem jeszcze o tej porze...
Kombinowalem juz z konfigami i nie moge nic konkretnego wymyslic. Moze skompilowac Apache z -threads i uzywa preforka? Moze to cos zmienic?
Tak mam skompilowanego Apache (nie wiem czy jest sens te wszystkie moduly pakowac):
Code: | [ebuild R ] www-servers/apache-2.2.15 USE="ssl threads -debug -doc -ldap (-selinux) -static -suexec" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif speling status unique_id userdir usertrack vhost_alias -asis -authn_alias -cern_meta -charset_lite -dumpio -log_forensic -proxy_ftp -substitute -version" APACHE2_MPMS="-event -itk -peruser -prefork -worker" 0 kB |
Bede wdzieczny za wszystkie sugestie. |
|
Back to top |
|
|
Core n00b
Joined: 14 May 2007 Posts: 29
|
Posted: Mon Jun 28, 2010 9:20 am Post subject: |
|
|
Witaj, do pewnego czasu Apache (nie wiem jak Twój) były podatne na ataki typu slowloris, być może ktoś coś podobnego przeprowadza na Twoim serwerku. Ja na Twoim miejscu nie kompilowałbym Apache z wątkami, tylko zostawił starego, poczciwego i superstabilnego preforka a przed nim ustawiłbym jakieś reverse proxy.
Polecam haproxy, perbala lub SQUID'a. Nie do końca rozumiem, dlaczego rozwiązania tego typu dają tak wielki strzał wydajności, ale przykładowo jedna z często uczęszczanych domen tworzyła sobie ponad 100 wątków Apache, dawała mocno po loadzie serwera (bywało i koło 10-15) a przy tym tak samo jak u Ciebie, czasami się przytykała. Po zainstalowaniu perlbala mam 5 wątków Apache, bardzo niskie load a strona śmiga jak szalona. Jeżeli będziesz potrzebował adresów zewnętrznych w logach apache i w REMOTE_HOST to zainteresuj się modułem mod_rpaf |
|
Back to top |
|
|
mcbarlo Tux's lil' helper
Joined: 18 Jul 2005 Posts: 130
|
Posted: Sat Jul 03, 2010 10:42 am Post subject: |
|
|
Poczytam o tym ataku, bo cos mi sie wydaje, ze to bedzie przyczyna.
Zawsze serwer osiaga MaxClients w godzinach kiedy jest najmniejszy ruch. W szczycie jest ok.
Mam jeszcze jedno pytanie. Dlaczego jesli serwer osiagnie MaxClients sie poprostu wiesza. Nie odpowiada na zadne zapytania, nic sie nie da zrobic. Tylko restart apache i potem smiga. |
|
Back to top |
|
|
SlashBeast Retired Dev
Joined: 23 May 2006 Posts: 2922
|
Posted: Sat Jul 03, 2010 2:27 pm Post subject: |
|
|
mcbarlo wrote: | e jedno pytanie. Dlaczego jesli serwer osiagnie MaxClients sie poprostu wiesza. Nie odpowiada na zadne zapytania, nic sie nie da zrobic. Tylko restart apache i potem smiga. | Bo to apache. Generalnie jak ktos ma sobie apache bez reverse proxy to jest to po prostu jawna prowokacja.
Postaw na dobra, radziecka technologie, uzyj nginksa jako revproxy albo calkowicie przeniesc sie na niego z apache. |
|
Back to top |
|
|
bartmarian Guru
Joined: 28 Nov 2005 Posts: 557
|
Posted: Sat Jul 03, 2010 8:45 pm Post subject: |
|
|
jak sądzę innym pomocnym rozwiązaniem może być: Code: |
iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 8 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable |
lub DROP (z resztą nie tylko dla tej usługi...) _________________ Człowiek bez religii jest jak ryba bez roweru.
Albercik się pomylił, prędkość światła to prędkość, wszechświat nie ma punktu odniesienia.
Perpetuum mobile - np. jowisz + jego księżyc, siły pływowe. Proste i niepraktyczne. |
|
Back to top |
|
|
mcbarlo Tux's lil' helper
Joined: 18 Jul 2005 Posts: 130
|
Posted: Sun Jul 04, 2010 6:21 am Post subject: |
|
|
No i dzis znow... 3:26 i Apache zdechl.
Czytalem jeszcze o mod_qos do Apache. Niestety dla amd64 jest jeszcze niestabilny, a nie chcialbym w serwerze takiego pakietu. No, ale jesli ktos z Was ma dobre doswiadczenia z nim zwiazane to czemu nie sprobowac?
Co do rev proxy to jest zagwozdka na kilka wieczorow, a w tej chwili mam bardzo malo czasu. Mysle, ze skorzystam narazie z firewalla. bartmarian powiedz mi prosze czy limit do 8 nawiazanych polaczen dobrales jakos doswiadczalnie? Nie jest to za malo? |
|
Back to top |
|
|
bartmarian Guru
Joined: 28 Nov 2005 Posts: 557
|
Posted: Sun Jul 04, 2010 9:18 pm Post subject: |
|
|
w zasadzie u siebie mam 6 a nie 8, musisz testować czy stronka się prawidłowo otwiera i tyle... _________________ Człowiek bez religii jest jak ryba bez roweru.
Albercik się pomylił, prędkość światła to prędkość, wszechświat nie ma punktu odniesienia.
Perpetuum mobile - np. jowisz + jego księżyc, siły pływowe. Proste i niepraktyczne. |
|
Back to top |
|
|
|