Thread View: pl.comp.lang.perl
3 messages
3 total messages
Started by =?UTF-8?B?UGF3Zc
Mon, 20 Jan 2014 20:56
non-blocking snmp
Author: =?UTF-8?B?UGF3Zc
Date: Mon, 20 Jan 2014 20:56
Date: Mon, 20 Jan 2014 20:56
46 lines
1230 bytes
1230 bytes
piszę skrypt odpytujący po SNMP kilka tysięcy hostów. używam biblioteki net-snmp-perl, sesje snmp puszczam w trybie non-blocking. wszystko działa pięknie ale chciałbym ograniczyć liczbę równolegle uruchomionych sesji snmp. osiągam limit na ilość otworzonych plików i 1019 sesja już się nie tworzy. w tej chwili mam coś mniej więcej while(są jeszcze hosty do zbadania) { pobierz z bazy dane następnego hosta stwórz dla niego obiekt SNMP::Session odpal session->get } chciałbym raczej while (są jeszcze hosty do zbadania) { jak jest już uruchomionych LIMIT sesji poczekaj pobierz z bazy dane następnego hosta stwórz dla niego obiekt SNMP::Session odpal session->get } jakiś pomysł jak to osiągnąć? skłaniam się do a) pobrać z bazy wszystkie hosty, wrzucić je w jakiegoś hasza i w pętli while(są w haszu jeszcze hosty do zbadania) { if jestem poniżej limitu { monitoruj host wyjmij hosta z hasza } else continue } ta pętla powinna mi w końcu zbadać wszystkie hosty ewentualne pomysł b) pobrać z bazy hosty paczkami, najpierw pierwsze 400, potem drugie 400, itd. uruchomić pomiary snmp dla pierwszej paczki, jak cała się skończy dla drugiej, itd, -- Paweł
Re: non-blocking snmp
Author: "Stachu 'Dozzie'
Date: Mon, 20 Jan 2014 20:05
Date: Mon, 20 Jan 2014 20:05
33 lines
1049 bytes
1049 bytes
On 2014-01-20, Pawe³ <jas@nie.doczekal> wrote: > piszê skrypt odpytuj±cy po SNMP kilka tysiêcy hostów. u¿ywam biblioteki > net-snmp-perl, sesje snmp puszczam w trybie non-blocking. wszystko > dzia³a piêknie ale chcia³bym ograniczyæ liczbê równolegle uruchomionych > sesji snmp. osi±gam limit na ilo¶æ otworzonych plików i 1019 sesja ju¿ > siê nie tworzy. ulimit -n, /etc/security/limits.conf > w tej chwili mam co¶ mniej wiêcej [...] > chcia³bym raczej > > while (s± jeszcze hosty do zbadania) { > jak jest ju¿ uruchomionych LIMIT sesji poczekaj > pobierz z bazy dane nastêpnego hosta > stwórz dla niego obiekt SNMP::Session > odpal session->get > } > > jaki¶ pomys³ jak to osi±gn±æ? Pula w±tków? Mo¿esz obejrzeæ jak ja to zrobi³em (na procesach) dla po³±czeñ XML-RPC w skrypcie xmlrpcaller: http://dozzie.jarowit.net/git?p=xmlrpcd.git Chocia¿ ten kod generalnie jest brzydki. Interesuje ciê funkcja multicall() i pakiety Worker::Spool i Worker::Spool::Child zdefiniowane pod koniec xmlrpcallera. -- Secunia non olet. Stanislaw Klekot
Re: non-blocking snmp
Author: =?ISO-8859-2?Q?P
Date: Tue, 21 Jan 2014 00:23
Date: Tue, 21 Jan 2014 00:23
38 lines
1337 bytes
1337 bytes
W dniu 20.01.2014, 21:05, Stachu 'Dozzie' K. pisze: > On 2014-01-20, Pawe³ <jas@nie.doczekal> wrote: >> piszê skrypt odpytuj±cy po SNMP kilka tysiêcy hostów. u¿ywam biblioteki >> net-snmp-perl, sesje snmp puszczam w trybie non-blocking. wszystko >> dzia³a piêknie ale chcia³bym ograniczyæ liczbê równolegle uruchomionych >> sesji snmp. osi±gam limit na ilo¶æ otworzonych plików i 1019 sesja ju¿ >> siê nie tworzy. > > ulimit -n, /etc/security/limits.conf > urz±dzeñ jest co¶ 40 000. nie chcê a¿ tak limitów zwiêkszaæ. >> w tej chwili mam co¶ mniej wiêcej > [...] >> chcia³bym raczej >> >> while (s± jeszcze hosty do zbadania) { >> jak jest ju¿ uruchomionych LIMIT sesji poczekaj >> pobierz z bazy dane nastêpnego hosta >> stwórz dla niego obiekt SNMP::Session >> odpal session->get >> } >> >> jaki¶ pomys³ jak to osi±gn±æ? > > Pula w±tków? > > Mo¿esz obejrzeæ jak ja to zrobi³em (na procesach) dla po³±czeñ XML-RPC > w skrypcie xmlrpcaller: http://dozzie.jarowit.net/git?p=xmlrpcd.git > Chocia¿ ten kod generalnie jest brzydki. > Interesuje ciê funkcja multicall() i pakiety Worker::Spool > i Worker::Spool::Child zdefiniowane pod koniec xmlrpcallera. > pula w±tków nie rozwali mi non-blocking snmp? czekania w SNMP::MainLoop(); na koniec przetwarzania, i SNMP::finish(); w procedurze callback w session->get() ? -- Pawe³
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads