Re: Az evszazad poenja.
Testa <[email protected]> Thu, 27 Nov 2014 01:02:24 +0000
| Newsgroups | gmane.linux.gentoo.user.hungarian |
|---|---|
| Message-ID | <[email protected]> |
Szia Peter, Alapjaba veve a script csak a logok valtozasanak ellenorzesert felel. Tehat igen ez nem file olvasas. De sajnos a hulye fs bele nyit. Nos a lenyeg, hogy bele keveredtem egy fogadasba. Egy par fejleszto akikkel dolgozom keszitett egy php programot ami 1 gigabajtnyi xmlt dolgoz fel. A felhaborodasom oka hogy : -Minden egyes fajlt egyesevel beraknak a tmp-be. -Majd onnan kiolvasva dolgozak fel es -Majd minden egyes szekciot egyesevel updatelnek a mysql szerveren. -Ezzel 12 orara naponta 100% lekra terhelnek 2 magot. (egy a mysql nek egy a scriptnek.) -Mondanom se kell mikor meglattam a 80 fokos cpu-t azonnal lelottem a mysql-t... -Ebbol vitam lett, es azzal lett lezarva hogy ezt nem lehet maskepp. -Viszont a fonokuk fogadott velem: Ha kepes vagyok 1 ora alatt lefutattni egy hasonlot ugy hogy ellenorzom amit a rendszer normal esetben csinal akkor kirugja ezt a 2 idiotat. De csak nodejs vagy php lehet C be nem er. Nos biztonsagosan -Ofast nelkul -O3 nodejs el a program 40 masodperc alatt futt le ha a file check futt.(O3 nal nincs hiba) -Ofast os nodejs el ez 21 masodperc. Hat es igen tevedtem. Mivel a kerdest tokeletesen megoldottam, de sajnos nem magamtol: ki kell kapcsolni a grsec et. (Nem eles szerver szoval nem lesz baja 1 napot kibir )... " Ezek egyike sem jelent milisec-enk=C3=A9nti korl=C3=A1toz=C3=A1st. Viszon= t, ha j=C3=B3l =C3=A9rtem ezek olyasmir=C5=91l sz=C3=B3lnak, hogy =C3=A9rtes=C3=ADt=C3=A9= st lehet k=C3=A9rni a kernelt=C5=91l ha egyik vagy m=C3=A1sik f=C3=A1jl v=C3=A1ltozik. Val=C3=B3sz=C3=ADn=C5=B1= hogy az fs.statSync-ben van ilyen figyel=C3=A9s is k=C3=A9rve, s azok t=C3=BAl k=C3=A9s=C5=91n leszne= k elengedve. Tal=C3=A1n mintha ugyanazon 300 f=C3=A1jlt t=C3=B6bbsz=C3=B6r=C3=B6sen is figyelni p= r=C3=B3b=C3=A1ln=C3=A1 a script. =C3=89s lehet hogy csak el=C5=91re leprogramozott intervallumonk=C3=A9nt = fut le az a k=C3=B3d ami elengedi a f=C3=A1jl figyel=C3=A9st. Ez pedig programhiba. H= a van el=C3=A9g mem=C3=B3ri=C3=A1d emelheted ezeket a limiteket, j=C3=B3form=C3=A1n kock=C3= =A1zat n=C3=A9lk=C3=BCl. De az=C3=A9rt jobb ha ut=C3=A1naolvasol, hogy pontosan mi a szerepe ezeknek = egyenk=C3=A9nt. " Majdnem telibe talaltad. Mielott az elso file el lenne engedve a script nyitja a masikat. Mivel az fs egy require al jonn a scriptbe. Megoldas lehetne az is hogy minden file kulon zaras nyitas. Esetleg tenyleg eldobom a fugvenyt, es ujra hivom mielott a masik fajlra lepek. De ezzel lassulna a rendszer vagy 2 masodperccel. Valojaban 19 masodpercen kockaztatom a biztonsagos futtast... Mikor 3600 alatt kell maradnom szimplan. Nem kell mondanod tudom hogy hulye vagyok. =20 " M=C3=A9gis, =C3=A9n ink=C3=A1bb nem dem=C3=B3zn=C3=A9k egy olyan k=C3=A9t= es programot, ami egy stat h=C3=ADv=C3=A1s-t, mely nem ig=C3=A9nyel f=C3=A1jl megnyit=C3=A1st sem, n= em tud biztons=C3=A1ggal v=C3=A9grehajtani. Egy=C3=A9bk=C3=A9nt is, a rendszernek sz=C3=A1mtalan o= lyan karbantart=C3=A1si feladata van melyhez esetenk=C3=A9nt sok f=C3=A1jlt kell megnyitnia =C3=A9= s bez=C3=A1rnia. M=C3=A9gis m=C5=B1k=C3=B6dik nem?=20 " Na igen de azokat nem egy process nyitja meg egyszerre... Az alap rendszert csak egy orult forgatja -Ofast al... " Ez nem kernel-be=C3=A1ll=C3=ADt=C3=A1s hanem valami nodejs-sel vagy a n=C3=A1lad l=C3=A9v=C5=91 scripttel kapcsolatos hiba lesz. " En nem mondtam hogy nem en vagyok az oka. Mindent koszi, tenyleg segitettel gondolkozni. real 0m20.341s Ez kevesebb mint 1 ora. Azt hiszem jo lesz. Logok neked egy par sorrel. Ha arra jarok megadom. Udv Laszlo On 11/26/14 15:03, Cs=C3=A1sz=C3=A1r P=C3=A9ter wrote: > Szia L=C3=A1szl=C3=B3! > > Az igen kurta nodejs doksi alapj=C3=A1n: > http://nodejs.org/api/fs.html#fs_fs_statsync_path > arra tippelek, hogy eg=C3=A9szen egyszer=C5=B1 stat rendszerh=C3=ADv=C3= =A1s lehet a h=C3=A1tt=C3=A9rben: > http://linux.die.net/man/2/fstat > > M=C3=A1rpedig ehhez nem kell megnyitni egy f=C3=A1jlt sem. Tov=C3=A1bbr= a is er=C5=91sen > gyan=C3=BAs hogy s=C3=BAlyos programhiba van a h=C3=A1tt=C3=A9rben. > > B=C3=A1r a /proc/sys/fs alatti dolgokkal nem vagyok =C3=A9rdemben ismer= =C5=91s, a > /proc/sys/fs/inotify egy k=C3=B6nyvt=C3=A1r =C3=A9s alatt n=C3=A1lam az= al=C3=A1bbi f=C3=A1jlok annak > benne (tartalommal): > max_queued_events (16384) > max_user_instances (128) > max_user_watches (524288) > > Ezek egyike sem jelent milisec-enk=C3=A9nti korl=C3=A1toz=C3=A1st. Visz= ont, ha j=C3=B3l > =C3=A9rtem ezek olyasmir=C5=91l sz=C3=B3lnak, hogy =C3=A9rtes=C3=ADt=C3= =A9st lehet k=C3=A9rni a kernelt=C5=91l > ha egyik vagy m=C3=A1sik f=C3=A1jl v=C3=A1ltozik. Val=C3=B3sz=C3=ADn=C5= =B1 hogy az fs.statSync-ben van > ilyen figyel=C3=A9s is k=C3=A9rve, s azok t=C3=BAl k=C3=A9s=C5=91n lesz= nek elengedve. Tal=C3=A1n > mintha ugyanazon 300 f=C3=A1jlt t=C3=B6bbsz=C3=B6r=C3=B6sen is figyelni= pr=C3=B3b=C3=A1ln=C3=A1 a script. > =C3=89s lehet hogy csak el=C5=91re leprogramozott intervallumonk=C3=A9n= t fut le az a > k=C3=B3d ami elengedi a f=C3=A1jl figyel=C3=A9st. Ez pedig programhiba.= Ha van el=C3=A9g > mem=C3=B3ri=C3=A1d emelheted ezeket a limiteket, j=C3=B3form=C3=A1n koc= k=C3=A1zat n=C3=A9lk=C3=BCl. De > az=C3=A9rt jobb ha ut=C3=A1naolvasol, hogy pontosan mi a szerepe ezekne= k egyenk=C3=A9nt. > > M=C3=A9gis, =C3=A9n ink=C3=A1bb nem dem=C3=B3zn=C3=A9k egy olyan k=C3=A9= tes programot, ami egy stat > h=C3=ADv=C3=A1s-t, mely nem ig=C3=A9nyel f=C3=A1jl megnyit=C3=A1st sem,= nem tud biztons=C3=A1ggal > v=C3=A9grehajtani. Egy=C3=A9bk=C3=A9nt is, a rendszernek sz=C3=A1mtalan= olyan karbantart=C3=A1si > feladata van melyhez esetenk=C3=A9nt sok f=C3=A1jlt kell megnyitnia =C3= =A9s bez=C3=A1rnia. > M=C3=A9gis m=C5=B1k=C3=B6dik nem? Ez nem kernel-be=C3=A1ll=C3=ADt=C3=A1= s hanem valami nodejs-sel vagy > a n=C3=A1lad l=C3=A9v=C5=91 scripttel kapcsolatos hiba lesz. > > =C3=9Cdv, > P=C3=A9ter > > 2014-11-26 14:13 keltez=C3=A9ssel, Testa =C3=ADrta: >> Szia Peter, >> >> Koszi a valaszod. >> Meg egzsyer meg probalom meg fogalmazni. >> Egy 200 sorros scriptrol beszelunk ami egy set interval utan csinal 30= 0 >> fs.statSync et... (ha read lenne akkor lassabb lenne es nem lepne fel = a >> hiba.) >> Persze tudom hogy az emelt file rendszer cache a fo ok amiert ilyen >> gyorsan kepes az olvasast vegre hajtani a rendszer. Szoval technikaila= g >> az en hibam is. De szuksegem van erre a teljesitmenyre... ( Mivel a >> rendszer egy demonstracio ) >> >> A problema az hogy a linux kernel 8 file megnyisat teszi lehetove ms >> ekenkent... Probaltam a /proc/sys/fs be meg talalni a erre a megoldast= . >> Ugyan meg is talaltam a /proc/sys/fs/inotify ba amit keresek. De ezt n= em >> merem 300 ra allitani. Ha persze a programot le lassitom akkor >> tokeletesen fut. Viszont nem hiszem hogy ez hosszu tavon jo megoldas..= . >> (Teny jelenleg ezt a modszert valasztottam) >> >> >> Udv >> Laszlo >> >> On 11/26/14 12:50, Cs=C3=A1sz=C3=A1r P=C3=A9ter wrote: >>> Szia Testa, >>> >>> Kiss=C3=A9 hom=C3=A1lyos hogy mi is t=C3=B6rt=C3=A9nik pontosan, de m= ajdnem biztos vagyok >>> benne hogy vagy az a nodejs progi, vagy az =C3=A1ltala haszn=C3=A1lt = libekben >>> valahol s=C3=BAlyos hiba van. Helyesen meg=C3=ADrt program nem fog el= sz=C3=A1llni csak >>> mert gyorsabb g=C3=A9pet tesz=C3=BCnk al=C3=A1. >>> >>> Sz=C3=B3val a helyedben =C3=A9n =C3=ADrn=C3=A9k egy bugriportot, ha f= ontos ez a program a >>> sz=C3=A1modra. >>> >>> =C3=9Cdv, >>> P=C3=A9ter >>> >>> 2014-11-26 13:08 keltez=C3=A9ssel, Testa =C3=ADrta: >>>> Hello mindenki, >>>> >>>> Tenyleg olyan hibam van amit nehez elhinni. >>>> Nem gentoos hiba de remelem lesz valakinek otlete. >>>> Szoval. Adott egy nodejs program ami olvas a file 300 filet. >>>> Ezt elvegzi minden masodpercben. >>>> A program tokeletesen mukodik majdnem minden desktopon. >>>> Ha az nem i7 es a merevlemez nem egy jo gyors ssd es nincs szanaszet >>>> optimalizalt gentoo a rendszeren. >>>> Sajnos ssd -n plusz i7-en vagy xeon-on olyan gyors hgy a sigserv kil= ovi. >>>> (XEON on mar az elso olvasas meghal, i7 en en csak a madsodik elleno= rzes) >>>> Sajonos ez nodejs es nem tudok wait-et/sleep-et hasznalni. >>>> Van ra mod hogy a file limitet/ms -et atirjam ? >>>> >>>> >>>> Elore is koszi. >>>> >> >