Avaleht
uus teema   vasta Hinnavaatlus »  Serverid / Andmemassiivid / Tulemüürid »  Apache vs Nginx, ehk kuidas ma veebiserverit ehitasin. märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
kpihus
Kreisi kasutaja
kpihus

liitunud: 14.04.2003




sõnum 10.06.2010 22:34:00 Apache vs Nginx, ehk kuidas ma veebiserverit ehitasin. vasta tsitaadiga

Sai pandud püsti üks veebisait, 1,5 GHz miski AMD prose, 2GB DDR ja 750 GB SATA ketast raidi peeglis data storage tarvis. Ossiks Debian "lenny"
Wordpress käima lastes tundus tagumiku tundega, et asi on veidi aeglane. Mõtlesin, et testiks Jmetriga. 10 paraleelse kasutajaga jooksutades loopi 10 korda sai lehe laadimise keskmiseks ajaks ~14sek (lehet laedti koos embedded pudinatega). Juhin tähelepanu, et alltoodud kõik testid on tehtud samade parameetritega.

Konfiguratsioon oli siis selline: Apache 2.X+mod_fcgid+php 5.2.X

Proovisin mod_fcgid vahetada välja mod_php vastu, asi läks veel hullemaks ~20 sek keskmiseks ajaks. Hiljem netiavarustes tuhnides jõudsin selgusele, et mod_php ongi jõudluse poolest suht õnnetu.

Edasi komistasin googeldades Nginxi otsa. Nüüd siis konf selline, et Nginx (debaini pakist) + Fastcgi + PHP 5.2.X Kusjuures Nginx suhtles Fastcgi'ga üle lokaalse TCP ühenduse. Jooksin kõik käima, testisin, endiselt keskmine tulemus seal kuskil 20+ sek tuuris.

Ok, väike googeldus tõi selguse, et Nginx PHP'ga väga hästi ei saagi hakkama, aga staatilist kontenti pritsib nagu MG-3 teravat moona.

Sai siis sedasi konfitud, et Nginx on Apache ees reverse proxy'ks. Staatilise kontenti annab Nginx kõvakettalt otse kundele kätte ja dünaamiline (siin kontekstis ainult PHP) küsib apache käest, kes omakorda saab selle mod_fcgid kaudu PHP käest.

Kõik vahva ja sai pmst tööle, kui testisin sain keskmiseks tulemuseks ~17 sek

Nüüd olin nõutu. Google rääkis, et selline kooslus võiks anda mõnedel juhtudel isegi kuni 10 korda boosti, minul läks asi aga võrreldes esialgse ainult apache konfiga isegi halvemaks.

Siis tegin viimase katse, küsisin testides ühte pilti nii Apachelt, kui Nginxilt. Ehk siis 100% staatiline kontent. suurusjärgud olid ümbes sellised, et Nginx andis keskmiselt pildi kätte 200ms'ga apache aga 5ms'ga. Ühesõnaga isegi staatilist kontekti provaidib miskipärast Nginx oluliselt kehvemini, kui Apache.

Olen üritanud kererata worker protsesse juurde ja konnektsionitega mänginud ei miskit, olukord suht sama.

Ühe benefitina peab muidugi mainima, et algses konfis, kui apache ees Nginxi reverse proxyna ei olnud, tõusis 10 kasutajaga 10 tsükklit testi jooksutades masina load suurusjärki 10+ Peale seda, kui Nginx ette sai pandud, on aga load 3-4 kandis.

Mida arvate, kas Nginx ongi ikkagi lootusetu juhtum, või on kuskil ikkagi missconfiguratsioon ?

Ahjaa, soovitus "osta kangem raud" ei ole hetkel pädev. Mind puht põhimõtteliselt huvitab, miks teistel annab nginxi kasutamine reverse proxyna performance boosti, mul aga mitte.
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Andrus Luht
itimees.ee
Andrus Luht

liitunud: 11.06.2002



Autoriseeritud ID-kaardiga

sõnum 13.06.2010 01:01:22 vasta tsitaadiga

mida näitab sul iostat testi ajal?
_________________
Äriklassi serverilahenduste müük, paigaldus ja haldus. SaaS / PaaS / IaaS lahendused
Kasutatud äriklassi serverite, andmesalvede ja võrguseadmete ost-müük-rent
Tier-3 privaatpilvede, virtuaal- ja virtuaal-privaat-serverite lahendused. 24/7 haldus, monitooring
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kpihus
Kreisi kasutaja
kpihus

liitunud: 14.04.2003




sõnum 13.06.2010 19:10:29 vasta tsitaadiga

Täna ei ole masinat ligi ei saa vaadata (või noh masina juurde isegi saaks, kui viitsimist oleks) Aga kuna Apache performinb normaalselt (staatilise contentiga), niginx aga mitte, siis esimese hooga rauda ja rauaga suhtmelist ei kipuks süüdistama. Kuna mõlemad käivad samas masinas. Aga vaatan homme sealt kandist asjale otsa ja postitan midagi.
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Andrus Luht
itimees.ee
Andrus Luht

liitunud: 11.06.2002



Autoriseeritud ID-kaardiga

sõnum 14.06.2010 00:31:11 vasta tsitaadiga

