--- loncom/lonnet/perl/lonnet.pm 2003/05/08 21:35:48 1.369 +++ loncom/lonnet/perl/lonnet.pm 2003/05/08 22:07:28 1.371 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.369 2003/05/08 21:35:48 albertel Exp $ +# $Id: lonnet.pm,v 1.371 2003/05/08 22:07:28 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -358,14 +358,14 @@ sub userload { while ($filename=readdir(LONIDS)) { if ($filename eq '.' || $filename eq '..') {next;} my ($atime)=(stat($perlvar{'lonIDsDir'}.'/'.$filename))[8]; - if ($curtime-$atime < 3600) { $num_users++; } + if ($curtime-$atime < 3600) { $numusers++; } } closedir(LONIDS); } my $userloadpercent=0; my $maxuserload=$perlvar{'lonUserLoadLim'}; if ($maxuserload) { - $userloadpercent=100*$num_users/$maxuserload; + $userloadpercent=100*$numusers/$maxuserload; } return $userloadpercent; } @@ -396,17 +396,23 @@ sub overloaderror { # ------------------------------ Find server with least workload from spare.tab sub spareserver { - my $loadpercent = shift; + my ($loadpercent,$userloadpercent) = @_; my $tryserver; my $spareserver=''; - my $lowestserver=$loadpercent; + if ($userloadpercent !~ /\d/) { $userloadpercent=0; } + my $lowestserver=$loadpercent > $userloadpercent? + $loadpercent : $userloadpercent; foreach $tryserver (keys %spareid) { - my $answer=reply('load',$tryserver); + my $loadans=reply('load',$tryserver); + my $userloadans=reply('userload',$tryserver); + if ($userloadans !~ /\d/) { $userloadans=0; } + my $answer=$loadans > $userloadans? + $loadans : $userloadans; if (($answer =~ /\d/) && ($answer<$lowestserver)) { $spareserver="http://$hostname{$tryserver}"; $lowestserver=$answer; } - } + } return $spareserver; }