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.
>>>>
>>
>