--- loncom/loncron 2021/01/30 21:26:04 1.125
+++ loncom/loncron 2021/02/02 20:53:05 1.127
@@ -2,7 +2,7 @@
# Housekeeping program, started by cron, loncontrol and loncron.pl
#
-# $Id: loncron,v 1.125 2021/01/30 21:26:04 raeburn Exp $
+# $Id: loncron,v 1.127 2021/02/02 20:53:05 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -46,6 +46,8 @@ use GDBM_File;
use Storable qw(thaw);
use File::ReadBackwards;
use File::Copy;
+use GDBM_File qw(GDBM_READER);
+use Storable qw(thaw nfreeze);
use Sys::Hostname::FQDN();
#globals
@@ -231,6 +233,21 @@ sub log_machine_info {
&log($fh,'
Machine Information
');
&log($fh,"loadavg
");
+ my $cpucount;
+ if (open(PIPE,"lscpu |grep '^CPU(s)' 2>&1 |")) {
+ my $info = ;
+ chomp($info);
+ ($cpucount) = ($info =~ /^\QCPU(s):\E\s+(\d+)$/);
+ close(PIPE);
+ }
+ if (!$cpucount) {
+ $cpucount = 1;
+ }
+ my %loadtarget = (
+ error => 4.0*$cpucount,
+ warn => 2.0*$cpucount,
+ note => 1.0*$cpucount,
+ );
open (LOADAVGH,"/proc/loadavg");
my $loadavg=;
close (LOADAVGH);
@@ -238,11 +255,11 @@ sub log_machine_info {
&log($fh,"$loadavg");
my @parts=split(/\s+/,$loadavg);
- if ($parts[1]>4.0) {
+ if ($parts[1]>$loadtarget{'error'}) {
$errors++;
- } elsif ($parts[1]>2.0) {
+ } elsif ($parts[1]>$loadtarget{'warn'}) {
$warnings++;
- } elsif ($parts[1]>1.0) {
+ } elsif ($parts[1]>$loadtarget{'note'}) {
$notices++;
}