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