[LON-CAPA-cvs] cvs: loncom / lond /lonnet/perl lonnet.pm

albertel lon-capa-cvs@mail.lon-capa.org
Thu, 08 May 2003 21:35:48 -0000


albertel		Thu May  8 17:35:48 2003 EDT

  Modified files:              
    /loncom	lond 
    /loncom/lonnet/perl	lonnet.pm 
  Log:
  - more user load balancing, BUG#958
  
  
Index: loncom/lond
diff -u loncom/lond:1.127 loncom/lond:1.128
--- loncom/lond:1.127	Thu May  8 17:25:31 2003
+++ loncom/lond	Thu May  8 17:35:48 2003
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.127 2003/05/08 21:25:31 albertel Exp $
+# $Id: lond,v 1.128 2003/05/08 21:35:48 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -73,7 +73,7 @@
 my $status='';
 my $lastlog='';
 
-my $VERSION='$Revision: 1.127 $'; #' stupid emacs
+my $VERSION='$Revision: 1.128 $'; #' stupid emacs
 my $remoteVERSION;
 my $currenthostid;
 my $currentdomainid;
@@ -2071,6 +2071,7 @@
     return "version:$VERSION";
 }
 
+#There is a copy of this in lonnet.pm
 sub userload {
     my $numusers=0;
     {
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.368 loncom/lonnet/perl/lonnet.pm:1.369
--- loncom/lonnet/perl/lonnet.pm:1.368	Sun May  4 03:38:32 2003
+++ loncom/lonnet/perl/lonnet.pm	Thu May  8 17:35:48 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.368 2003/05/04 07:38:32 albertel Exp $
+# $Id: lonnet.pm,v 1.369 2003/05/08 21:35:48 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -345,6 +345,29 @@
      $fh->close();
     }
     return 'ok';
+}
+
+# ------------------------------------------ Find out current server userload
+# there is a copy in lond
+sub userload {
+    my $numusers=0;
+    {
+	opendir(LONIDS,$perlvar{'lonIDsDir'});
+	my $filename;
+	my $curtime=time;
+	while ($filename=readdir(LONIDS)) {
+	    if ($filename eq '.' || $filename eq '..') {next;}
+	    my ($atime)=(stat($perlvar{'lonIDsDir'}.'/'.$filename))[8];
+	    if ($curtime-$atime < 3600) { $num_users++; }
+	}
+	closedir(LONIDS);
+    }
+    my $userloadpercent=0;
+    my $maxuserload=$perlvar{'lonUserLoadLim'};
+    if ($maxuserload) {
+	$userloadpercent=100*$num_users/$maxuserload;
+    }
+    return $userloadpercent;
 }
 
 # ------------------------------------------ Fight off request when overloaded