Gentoo Archives: gentoo-user-hu

From: Testa <testa.a.tapos@×××××.com>
To: gentoo-user-hu@l.g.o
Subject: Re: [gentoo-user-hu] Az evszazad poenja.
Date: Thu, 27 Nov 2014 01:01:52
Message-Id: 54767820.3@gmail.com
In Reply to: Re: [gentoo-user-hu] Az evszazad poenja. by "Császár Péter"
1 Szia Peter,
2
3 Alapjaba veve a script csak a logok valtozasanak ellenorzesert felel.
4 Tehat igen ez nem file olvasas.
5 De sajnos a hulye fs bele nyit.
6 Nos a lenyeg, hogy bele keveredtem egy fogadasba. Egy par fejleszto
7 akikkel dolgozom keszitett egy php programot ami 1 gigabajtnyi xmlt
8 dolgoz fel.
9 A felhaborodasom oka hogy :
10 -Minden egyes fajlt egyesevel beraknak a tmp-be.
11 -Majd onnan kiolvasva dolgozak fel es
12 -Majd minden egyes szekciot egyesevel updatelnek a mysql szerveren.
13 -Ezzel 12 orara naponta 100% lekra terhelnek 2 magot. (egy a mysql nek
14 egy a scriptnek.)
15 -Mondanom se kell mikor meglattam a 80 fokos cpu-t azonnal lelottem a
16 mysql-t...
17 -Ebbol vitam lett, es azzal lett lezarva hogy ezt nem lehet maskepp.
18 -Viszont a fonokuk fogadott velem: Ha kepes vagyok 1 ora alatt
19 lefutattni egy hasonlot ugy hogy ellenorzom amit a rendszer normal
20 esetben csinal akkor kirugja ezt a 2 idiotat. De csak nodejs vagy php
21 lehet C be nem er.
22
23 Nos biztonsagosan -Ofast nelkul -O3 nodejs el a program 40 masodperc
24 alatt futt le ha a file check futt.(O3 nal nincs hiba) -Ofast os nodejs
25 el ez 21 masodperc.
26
27 Hat es igen tevedtem.
28 Mivel a kerdest tokeletesen megoldottam, de sajnos nem magamtol: ki kell
29 kapcsolni a grsec et.
30 (Nem eles szerver szoval nem lesz baja 1 napot kibir )...
31
32
33 "
34
35 Ezek egyike sem jelent milisec-enkénti korlátozást. Viszont, ha jól
36 értem ezek olyasmiről szólnak, hogy értesítést lehet kérni a kerneltől
37 ha egyik vagy másik fájl változik. Valószínű hogy az fs.statSync-ben van
38 ilyen figyelés is kérve, s azok túl későn lesznek elengedve. Talán
39 mintha ugyanazon 300 fájlt többszörösen is figyelni próbálná a script.
40 És lehet hogy csak előre leprogramozott intervallumonként fut le az a
41 kód ami elengedi a fájl figyelést. Ez pedig programhiba. Ha van elég
42 memóriád emelheted ezeket a limiteket, jóformán kockázat nélkül. De
43 azért jobb ha utánaolvasol, hogy pontosan mi a szerepe ezeknek egyenként.
44
45 "
46
47 Majdnem telibe talaltad.
48 Mielott az elso file el lenne engedve a script nyitja a masikat.
49 Mivel az fs egy require al jonn a scriptbe.
50 Megoldas lehetne az is hogy minden file kulon zaras nyitas. Esetleg
51 tenyleg eldobom a fugvenyt, es ujra hivom mielott
52 a masik fajlra lepek. De ezzel lassulna a rendszer vagy 2 masodperccel.
53 Valojaban 19 masodpercen kockaztatom a biztonsagos futtast... Mikor 3600
54 alatt kell maradnom szimplan.
55 Nem kell mondanod tudom hogy hulye vagyok.
56
57
58
59 "
60
61 Mégis, én inkább nem demóznék egy olyan kétes programot, ami egy stat
62 hívás-t, mely nem igényel fájl megnyitást sem, nem tud biztonsággal
63 végrehajtani. Egyébként is, a rendszernek számtalan olyan karbantartási
64 feladata van melyhez esetenként sok fájlt kell megnyitnia és bezárnia.
65 Mégis működik nem?
66
67 "
68
69 Na igen de azokat nem egy process nyitja meg egyszerre...
70 Az alap rendszert csak egy orult forgatja -Ofast al...
71
72 "
73
74 Ez nem kernel-beállítás hanem valami nodejs-sel vagy
75 a nálad lévő scripttel kapcsolatos hiba lesz.
76
77 "
78 En nem mondtam hogy nem en vagyok az oka.
79 Mindent koszi, tenyleg segitettel gondolkozni.
80
81 real 0m20.341s
82
83 Ez kevesebb mint 1 ora. Azt hiszem jo lesz.
84 Logok neked egy par sorrel. Ha arra jarok megadom.
85
86 Udv
87 Laszlo
88
89
90 On 11/26/14 15:03, Császár Péter wrote:
91 > Szia László!
92 >
93 > Az igen kurta nodejs doksi alapján:
94 > http://nodejs.org/api/fs.html#fs_fs_statsync_path
95 > arra tippelek, hogy egészen egyszerű stat rendszerhívás lehet a háttérben:
96 > http://linux.die.net/man/2/fstat
97 >
98 > Márpedig ehhez nem kell megnyitni egy fájlt sem. Továbbra is erősen
99 > gyanús hogy súlyos programhiba van a háttérben.
100 >
101 > Bár a /proc/sys/fs alatti dolgokkal nem vagyok érdemben ismerős, a
102 > /proc/sys/fs/inotify egy könyvtár és alatt nálam az alábbi fájlok annak
103 > benne (tartalommal):
104 > max_queued_events (16384)
105 > max_user_instances (128)
106 > max_user_watches (524288)
107 >
108 > Ezek egyike sem jelent milisec-enkénti korlátozást. Viszont, ha jól
109 > értem ezek olyasmiről szólnak, hogy értesítést lehet kérni a kerneltől
110 > ha egyik vagy másik fájl változik. Valószínű hogy az fs.statSync-ben van
111 > ilyen figyelés is kérve, s azok túl későn lesznek elengedve. Talán
112 > mintha ugyanazon 300 fájlt többszörösen is figyelni próbálná a script.
113 > És lehet hogy csak előre leprogramozott intervallumonként fut le az a
114 > kód ami elengedi a fájl figyelést. Ez pedig programhiba. Ha van elég
115 > memóriád emelheted ezeket a limiteket, jóformán kockázat nélkül. De
116 > azért jobb ha utánaolvasol, hogy pontosan mi a szerepe ezeknek egyenként.
117 >
118 > Mégis, én inkább nem demóznék egy olyan kétes programot, ami egy stat
119 > hívás-t, mely nem igényel fájl megnyitást sem, nem tud biztonsággal
120 > végrehajtani. Egyébként is, a rendszernek számtalan olyan karbantartási
121 > feladata van melyhez esetenként sok fájlt kell megnyitnia és bezárnia.
122 > Mégis működik nem? Ez nem kernel-beállítás hanem valami nodejs-sel vagy
123 > a nálad lévő scripttel kapcsolatos hiba lesz.
124 >
125 > Üdv,
126 > Péter
127 >
128 > 2014-11-26 14:13 keltezéssel, Testa írta:
129 >> Szia Peter,
130 >>
131 >> Koszi a valaszod.
132 >> Meg egzsyer meg probalom meg fogalmazni.
133 >> Egy 200 sorros scriptrol beszelunk ami egy set interval utan csinal 300
134 >> fs.statSync et... (ha read lenne akkor lassabb lenne es nem lepne fel a
135 >> hiba.)
136 >> Persze tudom hogy az emelt file rendszer cache a fo ok amiert ilyen
137 >> gyorsan kepes az olvasast vegre hajtani a rendszer. Szoval technikailag
138 >> az en hibam is. De szuksegem van erre a teljesitmenyre... ( Mivel a
139 >> rendszer egy demonstracio )
140 >>
141 >> A problema az hogy a linux kernel 8 file megnyisat teszi lehetove ms
142 >> ekenkent... Probaltam a /proc/sys/fs be meg talalni a erre a megoldast.
143 >> Ugyan meg is talaltam a /proc/sys/fs/inotify ba amit keresek. De ezt nem
144 >> merem 300 ra allitani. Ha persze a programot le lassitom akkor
145 >> tokeletesen fut. Viszont nem hiszem hogy ez hosszu tavon jo megoldas...
146 >> (Teny jelenleg ezt a modszert valasztottam)
147 >>
148 >>
149 >> Udv
150 >> Laszlo
151 >>
152 >> On 11/26/14 12:50, Császár Péter wrote:
153 >>> Szia Testa,
154 >>>
155 >>> Kissé homályos hogy mi is történik pontosan, de majdnem biztos vagyok
156 >>> benne hogy vagy az a nodejs progi, vagy az általa használt libekben
157 >>> valahol súlyos hiba van. Helyesen megírt program nem fog elszállni csak
158 >>> mert gyorsabb gépet teszünk alá.
159 >>>
160 >>> Szóval a helyedben én írnék egy bugriportot, ha fontos ez a program a
161 >>> számodra.
162 >>>
163 >>> Üdv,
164 >>> Péter
165 >>>
166 >>> 2014-11-26 13:08 keltezéssel, Testa írta:
167 >>>> Hello mindenki,
168 >>>>
169 >>>> Tenyleg olyan hibam van amit nehez elhinni.
170 >>>> Nem gentoos hiba de remelem lesz valakinek otlete.
171 >>>> Szoval. Adott egy nodejs program ami olvas a file 300 filet.
172 >>>> Ezt elvegzi minden masodpercben.
173 >>>> A program tokeletesen mukodik majdnem minden desktopon.
174 >>>> Ha az nem i7 es a merevlemez nem egy jo gyors ssd es nincs szanaszet
175 >>>> optimalizalt gentoo a rendszeren.
176 >>>> Sajnos ssd -n plusz i7-en vagy xeon-on olyan gyors hgy a sigserv kilovi.
177 >>>> (XEON on mar az elso olvasas meghal, i7 en en csak a madsodik ellenorzes)
178 >>>> Sajonos ez nodejs es nem tudok wait-et/sleep-et hasznalni.
179 >>>> Van ra mod hogy a file limitet/ms -et atirjam ?
180 >>>>
181 >>>>
182 >>>> Elore is koszi.
183 >>>>
184 >>
185 >

Replies

Subject Author
Re: [gentoo-user-hu] Az evszazad poenja. Bukuli Norbert <bukuli.norbert@×××××.com>