Hi,
I've ported the Virtualization/Resource Consomption Management from 1.0
to 1.5. RCM is described here:
http://weblogs.java.net/blog/jfarcand/archive/2006/04/resource_consum.html
RCM is very similar to Solaris 10 Zone. Zones give a fairly lower
virtualization of system resources. Each zone has a distinct IP address
and hostname and root file systems. You can automate and recreate a
similar looking zone on a different machine. But Zones are only on
Solaris 10 and upwards. What about Linux and Windows? What if the
applications were numbering in dozens or hundreds and had a fairly
limited usage? Would it not be nice if you could deploy them all as you
would normally do :-), but still be assure Quality of Service? Things
you might want to be able to configure are:
- Be able to reserve a specific percentage of request processing
capability for a particular business service. OS level resource
management capabilities are usually too low level.
- be able to specify ceilings on resource utilization so that heavier
than expected traffic to one application, does not adversely affect
other co-redident applications.
I've added a ProtocolFilter implementation that examines incoming
requests and assign them to worker threads based on the policy rule
(StreamAlgorithm), who gave a coarse but fairly accurate control on
overall resource consumption. You could restrict no more than say 20
users to a particular application, at any time. You could set aside some
request processing threads, so that users of an important time-sensitive
application always received good service, even if there was an over
abundance of users for some other co-resident applications.
Blog on the topic is coming, as well as performance data that
demonstrate its usefulness.
Have fun :-)
-- Jeanfrancois