Re: Az evszazad poenja.

Bukuli Norbert <[email protected]> Thu, 27 Nov 2014 06:27:23 +0100
Newsgroups gmane.linux.gentoo.user.hungarian
Message-ID <CA+Rr8u4dU=dJSRapiG+XyDc=MVkPn9PYWti7nsy9kn1uex-PEw@mail.gmail.com>
Sziasztok!

Testa <[email protected]> =C3=ADrta (2014. november 27. 2:02):
> Szia Peter,
>
> Alapjaba veve a script csak a logok valtozasanak ellenorzesert felel.
> Tehat igen ez nem file olvasas.

Nem latom a teljes feladatot, de erre esetleg nem lehetne inotify-t hasznal=
ni?

Udvozlettel:
Bukuli Norbert

> 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=
=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 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.
>
>
>
> "
>
> 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=
=A9s bez=C3=A1rnia.
> M=C3=A9gis m=C5=B1k=C3=B6dik nem?
>
> "
>
> 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=A1bbra=
 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. Viszo=
nt, 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 leszn=
ek 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=A9nt=
 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 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.
>>
>> 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=A1s=
 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 300
>>> 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 technikailag
>>> 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 ne=
m
>>> 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 ma=
jdnem biztos vagyok
>>>> benne hogy vagy az a nodejs progi, vagy az =C3=A1ltala haszn=C3=A1lt l=
ibekben
>>>> valahol s=C3=BAlyos hiba van. Helyesen meg=C3=ADrt program nem fog els=
z=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 fo=
ntos 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 kilo=
vi.
>>>>> (XEON on mar az elso olvasas meghal, i7 en en csak a madsodik ellenor=
zes)
>>>>> Sajonos ez nodejs es nem tudok wait-et/sleep-et hasznalni.
>>>>> Van ra mod hogy a file limitet/ms -et atirjam ?
>>>>>
>>>>>
>>>>> Elore is koszi.
>>>>>
>>>
>>
>
>