Tag-Archive for » cgi «

Wednesday, February 25th, 2009 | Author:

eth0Au boulot j’ai remplacé cacti par munin. Munin c’est choupi, la conf est en flat file mais ça a deux défauts, ou un selon le point de vue : le munin-cgi-graph est tout simplement moisi car d’une lenteur sans nom, et générer les images lors du poll c’est long. Sauf quand on tombe sur ce petit hack convivial qui permet de lancer en parallèle la génération pour X nodes. Malheureusement, l’exemple donné en lien n’est valable que pour la version du trunk (au moment ou j’écris ceci) et pas pour la version 1.2.6 livrée avec lenny. J’ai donc modifié mon munin-graph en “portant” le hack disponible. Résultat : 2min30s au lieu de 9min pour la génération de 80 machines (dont certaines avec beaucoup d’infos)

Le code en question :

# Add this to munin-graph
sub myforked_processnode {
        my ($domain, $code) = @_;
 
        my $max=24;
        my $counter = 0;
 
        for my $key ( keys %{$config->{domain}->{$domain}->{node}}) {
                wait unless ++ $counter >= $max;
                #print "Processing ".$key."\n";
                die "Fork failed: $!\n" unless defined (my $pid = fork);
                exit $code -> ($domain,$key,$config->{domain}->{$domain}->{node}->{$key}) unless $pid;
        }
        1 until -1 == wait;
}
 
# Modify process_domain to get :
sub process_domain {
    my ($domain) = @_;
    myforked_processnode($domain, \&process_node);
}

Et voila !

Category: BOFH Life, SysAdmin, Tech  | Tags: , , , , ,  | 3 Comments