Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Nigdy nie bawiłem się snmpd, ale chcę monitorować wydajność serwerka.
zainstalowałem na nim snmpd
snmpd -v
NET-SNMP version: 5.4.3
Web: http://www.net-snmp.org/
Email: net-snmp-coders@lists.sourceforge.net
Praktycznie chodzi, ale jak obserwuję htop to co kilka, kilkanascie sekund daemon snmpd obciąża mi jeden procesor na 100%.
konfig defaultowy, jedynie dodane rocommunity
w /etc/default/snmpd:
cat /etc/default/snmpd # This file controls the activity of snmpd and snmptrapd # Don't load any MIBs by default. # You might comment this lines once you have the MIBs downloaded. export MIBS= # snmpd control (yes means start daemon). SNMPDRUN=yes # snmpd options (use syslog, close stdin/out/err). SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid' # snmptrapd control (yes means start daemon). As of net-snmp version # 5.0, master agentx support must be enabled in snmpd before snmptrapd # can be run. See snmpd.conf(5) for how to do this. TRAPDRUN=no # snmptrapd options (use syslog). TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid' # create symlink on Debian legacy location to official RFC path SNMPDCOMPAT=yes
czy to normalne zachowanie daemona snmpd?
Offline
Całkowicie nienormalne, [b]snmpd[/b] nie ma żadnej roboty, która skutkowałaby takim obciążeniem, spróbuj jakiegoś trybu debug czy verbose, żeby się dowiedzieć, na czym się wykłada.
Offline
Jak włączyłem -DALL to system zaczął baaardzo wolno chodzić i do tego syslog-ng na 100%.
uruchomiłmem by waliło logami na konsolę i przez ekran ogrom takich linijek:
compare:index: compare .83 to .90 compare:index: result was -1 compare:index: compare .83 to .89 compare:index: result was -1 compare:index: compare .83 to .88 compare:index: result was -1 compare:index: compare .83 to .87 compare:index: result was -1 compare:index: compare .83 to .86 compare:index: result was -1 compare:index: compare .83 to .85 compare:index: result was -1 compare:index: compare .83 to .84 compare:index: result was -1 compare:index: compare .83 to .83 compare:index: result was 0 compare:index: compare .68 to .75 compare:index: result was -1 compare:index: compare .69 to .75 compare:index: result was -1 compare:index: compare .70 to .75 compare:index: result was -1 compare:index: compare .71 to .75 compare:index: result was -1 compare:index: compare .72 to .75 compare:index: result was -1 compare:index: compare .73 to .75 compare:index: result was -1 compare:index: compare .74 to .75 compare:index: result was -1 compare:index: compare .75 to .75 compare:index: result was 0 compare:index: compare .75 to .82 compare:index: result was -1 compare:index: compare .75 to .81 compare:index: result was -1 compare:index: compare .75 to .80 compare:index: result was -1 compare:index: compare .75 to .79 compare:index: result was -1 compare:index: compare .75 to .78 compare:index: result was -1 compare:index: compare .75 to .77 compare:index: result was -1 compare:index: compare .75 to .76 compare:index: result was -1 compare:index: compare .75 to .75
zauważyłem, że do /var/log/debug snmpd loguje:
Sep 20 17:54:22 ed snmpd[26922]: error on subcontainer 'ia_addr' insert (-1)
tego jest na prawdę dużo a snmpd jest uruchamiany defaultowo bez trybu debug
ps ax|grep snmpd 26922 ? D 0:56 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid
do tego debugu z subcontainerem znalazłem rozwiązanie ale nadal co kilkanaście sekund proces snmpd osiąga blisko 100%
sed -i 's/Lsd/LS6d/g' /etc/default/snmpd service snmpd restart
Ostatnio edytowany przez Nicram (2015-09-20 18:11:30)
Offline
Na początek radziłbym spróbować inną wersję, albo inny program do monitoringu, jest tego trochę do wyboru, jak choćby Munin, Lstat, Monitorix.
Możesz też sam trochę porzeźbić, np Perl + MRTG i wiooo.
Względnie można pobawić się prawdziwe debugowanie (strace|gdb|valgrid), ale to już zabawa dla Developerów.
Ewentualnie, w Debku to może zabrzmi dziwnie, ale ja bym go przebudował ze źródeł, to często pomaga w podobnych wypadkach.
Mam w Gentusiu tą wersję:
snmpd -v NET-SNMP version: 5.7.3.pre5 Web: http://www.net-snmp.org/ Email: net-snmp-coders@lists.sourceforge.net
Wstał przed chwilą na defaultowym konfigu, jak dotąd nic nie wybuchło,
(w Htopie w ogóle go nie widać). ;)
Ostatnio edytowany przez Jacekalex (2015-09-20 18:22:51)
Offline
[quote=Jacekalex]Mam w Gentusiu tą wersję:
snmpd -v NET-SNMP version: 5.7.3.pre5 Web: http://www.net-snmp.org/ Email: net-snmp-coders@lists.sourceforge.net
Wstał przed chwilą na defaultowym konfigu, jak dotąd nic nie wybuchło,
(w Htopie w ogóle go nie widać). ;)[/quote]
Tą samą wersję mam na innym gentoo i działa bez zarzutów, choć od czasu do czasu (ale to jest długi czas) load potrafi sporo się podnieść a restart daemona pomaga.
Offline
A jak obetniesz demona conieco przez cgroup?
Zazwyczaj radykalnie pomaga na takie humory różnych programów.
3 minutki ciężkiej pracy i oto rezultat:
Proces /usr/sbin/snmpd; UID = root; GID = proc; PID = 7136; 13:debug:/ 12:hugetlb:/ 11:net_prio:/ 10:perf_event:/ 9:net_cls:/ 8:freezer:/ 7:devices:/ 6:memory:/serwer/snmpd 5:blkio:/serwer/snmpd 4:cpuacct:/ 3:cpu:/serwer/snmpd 2:cpuset:/
Przynajmniej nikomu nie będzie zawadzał w razie czego.
Ja tak "z buta" traktuję wszystko, co może robić jakieś kłopoty, lub się łączy z netem.
Ostatnio edytowany przez Jacekalex (2015-09-20 20:07:26)
Offline
-Lsd -> -LS6d
A problem stanowi interfejs sieciowy i jego konfiguracja, w większości przypadków.
Swoja droga 5.4.3 ma juz ponad pięć lat, a błąd jest opisywany od chyba 2008 czy 2009.
Offline
[quote=qluk]-Lsd -> -LS6d
A problem stanowi interfejs sieciowy i jego konfiguracja, w większości przypadków.[/quote]
To robiłem na samym początku, nie pomogło.
co masz na myśli, że konfiguracja interfejsu?
Offline
Różnie, najcześciej to bridge, bond albo tunel GRE powoduje to.
Offline
[quote=qluk]Różnie, najcześciej to bridge, bond albo tunel GRE powoduje to.[/quote]
hmm, właśnie na tym serwerku są same bondy :/
Rozumiem, że przy takich interfejsach nie uruchamia się snmp?
Ostatnio edytowany przez Nicram (2015-09-22 19:37:41)
Offline
[quote=qluk]Różnie, najcześciej to bridge, bond albo tunel GRE powoduje to.[/quote]
Wracając do tematu.
bonda mam skonfigurowanego tak:
auto bond0 iface bond0 inet dhcp slaves eth0 eth1 bond-mode 4 bond-miimon 100 bond-downdelay 200 bond-updelay 200
sieciówek fizycznych w configu nie wymieniam, gdzyż bond ma się nimi zajmowac.
coś nie tak jest z tym configiem?
Offline
Do wygodnrgo monitorowania możesz zamiast SMTPD zastosować KDE.
Co prawda kilkaset MB diabli wezmą, ale ksysguard ma demona, który może się komunikować przez SSH, SSL i diabli wiedzą, jak jeszcze.
Bardzo dawno temu to testowałem (Ubuntu 7.10 KDE-3.x), ale w każdym razie w monitorze KDE miałem cały zdalny serwer na oku.
W repo Debiana jest dalej jako osobna paczka:
ksysguardd - System Guard Daemon
Do pracy potrzebuje naprawdę niewiele RAMu, proca i bibliotek:
ldd `which ksysguardd` linux-vdso.so.1 (0x00007ffd511c9000) libsensors.so.4 => /usr/lib64/libsensors.so.4 (0x00007f6526952000) libc.so.6 => /lib64/libc.so.6 (0x00007f65265a8000) libm.so.6 => /lib64/libm.so.6 (0x00007f65262a5000) /lib64/ld-linux-x86-64.so.2 (0x00007f6526b62000)
W razie czego możesz spróbować, chociaż KDE do serwera wygląda co najmniej zabawnie.
Ostatnio edytowany przez Jacekalex (2015-10-02 18:55:07)
Offline
Dzięki, za sugestię ale nie potrzebuję kolejnego narzędzia do monitoringu. dane z urządzeń zbieram w cacti właśnie po snmp.
chciałbym właśnie to uruchomić prawidłowo.
Offline
To ja radziłbym zająć się sprawą od strony Cacti,
mają sporo dokumentacji i przykładów, do tego forum programu.
Np:
http://www.cacti.net/downloads/docs/html/snmp_query_xml.html
http://docs.cacti.net/templates
Forum:
http://forums.cacti.net/about11615.html
Ostatnio edytowany przez Jacekalex (2015-10-03 09:55:03)
Offline
[quote=Jacekalex]To ja radziłbym zająć się sprawą od strony Cacti,
mają sporo dokumentacji i przykładów.
Np:
http://www.cacti.net/downloads/docs/html/snmp_query_xml.html
http://docs.cacti.net/templates[/quote]
Ale to nie cacti jest tu problemem, te akruat działa dobrze. Problemem jest daemon snmp powodujący cykliczne obciążenie procesora na jednym serwerku z bondingiem i vlanami. Co prawda dane z niego są zbierane ale to obciążenie nie jest "normalne".
--- edited ---
Podejrzewam, że problemem jest to, na tym serwerku jest serwer PPPoE i jest sporo interfejsów a snmpd defaultowo sprawdza wszystkie interfejsy.
Nie mogę namierzyć w konfiguracji by ograniczyć interfejsy tylko do bond*.
Testowo zrobiłem bonding na innej maszynie + iperfem zrobiłem trochę ruchu i tu snmpd nie osiągał takich obciążeń.
Ostatnio edytowany przez Nicram (2015-10-05 10:57:12)
Offline
Time (s) | Query |
---|---|
0.00014 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00147 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.188.63.71' WHERE u.id=1 |
0.00122 | UPDATE punbb_online SET logged=1732431082 WHERE ident='18.188.63.71' |
0.00047 | SELECT * FROM punbb_online WHERE logged<1732430782 |
0.00222 | DELETE FROM punbb_online WHERE ident='18.223.125.236' |
0.00084 | DELETE FROM punbb_online WHERE ident='3.140.185.194' |
0.00023 | SELECT topic_id FROM punbb_posts WHERE id=290935 |
0.00027 | SELECT id FROM punbb_posts WHERE topic_id=27734 ORDER BY posted |
0.00095 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27734 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00155 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27734 ORDER BY p.id LIMIT 0,25 |
0.00086 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27734 |
Total query time: 0.01033 s |