praegune kellaaeg 20.06.2025 18:41:32
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
kpihus
Kreisi kasutaja

liitunud: 14.04.2003
|
10.06.2010 22:34:00
Apache vs Nginx, ehk kuidas ma veebiserverit ehitasin. |
|
|
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 |
|
 |
Andrus Luht
itimees.ee

liitunud: 11.06.2002
|
|
tagasi üles |
|
 |
kpihus
Kreisi kasutaja

liitunud: 14.04.2003
|
13.06.2010 19:10:29
|
|
|
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 |
|
 |
Andrus Luht
itimees.ee

liitunud: 11.06.2002
|
|
tagasi üles |
|
 |
kpihus
Kreisi kasutaja

liitunud: 14.04.2003
|
14.06.2010 12:28:06
|
|
|
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 |
|
 |
Andrus Luht
itimees.ee

liitunud: 11.06.2002
|
|
tagasi üles |
|
 |
kpihus
Kreisi kasutaja

liitunud: 14.04.2003
|
14.06.2010 16:10:04
|
|
|
panin watchida -d votmega aga tundub nagu muutusi ei ole.
|
|
tagasi üles |
|
 |
Andrus Luht
itimees.ee

liitunud: 11.06.2002
|
|
tagasi üles |
|
 |
kpihus
Kreisi kasutaja

liitunud: 14.04.2003
|
14.06.2010 16:47:02
|
|
|
-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 |
|
 |
linnumees
HV kasutaja
liitunud: 15.06.2005
|
|
tagasi üles |
|
 |
kpihus
Kreisi kasutaja

liitunud: 14.04.2003
|
15.06.2010 21:31:19
|
|
|
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 |
|
 |
linnumees
HV kasutaja
liitunud: 15.06.2005
|
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
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.
|