mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 03:07:56 +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",
|
"dnsmasq",
|
||||||
"hostapd",
|
"hostapd",
|
||||||
"httpd",
|
"httpd",
|
||||||
|
"iw",
|
||||||
"java",
|
"java",
|
||||||
"l4helper",
|
"l4helper",
|
||||||
# "logchopper",
|
# "logchopper",
|
||||||
"nginx",
|
"nginx",
|
||||||
"perl",
|
"perl",
|
||||||
|
"php-fpm",
|
||||||
"pipe_helper",
|
"pipe_helper",
|
||||||
"vsftpd",
|
"vsftpd",
|
||||||
"wget",
|
"wget",
|
||||||
@@ -62,6 +64,7 @@ sub new {
|
|||||||
ra_pid_list => [],
|
ra_pid_list => [],
|
||||||
total_mem => 0,
|
total_mem => 0,
|
||||||
total_fh => 0,
|
total_fh => 0,
|
||||||
|
total_thr => 0,
|
||||||
};
|
};
|
||||||
bless $self, $class;
|
bless $self, $class;
|
||||||
return $self;
|
return $self;
|
||||||
@@ -71,6 +74,7 @@ sub monitor {
|
|||||||
my $self = shift;
|
my $self = shift;
|
||||||
$self->{total_mem} = 0;
|
$self->{total_mem} = 0;
|
||||||
$self->{total_fh} = 0;
|
$self->{total_fh} = 0;
|
||||||
|
$self->{total_threads} = 0;
|
||||||
|
|
||||||
my $cmd = qq(pgrep -f $self->{basename});
|
my $cmd = qq(pgrep -f $self->{basename});
|
||||||
# print "CMD[$cmd]\n";
|
# print "CMD[$cmd]\n";
|
||||||
@@ -102,6 +106,10 @@ sub monitor {
|
|||||||
if (@lines > 0 ) {
|
if (@lines > 0 ) {
|
||||||
$self->{total_fh} += int($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");
|
#die("testing");
|
||||||
@@ -122,7 +130,8 @@ sub report {
|
|||||||
print $fh qq(${LC}"basename":"$self->{basename}",);
|
print $fh qq(${LC}"basename":"$self->{basename}",);
|
||||||
print $fh qq("num_pids":$num_pids,);
|
print $fh qq("num_pids":$num_pids,);
|
||||||
print $fh qq("total_mem_KB":$self->{total_mem},);
|
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;
|
1;
|
||||||
## - - - End loadmon - - - ##
|
## - - - End loadmon - - - ##
|
||||||
@@ -138,6 +147,7 @@ sub print_totals {
|
|||||||
my $tt_num_pids = 0;
|
my $tt_num_pids = 0;
|
||||||
my $tt_mem_kb = 0;
|
my $tt_mem_kb = 0;
|
||||||
my $tt_fh = 0;
|
my $tt_fh = 0;
|
||||||
|
my $tt_threads = 0;
|
||||||
for my $name (@main::prog_names) {
|
for my $name (@main::prog_names) {
|
||||||
my $monitor = $main::monitor_map{$name};
|
my $monitor = $main::monitor_map{$name};
|
||||||
#print Data::Dumper->Dump(["mm_name", $monitor ]);
|
#print Data::Dumper->Dump(["mm_name", $monitor ]);
|
||||||
@@ -148,8 +158,9 @@ sub print_totals {
|
|||||||
$tt_mem_kb += $main::monitor_map{$name}->{total_mem};
|
$tt_mem_kb += $main::monitor_map{$name}->{total_mem};
|
||||||
}
|
}
|
||||||
$tt_fh += $main::monitor_map{$name}->{total_fh};
|
$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";
|
return "${kb}KB";
|
||||||
}
|
}
|
||||||
my $mb = $kb / 1024;
|
my $mb = $kb / 1024;
|
||||||
return sprintf("%0.1fMB", $mb);
|
return sprintf("%0.1f MB", $mb);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach my $line (<>) {
|
while (my $line=<STDIN>) {
|
||||||
chomp $line;
|
chomp $line;
|
||||||
#print "line[$line]\n";
|
print "line[$line]\n";
|
||||||
my $lc_pos = index($line, '[{');
|
my $lc_pos = index($line, '[{');
|
||||||
# print "lc at $lc_pos\n";
|
# print "lc at $lc_pos\n";
|
||||||
next if ($lc_pos < 0);
|
next if ($lc_pos < 0);
|
||||||
@@ -37,14 +37,16 @@ foreach my $line (<>) {
|
|||||||
for my $rh_item ( @$ra_loadmon) {
|
for my $rh_item ( @$ra_loadmon) {
|
||||||
next if ($rh_item == 0);
|
next if ($rh_item == 0);
|
||||||
if (defined($rh_item->{basename})) {
|
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->{basename},
|
||||||
$rh_item->{num_pids},
|
$rh_item->{num_pids},
|
||||||
|
$rh_item->{total_threads},
|
||||||
mb($rh_item->{total_mem_KB}));
|
mb($rh_item->{total_mem_KB}));
|
||||||
}
|
}
|
||||||
else {
|
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_num_pids},
|
||||||
|
$rh_item->{tt_threads},
|
||||||
mb($rh_item->{tt_mem_kb}),
|
mb($rh_item->{tt_mem_kb}),
|
||||||
$rh_item->{tt_fh});
|
$rh_item->{tt_fh});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user