kpihus, piisab sellest, et üks soft suhtleb kettaga ühte funktsiooni pidi ja teine teist ning veidikese koormuse juures võib vahe olla meeletu.

thumbs_up.gif

_________________
Äriklassi serverilahenduste müük, paigaldus ja haldus. SaaS / PaaS / IaaS lahendused
Kasutatud äriklassi serverite, andmesalvede ja võrguseadmete ost-müük-rent
Tier-3 privaatpilvede, virtuaal- ja virtuaal-privaat-serverite lahendused. 24/7 haldus, monitooring
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kpihus
Kreisi kasutaja
kpihus

liitunud: 14.04.2003




sõnum 14.06.2010 12:28:06 vasta tsitaadiga

Mhmm, väga imelik, huvitav, kas ma ei suuda iostatsi õigesti kasutada, aga mulle tundub, nagu kõvaketalt midagi ei loetagi. Samas apache puhul disablesin mod_memcache ning nginxi puuhul pole memcahed moodulit kompileeritudgi.
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Andrus Luht
itimees.ee
Andrus Luht

liitunud: 11.06.2002



Autoriseeritud ID-kaardiga

sõnum 14.06.2010 15:41:17 vasta tsitaadiga

kpihus, pane iostats jooksma 1sek refreshiga. Siis näed hetke asju...
_________________
Äriklassi serverilahenduste müük, paigaldus ja haldus. SaaS / PaaS / IaaS lahendused
Kasutatud äriklassi serverite, andmesalvede ja võrguseadmete ost-müük-rent
Tier-3 privaatpilvede, virtuaal- ja virtuaal-privaat-serverite lahendused. 24/7 haldus, monitooring
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kpihus
Kreisi kasutaja
kpihus

liitunud: 14.04.2003




sõnum 14.06.2010 16:10:04 vasta tsitaadiga

panin watchida -d votmega aga tundub nagu muutusi ei ole.
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Andrus Luht
itimees.ee
Andrus Luht

liitunud: 11.06.2002



Autoriseeritud ID-kaardiga

sõnum 14.06.2010 16:12:31 vasta tsitaadiga

kpihus, milleks sulle see -d ?

# iostat -m 1

thumbs_up.gif

_________________
Äriklassi serverilahenduste müük, paigaldus ja haldus. SaaS / PaaS / IaaS lahendused
Kasutatud äriklassi serverite, andmesalvede ja võrguseadmete ost-müük-rent
Tier-3 privaatpilvede, virtuaal- ja virtuaal-privaat-serverite lahendused. 24/7 haldus, monitooring
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kpihus
Kreisi kasutaja
kpihus

liitunud: 14.04.2003




sõnum 14.06.2010 16:47:02 vasta tsitaadiga

-d oli lihtsalt selleks, et mutusi paremini märgata. Igastahes isegi isostat -m 1 näitab, et ketas istub pmst idles nii apache kui nginxi puhul. Kuna html lehe kaal, mida ma hetkel pärisin on ca 500 baiti, siis on see ka loogiline.

Huviutav töhelepanek on veel see, et apache puhul tulevad kõik vastused vahemikus 1-5 ms kohale. Mõni üksik oli paarisekundiline, aga see on pigem statistiline viga. Nginxi puhul on ka väga palju vastuseid vahemikus 1-10 ms aga sams on terve hulk vastuseid sekundites, isegi kuni 10 sekundit. See viibgi keskmise üles. Näiteks viimase testi puhul oli keskmine nginxi puhul 160 ms, median aga 19ms. Samas apache puhul oli keskmine 3ms ja median 2ms. Testi sisuks oli üks 400 baidine puhas html, ilma piltidete. 20 paraleelset threadi ja seda loop'iti 100 korda.

Ühesõnaga tundub, et miskil põhjusel Nginx ei toimeta stabiilselt.
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 15.06.2010 02:20:40 vasta tsitaadiga

http://www.varnish-cache.org/
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kpihus
Kreisi kasutaja
kpihus

liitunud: 14.04.2003




sõnum 15.06.2010 21:31:19 vasta tsitaadiga

varnishiga proovisin, koos apachiga andis laias laastus sama tulemuse, miks apache koos nginxiga. Nagu ma aru saan, siis oskab Varnish ainult cäshida ? Seda päris ei taha. Eesmärk on saada apache ette ningi lightwheigt asi, mis tegeleks otse staatilise kontendiga, ainult keerulisemad asjad (a'la PHP) anaks edasi apachele. Teoorias tundub nginx just selline hea asi olevat, aga kahjuks ei saa sellega kaugeltgi nii hästi hakkama, kui apache naturaalselt. Nagu juba ennist mainisin, siis masina load on küll madalam, mis on ka positiivne, aga mida ma selle jõude seisva loadiga ikka peale hakkan.
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
linnumees
HV kasutaja

liitunud: 15.06.2005




sõnum 16.06.2010 04:17:58 vasta tsitaadiga

Varnishiga saabki seda kõike teha.

http://en.wikipedia.org/wiki/Load_%28computing%29
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Hinnavaatlus »  Serverid / Andmemassiivid / Tulemüürid »  Apache vs Nginx, ehk kuidas ma veebiserverit ehitasin.
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.