LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

What is "load"? Monitoring, load-informed scheduling and so on..

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: What is "load"? Monitoring, load-informed scheduling and so on..
From: Chetan Ahuja <ahuja@xxxxxxxxxxxxxxxxx>
Date: Sat, 1 Jul 2000 18:21:13 -0400 (EDT)
Hi,
I've been a lurker here on this list. This is my first post... but I've
been tracking  the list off and on for the past year or so.

  There's been  talk of a Monitoring framework for LVS here for
the past 6 months or so. Also the TODO list on the web page has included  
a Load-informed scheduling scheme for a long time now. I might implement 
that as a Masters project in computer science to be done this summer and
fall. I'm preparing a small presentation for my group to discuss the idea.  
Right now my main focus is on the following question:
 
 What exactly constitutes "Load" on a real server and how often should it
be measured? 

 I know there are a lot of people on this list who have been using LVS for
a variety of applications. Do you guys think a load informed scheduling
scheme would be useful ?
   If yes, what kind of things should be measured as "load". The astute
reader would shoot back immediately with stuff like CPU, memory and
network load. Let's treat them one by one:

(All of the following is assuming that the realservers are runnig linux.
  At least  I'm going to deal with only such cases for now)

1) CPU: How good is polling  /proc/loadavg? My problem with that is the
  load  introduced by the measurement itself if polling is done too often.

        Besides, how good is the info in loadavg?   Doesn't it just
 measure  the number of processes in the queue every few  milliseconds or
 so to calculate the load. One could argue  (and many  people do argue)
 that this is not a good metric of CPU load. Any ideas ??

2) Memory: We could just do  what free command does (which is
   just   reading   /proc/meminfo). Is that good enough. Anybody see any
   pitfalls in that approach?  Of course, polling /proc too often is again
   a problem here. Besides that ??

3) Network: This is the hardest one. What would be a good metric of
  network  load... number of alive TCP connections??  Is that good
  enough... I'm not deeply familiar with the kernel networking code. Could
  somebody who is more familiar would throw some more light on this....


   I'm eagerly looking forward to a good discussion on these topics...
Please feel free to send me a direct email if you don't want to send one
to the list.

  Chetan Ahuja
  Masters student in Comp. Sci.
  Mich. State Univ.



<Prev in Thread] Current Thread [Next in Thread>