Üdv néktek,
Adott a következő konfig: AMD6000+ x2 64bit, 4x2 GB 800MHz dual channel DDRII RAM, 4db SataII winchester RAID -be kötve. A szerveren Ubuntu Server Edition 8.10 64bit fut + Apache2.2 (apache2-mpm-prefork) + php5 (libapache2-mod-php5) + MySQL5 (+vsftp). Webszerverként funkcionál, n darab domain -nel. 100 Mbites porton csücsül.
Maga a szerver gyors, FTP -n nagyon gyorsan tudok kapcsolódni hozzá, fájlokat le/feltölteni, SSH -n is gyors.
Viszont a rajta host -olt weblapok este, csúcsidőben belassulnak... ilyenkor kb. 600-1000 ember próbálja egyidőben elérni a weblapok valamelyikét. (a load nem magas [0.6-0.2 között ingadozik], a swap tárhely egyáltalán nincs használatban, "elfér" minden a memóriában)
Az Apache konfigom a következő (ezt a részt gondolom érdekesnek, azért csak ennyit másolok be):
Timeout 10
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 5
<.IfModule mpm_prefork_module>
StartServers 25
ServerLimit 256
MinSpareServers 15
MaxSpareServers 75
MaxClients 256
MaxRequestsPerChild 1000
<./IfModule>
HostnameLookups Off
Gugliztam már Apache teljesítmény hangolásra (természetesen angol leírások között is), de volt, hogy teljesen ütköző elvek alapján összerakott konfigokat találtam... pl. egyik helyen a Timeout értékének 10 -et javasolnak, másik helyen 1000 -ret...
Ha valakinek van hasonló kihasználtságú webszervere vagy dolgozik ilyennel, az kérem, segítsen!
Köszönöm előre is!
UPDATE: időközben Apache helyett Lighty -ra váltottam, ezért lentebb már azzal kapcsolatban kérdezek! :)
- 2039 megtekintés
Hozzászólások
Nem dinamikus oldalak ezek veletlenul?
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
Ha netán dinamikus oldalak lennének, érdemes lenne megnézni, hogy mire kell sokat várni. (sql,auth backend,php fordító)
- A hozzászóláshoz be kell jelentkezni
Dinamikus, php oldalak vannak rajta. A generálási idejük kb itt alakul: 0.0627 másodperc
Használok eAcceleratort a php kód cachelésére (64 MB memória van kiosztva az eAccelerator részére, ebből átlag 32 MB van felhasználva)
Ha netán dinamikus oldalak lennének, érdemes lenne megnézni, hogy mire kell sokat várni. (sql,auth backend,php fordító)
Nagyjából milyen logokat olvasgassak ezzel kapcsolatban? :) (Munin nincs telepítve)
- A hozzászóláshoz be kell jelentkezni
Vannak ilyen mindenfele profiler cuccok php-hoz, azok jol meg tudjak mondani.
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
mysql-ben kapcsold be a slow query log-ot.
Tyrael
- A hozzászóláshoz be kell jelentkezni
Slow_queries 0
Lekérdezési statisztika: Az indulás óta 68 030 421 kérés került elküldésre a szerverhez.
Összesen ø óránként ø percenként ø másodpercenként
68 M 255.88 k 4.26 k 71.08Szerver forgalma: Ezek a táblázatok a MySQL szerver hálózati forgalmának statisztikájáit mutatják az indítástól kezdve.
Forgalom 1 ø óránként
Fogadott 8 202 MB 31 MB
Küldött 744 GB 2 867 MB
Összesen 752 GB 2 898 MBKapcsolatok ø óránként %
Max. egyidejű kapcsolatok száma 28 --- ---
Sikertelen próbák 1 0.00 k 0.00%
Megszakítva 14 k 52.41 0.67%
Összesen 2 089 k 7 856.97 100.00%
- A hozzászóláshoz be kell jelentkezni
vedd le a slow query intervalumat 1 masodpercre (ez a legkissebb beallithato limit perconas patch nelkul), alapbol 2 masodperc ha jol emlekszem.
Tyrael
- A hozzászóláshoz be kell jelentkezni
Beállítottam a slow query intervallumát 1 másodperce, már két napja. Azóta is Slow_queries : 0... valószínűleg nem a mysql a ludas.
- A hozzászóláshoz be kell jelentkezni
Próbáld meg KeepAlive off beállításokkal, kapcsold be a syn sütiket, nézz slow query logot, az alkalmazásba implementálj Memcachet, profiling, stb.
- A hozzászóláshoz be kell jelentkezni
mpm_prefork helyett mpm_worker v. mpm_event + mod_php helyett fastcgi
- A hozzászóláshoz be kell jelentkezni
... kb. 600-1000 ember próbálja egyidőben elérni a weblapok valamelyikét ...
MaxClients 256
Ez így rendben van?...
--
maszili
- A hozzászóláshoz be kell jelentkezni
nekem is ezen akadt meg a szemem:)
proci nem fogy el a sok kereskor?
- A hozzászóláshoz be kell jelentkezni
Ha nagyobb értéket adok a "MaxClients" -nek, akkor az Apache indításkor kiírja, hogy túl nagy érték és automatikusan 256 -ra állítja vissza...
Proci kihasználtság kb. 1-8% között ingadozik, a többi "idle"...
- A hozzászóláshoz be kell jelentkezni
ServerLimit 1000
MaxClients 500
Persze ki kell kalkulálni, hogy mennyit bír el a gép memóriával. Nézd meg, hogy átlagosan mennyi memóriát fogyaszt egy apache szál, majd az apache-nak szánt memóriát oszd el egy szál memória átlagával. Így megkapod, hogy közelítőleg mennyi szál fér el egyszerre a memóriában.
--
maszili
- A hozzászóláshoz be kell jelentkezni
Mivel többen javasoltátok, hogy fastcgi modulként kellene használni a php -t, ezért Lighty -ra váltottam (tudom, Apache is tud ilyet... de ha már fcgi, akkor szvsz Lighty).
Viszont akad 1-2 kérdésem a Lighty -val kapcsolatban... már böngészem egy ideje a konfig fájlokat a neten, meg a tippeket, de arra pl. nem bírok rájönni, hogyan tudok úgy létrehozni egy virtualhost -ot, hogy az csak a 443 -as portra hallgasson, szóval csak https -en keresztül legyen elérhető.
Így néz ki a konfig:
$HTTP["host"] == "phpmyadmin.mydomain.com" {
server.indexfiles = ( "index.php" )
server.document-root = "/srv/web/phpmyadmin/"
}
Ezt szeretném úgy megfaragni, hogy csak a 443 -as porton hallgasson. Most engedélyezve van az ssl-mod az egész Lighty -ra, ezért minden hostolt domain hallgat a 443 -ason is... meg a 80 -ason is. Ez is elérhető a http://phpmyadmin.mydomain.com címen és a https://phpmyadmin.mydomain.com címen is... :S
- A hozzászóláshoz be kell jelentkezni
Szóval azt akarod ezzel mondani, hogy a HTTP["host"] helyett használjam a SERVER["socket"] -et? :)
- A hozzászóláshoz be kell jelentkezni
miutan SSL eseteben nem hasznalhato ep esszel name based vhost, igen.
hasznalj ip alapu vhostot.
esetlegesen rakj felre egy IPt erre a celra, s talan kisebb esellyel botlanak bele kiddie-k a phpmyadminba.
- A hozzászóláshoz be kell jelentkezni
Köszi, sokat segítettél! :)
(bár olvasgattam a Lighty Wikijét, de nem voltam elég figyelmes :( )
- A hozzászóláshoz be kell jelentkezni