Portál AbcLinuxu, 10. května 2025 05:34

Dotaz: DoS zahlceni (UTOK?/CHYBA?)

11.7.2006 10:02 Honza
DoS zahlceni (UTOK?/CHYBA?)
Přečteno: 510×
Odpovědět | Admin
Dobry den,

muj problem je ze v podstate kazdy den se nam zahlti(LoadAvg > 20) server. Nevim presne cim to je ale musim restartovat apacha aby se to hodilo do klidu.

Puvodne mohl byt problem v memory_limitu (php.ini) tak kuli nekolika narocnej aplikacim jsem musel nastavit na 200MB Dneska jsem z MRTG zjistil ze TCP Connection stouplo z puvodnich 30 na 160 otevrenejch spojeni soucasne.

Nevite kde muze byt slabe misto?
Existuje nejake omezeni poctuu pripojeni na server ze stejne IP v apachu a ev. i v mysql?
Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Heron avatar 11.7.2006 10:36 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevíme, nenapsal jste prakticky žádné informace.

Co vám tam běží? Na čem to běží?

200MB memory limit pro php? Můžu se zeptat, která webová aplikace chce tolik?
Heron
11.7.2006 10:59 HonzaWWW
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Linux SW 10.2
Kernel 2.4.32
Apache 2.0.58
PHP 5.4.1
Mysql 4.0.27

200MB v memory_limit je nutnost kuli imortovani vekeho mnozstvi dat...
12.7.2006 13:05 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Memory limit pro PHP skript se dá nastavit pro konkrétní adresář, takže default doporučuju nějakých 8MB, případně pokud situace dovolí, tak i míň, a zvrhle velké memory limity nastavujte jen tam, kde jsou potřeba.
~ w w w w (oo)   [oo] w w w w ~
11.7.2006 13:42 HonzaWWW
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nikdo neporadi? Je to celkem akutni...
Nemuze to byt treba nejaka lokalni chybka mezi PHP 5.1.4 a MySQL 4.0.27 kdy nekdo spusti nejakej script kterej zahlti DB?
11.7.2006 16:44 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Tak zkus trochu analyzovat co to brzdí. Jaké skripty běží, kdo na ně přistupuje, jestli není něco špatně v nich…
11.7.2006 16:55 HonzaWWW
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
No v podstate situace je takova:
Zniceho nic zacne stoupat pocet procesu z cca 110 na 350 coz je podle me maximum dane apachem(MaxClient=150), vytvori se hromada procesu apache a k nemu hromada procesu mysqld. Pomoci SNMP zjistim pocet TCP Connectu ze se z cca 20 zveda az k 160(150 je max od apacha)...
Scriptu jsou tisice takze prohledat je vsechny nepripada v uvahu..
access_log ma desetitisice radku za hodinu - kdyztak pls dopructe nejakej analyzator logu(odhali treba utoky a roztridi v danem casovem limitu IP a domeny) v pasivnim rezimu
11.7.2006 16:58 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Pro začátek bych se podíval na server-status apache, jaké URL právě servíruje a na co čeká. Pak případně analyzovat skripty odpovídající požadovaným URL.
12.7.2006 09:19 HonzaWWW
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Server-status jsem aktivoval ale vzhledem k tomu ze pouzivame ModRewrite misto Virtual Hostu nevidim ke ktere domene danej script patri.

V dobe problemu mi server-status ukazuje ze se vytvorilo MaxClient procesu apache (MaxClients=96) a u vsech techto procesu je nastaven mod operace na "W" coz je "Sending Reply" a SS=20-800sekund

Podrobne:
Srv = 4-11
PID = 16352
Acc = 0/32/12003
M = W
CPU = 0.54
SS = 508
Req = 0
Conn = 0.0
Child = 0.00
Slot = 151.51
Client= 195.x.x.x
VHost = www.domena.cz
Request = GET /data/scripts/ HTTP/1.1


Dost zajimave jsou hodnoty Acc 0/32/12003 (resp. ta treti - pocet pristupu na slot)
11.7.2006 16:50 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Odpovědět | | Sbalit | Link | Blokovat | Admin
vypnut KeepAlive, nastavit MaxClients na rozumnu hodnotu (zacal by som na 64). Takisto, v pripade php jednoznacne pouzivat MaxRequestsPerChild nastavit tak 128.
11.7.2006 17:01 HonzaWWW
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Soucasne nastaveni:

