Re: lug-bg: Otnosno lekciqta za http serverite
- Subject: Re: lug-bg: Otnosno lekciqta za http serverite
- From: whitefang@xxxxxx (Angel Valkov)
- Date: Fri, 18 May 2001 03:51:44 +0300
On Thursday 17 May 2001 14:44, you wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
Mi mai i ti mnogo ne 4etesh :)
Naistina threadinga iziskva pove4e usilia za realizacia
Glavno za da osigurish bezproblemen dostyp na otdelnite threads do
podeleni resursi. No ako proektirash cialosno organizaciata na process flow -a
taka 4e da minimizarash shared dannite kato kapsulirash goliama 4ast ot tiah
vyv eksempliari za daden thread usiliata ne sa tolkova golemmi. :)
Ne e zadyljitelno da e realizirano s metodite na OOP capsuliraneto no e po
iasno i iz4isteno.
Otnosno skorostta :)
Zna4i tuka ima mnogo ako-ta
1.Na kolko CPU se izpylniava dadenia proces
2.Kakvo koli4estvo shared resouces mejdu thread-ovete se polzvat i
kalko efektivno se izpolzvat metodite za osiguriavane na konkureten dostyp
do tezi resursi ( mutexes,semaphores ,events, i za kernel-a spin-locks )
V sl. sys syrvyren softuer koito otvaria nova konekcia za vseki client (
primerno socket ) koncepciata s threads e dosta dobra.
Ako razgledash edin tipi4en primer (primerno ot infoto na glibc za
manipulirane na sockets) shte ustanovish 4e v lavnata programa ( master
process v sl s izpolzvane na fork, ili controling thread v sl. s threads )
niama nujda ot nikakvi resursi koito da se odeliat mejdu otdelnite "worker"
threads. Edinstveno e neobhodimo master thread-a da pazi informacia za
syzdadenia thread ili child process za vsiaka zaiavka ot clent za vryzka. za
da moje sled opredelen period da unishtoji thread-a primerno ( prevantivna
miarka sreshtu hung procesi ili thread-ove koito moje da ti predizvika v sl.
DoS kato ti iziade vsi4kite portove ako po niakakva pri4ina child processite
ili threadovete ti zavisvat.
Obema na pammeta koito se polzva e po malyk otkolkoto ako pravish fork-ove
poradi prostata pri4ina 4e
razmera koito obektite izpolzvani za predstaviane na localnite za thread-a
storage svyrzan s upravlenieto mu a ne negovite localni danni e dale4 po
malyk ot tozi na neobhodimite strukturi za poddyrjane na otdelen proces.
Kolkoto do Netscape . Ami i tuk mnogo greshis. Ne e baven zaradi tova
Dori v sl. s Netscape ima edno predimstvo ot izpolzvaneto na threading
Ako si si build-val sam mozilla-ta proveri dali si ia compiliral sys podryjka
na dns-look-up-a v otdelen thread. Zashtoto ako ne si opredeleno ako ne si na
neshto >100Mz i DNS na IPS ti e lagavo ima da se razhojdash s mishkata po
masata i da se 4udish zashto kursora ne se dviji dokato ne ti resolv-ne
http://boza.net ;) Baven e zaradi NSPR. ( NS Portable Runtime ) . A
"portable" kogato stava vapros za binary interface zna4i "myka, myka" po4ti
syshtoto kato vmesto tova da beshe napisano na JAVA - malko po byrzo e. No
nai golemia "lag"idva ot izpolzvaneto na XML , XPointer za interface-a.
Zashto ne opitash naprimer Galeon. Toi polzva rendering engin-a na Mozilla-ta
, i GTK za interface-a si.
> znqachi izslushah lekciqta za web serverite..
>
> abe da kava ne sym sywsem syglasen s lektora (neznam koj e)
>
> znachi za forkwaneto obqsnenieto ne beshe mnogo qsno
>
> neka pyrwo izqsnim
> zashto procesite se forkwat
>
> znachi imame edin parent proces
> kojto prawi fork i po tozi nachin puska pod-proces(child)
>
> kojto da se zanimawa s konekciqta...
> i moeto mnenie e slednoto
> znachi teoriqta na lektora beshe da se polzwat threads
>
> spored mene
> kogato polzwame threads ... to togawa imame samo edin proces
> kojto w edin moment stawa mnogo tevak
> t.e. kogato imame 100 konnectiona primerno
> predstawete si tozi demon kolko resursi shte izqde
> i taka kato qdroto ne e sposobno da dade wsichki resursi na edin proces
> w edin moment shte widite slednoto w syslog-a si:
>
> kernel: killing pid xxx
> i shte go killne zashtoto ne move da mu usigori neobhodimite resursi...
>
Da shte go kill-ne Ama tva e mnogo malko veroiatno osven ako
ne alocirash vseki byte koito programata ti taka 4e da ne e pageble
A i se predpolaga vse pak 4e pri segasnata cena na pametite niama da
puskash primerno Web Server koito da darji > 1000 connections na mashina sys
16MB Nali ?. Po skoro predi da ti se iz4erpa pametta ili file handles za
dadenia process shte ti se iz4erpi max limit-a na thread-ovete koito mojesh
da syzdadesh i ako programista si e svarshil rabotata kakto triabva prosto
niama da se syzdade nov thread - za momenta )
> 1wo za thread e neobhodimo mnogo pisane...
> 2ro riskuwame da go killne kernela poradi nedostig na resursi
>
> i ne bih kazal che sa naj byrzi
>
> neka da widim kakwo shte stane s forknatite
>
> parent-a shte pusne malko child-owe
> no wseki edin po otdelno nqma da iska tolkowa resursi kolkoto shte iska
> threadnatiq
>
> shte imame prosto poweche procesi koito shte qdat po malko
> i ako w edin moment nqma resursi
> to kernela shte ostawi sledwashiq process w queue kydeto toj shte izchaka
> wremeto si
> koeto nqma da prewishi poweche ot 10-20 secs predpolagam...
>
> predpolagam ste wivdali kakwo stawa kogato pusnete netscape na po slaba
> mashina
>
> towa shte stane i s threadnatiq server
>
>
> ........
>
> a i oshte neshto
> lektora e trqbwalo da prochete malko poweche za kernelite ...
> zashtoto towa koeto kaza ne e sywsem wqrno
> a i concepciqta za operacionna sistema i kernela na linux-a
> sywsem ne e takawa kakwato kazwa toj
>
> znachi do kolkoto razbrah (move i da gresha)
> lektora goworeshe che funciqta za memory alocation e za da se chetat
> files... mi .............
Ne biah na seminara za koeto syjaliavam. Ne sam pro4el oshte i lekciite .
Ama i tuka mai lektora ne greshi ;) Ako govori za MM IO (Memory Maped IO).
mmap e to4no memmory alocation za da se 4etat i pishat file-s.
Naprimer Apache+PHP dava dosta po dobri resulatati ako e build-nato sys mmap
bibliotekata . Neotdavna daje mai se obsyjdashe temata za cachirane na php
scriprove v psevdo-izpylnim vid. To syshto polzva mmio.
A sega se seshtam za oshte edno neshto koeto realizira shared memmory ( pod
formata na file-ova systema no v pametta - "shmfs " i e 4ast ot kernel-a.
>
>
>
>
>
> razbira se towa si e moe lichno mnenie ...
> priznawam che ne sym potyrsil dokumentaciq
> no ot towa koeto sym natrupal kato experience
> moga da izweda samo towa !
>
>
> - --
> - -===============================================================-
> - - Regards, AngelFire -
> - - Stanislav Lechev <firedust@xxxxxxx> -
> - - PGP Key: http://firedust.vega.bg/pgp/StanislavLechev.asc -
> - - Vega Internet Service Provider (tm) -- http://www.vega.bg -
> - -===============================================================-
> Everyone is a genius.
> It's just that some people are too stupid to realize it.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.0.4 (GNU/Linux)
> Comment: For info see http://www.gnupg.org
>
> iD8DBQE7A7m38RPXBhiMqewRAkLIAKCBT5BVtzHguNo0jGaw6Dc9lGOk4ACeJ+vL
> E7j/jDYtNMoH7mfMYct0n80=
> =GG3r
> -----END PGP SIGNATURE-----
> ===========================================================================
> A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers)
> http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
===========================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers)
http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
|