I have a need to do a 5600+ node deployment of Smokeping. Meaning that I have 5600 devices to ping. Some 10% -20% have high latency 1000ms+. Currently I have about 1200 nodes in smokeping. This is a new build. I am building this on a OpenSuse 11.4 x86_64 platform. I am running into problems.<div>
<br></div><div>1. SpeedyCGI does not compile on this version of Suse even after my best effort. I have attempted to make use of fastCGI, but I dont know that I am doing it right. The menu(smokeping.cgi) is large. Its by State then City in my config. It maxes out my cpu (1 of 4) when you open smokeping, because of this, page load times are pretty slow and it will only get worse as I add more nodes.</div>
<div><div><font class="Apple-style-span" color="#cccccc">make[1]: Entering directory `/apps/CGI-SpeedyCGI-2.22/src'</font></div><div><font class="Apple-style-span" color="#cccccc">make[1]: Nothing to be done for `all'.</font></div>
<div><font class="Apple-style-span" color="#cccccc">make[1]: Leaving directory `/apps/CGI-SpeedyCGI-2.22/src'</font></div><div><font class="Apple-style-span" color="#cccccc">make[1]: Entering directory `/apps/CGI-SpeedyCGI-2.22/speedy_backend'</font></div>
<div><font class="Apple-style-span" color="#cccccc">cc -c -I../src -I. -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"2.22\" -DXS_VERSION=\"2.22\" -fPIC "-I/usr/lib/perl5/5.12.3/x86_64-linux-thread-multi/CORE" -DSPEEDY_PROGNAME=\"speedy_backend\" -DSPEEDY_VERSION=\"2.22\" -DSPEEDY_BACKEND speedy_backend_main.c</font></div>
<div><font class="Apple-style-span" color="#cccccc">cc -c -I../src -I. -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"2.22\" -DXS_VERSION=\"2.22\" -fPIC "-I/usr/lib/perl5/5.12.3/x86_64-linux-thread-multi/CORE" -DSPEEDY_PROGNAME=\"speedy_backend\" -DSPEEDY_VERSION=\"2.22\" -DSPEEDY_BACKEND speedy_perl.c</font></div>
<div><font class="Apple-style-span" color="#cccccc">speedy_perl.c: In function find_scr:</font></div><div><font class="Apple-style-span" color="#cccccc">speedy_perl.c:258:2: error: expected expression before âSpeedyScript</font></div>
<div><font class="Apple-style-span" color="#cccccc">speedy_perl.c: In function get_string:</font></div><div><font class="Apple-style-span" color="#cccccc">speedy_perl.c:449:2: error: expected expression before char</font></div>
<div><font class="Apple-style-span" color="#cccccc">speedy_perl.c: In function cwd_new:</font></div><div><font class="Apple-style-span" color="#cccccc">speedy_perl.c:484:5: error: expected expression before SpeedyCwd</font></div>
<div><font class="Apple-style-span" color="#cccccc">speedy_perl.c: In function onerun:</font></div><div><font class="Apple-style-span" color="#cccccc">speedy_perl.c:808:47: warning: comparison between pointer and integer</font></div>
<div><font class="Apple-style-span" color="#cccccc">speedy_perl.c:809:40: warning: comparison between pointer and integer</font></div><div><font class="Apple-style-span" color="#cccccc">speedy_perl.c:810:40: warning: comparison between pointer and integer</font></div>
<div><font class="Apple-style-span" color="#cccccc">speedy_perl.c: In function speedy_perl_init:</font></div><div><font class="Apple-style-span" color="#cccccc">speedy_perl.c:918:2: warning: passing argument 2 of âperl_parseâ from incompatible pointer type</font></div>
<div><font class="Apple-style-span" color="#cccccc">/usr/lib/perl5/5.12.3/x86_64-linux-thread-multi/CORE/proto.h:57:19: note: expected XSINIT_t but argument is of type void (*)(void)</font></div><div><font class="Apple-style-span" color="#cccccc">make[1]: *** [speedy_perl.o] Error 1</font></div>
<div><font class="Apple-style-span" color="#cccccc">make[1]: Leaving directory `/apps/CGI-SpeedyCGI-2.22/speedy_backend'</font></div><div><font class="Apple-style-span" color="#cccccc">make: *** [subdirs] Error 2</font></div>
</div><div><br></div><div><span class="Apple-style-span" style="background-color: rgb(255, 255, 102);">smokeping.cgi:</span></div><div><div>use CGI::Fast;</div><div><br></div><div>while (my $q = new CGI::Fast) {</div><div>
Smokeping::cgi("/etc/smokeping/config", $q);</div><div>}</div></div><div><br></div><div><div><span class="Apple-style-span" style="background-color: rgb(255, 255, 102);">Smokeping.PM</span></div><div>diff -ur smokeping-2.4.2/lib/Smokeping.pm smokeping-dev/lib/Smokeping.pm</div>
<div>--- smokeping-2.4.2/lib/Smokeping.pm 2008-07-24 11:37:05.000000000 -0600</div><div>+++ smokeping-dev/lib/Smokeping.pm 2011-07-02 16:15:11.000000000 -0600</div><div>@@ -1376,7 +1376,7 @@</div><div> print "Content-Length: ".length($data)."\nn";</div>
<div> print $data;</div><div> unlink "${imgbase}_${end}_${start}.png";</div><div>- exit;</div><div> }</div><div> elsif ($mode eq 'n'){ # navigator mode</div>
<div> # $page .= qq|<div class="zoom" style="cursor: crosshair;">|;</div><div>@@ -3843,11 +3843,12 @@</div><div> POD</div><div><br></div><div> }</div><div>-sub cgi ($) {</div><div>+sub cgi ($$) {</div>
<div> $cgimode = 'yes';</div><div> umask 022;</div><div> load_cfg shift;</div><div>- my $q=new CGI;</div><div>+ my $q = shift;</div><div> initialize_cgilog();</div><div> if ($q->param(-name=>'slave')) { # a slave is calling in</div>
<div> Smokeping::Master::answer_slave($cfg,$q);</div></div><div><br></div><div>2. Because of the number of nodes, fping poller does not finish in 300 seconds. I have blazemode enabled. Is there a way to run multiple fping probes or increase parallelization? Any help would be greatly appreciated. </div>
<div><br></div><div>3. If smokeping cant practically scale to this size, Does anyone have an open sourced suggestion. I am also running cacti and it has scaled rather well.</div>