mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +00:00 
			
		
		
		
	loadmon and parse loadmon gain thread counts, fixes for output and reading input
Signed-off-by: Jed Reynolds <jed@bitratchet.com>
This commit is contained in:
		
							
								
								
									
										15
									
								
								loadmon.pl
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								loadmon.pl
									
									
									
									
									
								
							@@ -39,11 +39,13 @@ our @prog_names = (
 | 
			
		||||
    "dnsmasq",
 | 
			
		||||
    "hostapd",
 | 
			
		||||
    "httpd",
 | 
			
		||||
    "iw",
 | 
			
		||||
    "java",
 | 
			
		||||
    "l4helper",
 | 
			
		||||
    # "logchopper",
 | 
			
		||||
    "nginx",
 | 
			
		||||
    "perl",
 | 
			
		||||
    "php-fpm",
 | 
			
		||||
    "pipe_helper",
 | 
			
		||||
    "vsftpd",
 | 
			
		||||
    "wget",
 | 
			
		||||
@@ -62,6 +64,7 @@ sub new {
 | 
			
		||||
        ra_pid_list => [],
 | 
			
		||||
        total_mem => 0,
 | 
			
		||||
        total_fh => 0,
 | 
			
		||||
        total_thr => 0,
 | 
			
		||||
    };
 | 
			
		||||
    bless $self, $class;
 | 
			
		||||
    return $self;
 | 
			
		||||
@@ -71,6 +74,7 @@ sub monitor {
 | 
			
		||||
    my $self = shift;
 | 
			
		||||
    $self->{total_mem} = 0;
 | 
			
		||||
    $self->{total_fh} = 0;
 | 
			
		||||
    $self->{total_threads} = 0;
 | 
			
		||||
 | 
			
		||||
    my $cmd = qq(pgrep -f $self->{basename});
 | 
			
		||||
    # print "CMD[$cmd]\n";
 | 
			
		||||
@@ -102,6 +106,10 @@ sub monitor {
 | 
			
		||||
        if (@lines > 0 ) {
 | 
			
		||||
            $self->{total_fh} += int($lines[0]);
 | 
			
		||||
        }
 | 
			
		||||
        $cmd = "ls /proc/$pid/task/ | wc -l";
 | 
			
		||||
        my $threads = `$cmd`;
 | 
			
		||||
        chomp $threads;
 | 
			
		||||
        $self->{total_threads} += int($threads);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #die("testing");
 | 
			
		||||
@@ -122,7 +130,8 @@ sub report {
 | 
			
		||||
    print $fh qq(${LC}"basename":"$self->{basename}",);
 | 
			
		||||
    print $fh qq("num_pids":$num_pids,);
 | 
			
		||||
    print $fh qq("total_mem_KB":$self->{total_mem},);
 | 
			
		||||
    print $fh qq("total_fh":$self->{total_fh}${RC});
 | 
			
		||||
    print $fh qq("total_fh":$self->{total_fh},);
 | 
			
		||||
    print $fh qq("total_threads":$self->{total_threads}${RC});
 | 
			
		||||
}
 | 
			
		||||
1;
 | 
			
		||||
## - - - End loadmon - - - ##
 | 
			
		||||
@@ -138,6 +147,7 @@ sub print_totals {
 | 
			
		||||
    my $tt_num_pids = 0;
 | 
			
		||||
    my $tt_mem_kb = 0;
 | 
			
		||||
    my $tt_fh = 0;
 | 
			
		||||
    my $tt_threads = 0;
 | 
			
		||||
    for my $name (@main::prog_names) {
 | 
			
		||||
        my $monitor = $main::monitor_map{$name};
 | 
			
		||||
        #print Data::Dumper->Dump(["mm_name", $monitor ]);
 | 
			
		||||
@@ -148,8 +158,9 @@ sub print_totals {
 | 
			
		||||
            $tt_mem_kb += $main::monitor_map{$name}->{total_mem};
 | 
			
		||||
        }
 | 
			
		||||
        $tt_fh += $main::monitor_map{$name}->{total_fh};
 | 
			
		||||
        $tt_threads += $main::monitor_map{$name}->{total_threads};
 | 
			
		||||
    }
 | 
			
		||||
    print $fh qq(${LC}"tt_num_pids":$tt_num_pids, "tt_mem_kb":$tt_mem_kb, "tt_fh":$tt_fh${RC});
 | 
			
		||||
    print $fh qq(${LC}"tt_num_pids":$tt_num_pids, "tt_mem_kb":$tt_mem_kb, "tt_fh":$tt_fh, "tt_threads":$tt_threads${RC});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## - - -
 | 
			
		||||
 
 | 
			
		||||
@@ -21,12 +21,12 @@ sub mb {
 | 
			
		||||
        return "${kb}KB";
 | 
			
		||||
    }
 | 
			
		||||
    my $mb = $kb / 1024;
 | 
			
		||||
    return sprintf("%0.1fMB", $mb);
 | 
			
		||||
    return sprintf("%0.1f MB", $mb);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
foreach my $line (<>) {
 | 
			
		||||
while (my $line=<STDIN>) {
 | 
			
		||||
    chomp $line;
 | 
			
		||||
    #print "line[$line]\n";
 | 
			
		||||
    print "line[$line]\n";
 | 
			
		||||
    my $lc_pos = index($line, '[{');
 | 
			
		||||
    # print "lc at $lc_pos\n";
 | 
			
		||||
    next if ($lc_pos < 0);
 | 
			
		||||
@@ -37,14 +37,16 @@ foreach my $line (<>) {
 | 
			
		||||
    for my $rh_item ( @$ra_loadmon) {
 | 
			
		||||
        next if ($rh_item == 0);
 | 
			
		||||
        if (defined($rh_item->{basename})) {
 | 
			
		||||
            printf("%-15s: %3d pids use %9s memory\n",
 | 
			
		||||
            printf("%-15s: %3d pids (%4d thr) use %9s memory\n",
 | 
			
		||||
                    $rh_item->{basename},
 | 
			
		||||
                    $rh_item->{num_pids},
 | 
			
		||||
                    $rh_item->{total_threads},
 | 
			
		||||
                    mb($rh_item->{total_mem_KB}));
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            printf("TT pids: %5d use %9s ram and %-7d FH\n\n",
 | 
			
		||||
            printf("TOTALS : %11d pids (%4d thr) use %9s ram and %7d FH\n\n",
 | 
			
		||||
                    $rh_item->{tt_num_pids},
 | 
			
		||||
                    $rh_item->{tt_threads},
 | 
			
		||||
                    mb($rh_item->{tt_mem_kb}),
 | 
			
		||||
                    $rh_item->{tt_fh});
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user