KeepAlive=off
MaxClients=150
MaxRequestsPerChild=0

Super mozna ta chyba je v MaxRequestsPerChild. Pokud je MaxRequestsPerChild=0 tak muze obsluhovat do nekonecna ....zkusim zmenit
11.7.2006 17:11 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
uff, nula, ziadnemu programatorovi neverim, ze programuje bez memory leakov, v pripade, ze mi to tvrdia testy, posuniem hranicu na 1024.
ad mysql, tych 150 konexii je podla mna nan prilis vela, tam by som dal limit 48, alebo este lepsie, zacal by som analyzovat narocnost query a (zaroven) porozmyslal nad fastcgi.

12.7.2006 09:27 HonzaWWW
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Bohuzel to dela porad i pri takovemto nastaveni. Server-status ukazuje prilis mnoho pristupu na Slot ale to nevim co to presne znamena...

KeepAlive=off
MaxClients=96(mene nemohu)
MaxRequestsPerChild=64
11.7.2006 17:24 HonzaWWW
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Diky za rady. Pustim se do toho a pres noc se uvidi jesli to bude OK.

Jeste me ale napada toto:
Keep Alive= off
Predstavte si ze nekdo chce stahnout zrcadlo celeho webu/ů a vzhledem k tomu ze Keep Alive= off nemuze vyuzit teto vyhody a proto vytvori pro kazdej obrazek a stranku zvlast proces cimz zahlti server. Je to mozne/realne? Treba prave nastaveni Keep Alive=on by to mohlo vyresit.
12.7.2006 10:27 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
na to potrebujete poladit MaxKeepAliveRequests a KeepAliveTimeout. Odporucam znizovat MaxClients, alebo pridat dalsiu pamat do servera.
12.7.2006 13:19 jurasek | skóre: 10
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pocet spojeni z IP umozni nastavit mod_limitipconn.
http://dominia.org/djao/limitipconn.html
15.7.2006 20:48 mm123 | skóre: 1
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
mod_cband - http://www.mod-cband.com/ - ten to umi spolu i s datovymi limity apod. pekne pro konkretni virtualhosty vcetne nasledneho sledovani jejich aktivity...
5.9.2006 16:57 smrtak_
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevim jak moc se trefim, ale taky jsem mel na serveru takoveto vypadky v poslednich dnech cca 3x za den, chyba byla nadmerne velke tabulce 800 MB s 6M zaznamu + mysql s max poctem pripojeni 500, stacilo tedy aby nektery z uzivatelu spustil dotaz na tuto tabulku v urcite kombinaci ( napriklad vic uzivatelu najednou) a i kdyz tento dotaz nebyl nikterak narocny stacilo to k tomu aby se vytvorila fronta ktera na par minut odstavila server... proto jsem provedl optimalizaci tabulky, ktera ma nyni 50 MB a PHP skryptu, ktere k ni tolik jiz nepristupuji.... vse je nyni opet ok ...(nejspis by i pomohlo snizeni poctu max pripojeni k mysql a apachi, ale nejsem moc rad kdyz my na kolika serverech hazi napriklad phpbb chybu mysql not max connection) :)
5.9.2006 19:23 R
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Na zistovanie takychto veci je dobre mat zapnute log-slow-queries v MySQL - a potom si tie podozrive veci vyskusat spustit rucne.
6.9.2006 00:50 smrtak_
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Prave ze slow log queries mi prilis nepomohl, nemel sem zadny extremne pomaly dotaz, bohuzel vsak k chybe doslo pokud techto dotazu bylo v jeden okamzik vice a nestacila cache pamet pro tuto tabulku, zahrabal disk a nastaly komplikace....
5.9.2006 19:29 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: DoS zahlceni (UTOK?/CHYBA?)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Stříllím od boku: nemůže to dělat nějaká PHP stránka nebo pravidlo v mod_rewrite, která se pokouší udělat nějaké "přesměrování" nebo include na straně serveru (připojí se jakoby další HTTP klient k serveru, ale místně), které se zacyklí?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.