Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / October 2007

Tip: Looking for answers? Try searching our database.

How to limit and change CPU and memory of a thread?

Thread view: 
Ulrich Scholz - 29 Oct 2007 17:20 GMT
Dear all,

is it possible to create a thread with limited memory and limited
clock cycles?  I guess this is highly dependent on the operating
system and the virtual machine.

For example, it seems to be possible to pose a memory limit if a Java
program is started from the console under Linux (options -Xmx and -
Xss).  What other possibilities are there?

Thank you,

Ulrich
Kenneth P. Turvey - 29 Oct 2007 19:53 GMT
> Dear all,
>
[quoted text clipped - 9 lines]
>
> Ulrich

You can limit the heap size when you start the JVM, but not memory used by
an individual thread.  Memory isn't really owned by a thread.  Once
allocated any thread can access it.  As far as CPU goes.. there really
isn't any way to limit it.  You could have a second thread that watches
how much CPU has been used and does some action if it gets past a certain
limit, but I don't think you are looking for this.

What you probably want is for a thread to use no more than 10% of the CPU
over some time interval.  I don't think there is a way to do this in Java.  

I've been looking at some of these same issues myself and Java just
doesn't have a lot of capability when it comes to severely limiting a
process.

I did figure out a way to limit a Java process to only one thread.  You
create a custom class loader for it and check for the class
"java.lang.Thread".  If it tries to instantiate one then throw an
exception.  I haven't actually tried it, but I think it would work.  

You are probably writing the code you are trying to limit, so this doesn't
really apply to you.  

Good luck.

Signature

Kenneth P. Turvey <kt-usenet@squeakydolphin.com>

Ulrich Scholz - 30 Oct 2007 10:37 GMT
On Oct 29, 7:53 pm, "Kenneth P. Turvey" <kt-use...@squeakydolphin.com>
wrote:

> What you probably want is for a thread to use no more than 10% of the CPU
> over some time interval.  I don't think there is a way to do this in Java.  

that's bad

> You are probably writing the code you are trying to limit, so this doesn't
> really apply to you.  

Actually, I don't write the programs I'd like to limit.  As part of
the EU project MUSIC (www.music-ist.eu), I'm developing a method,
called divide and conquer (D&C), to distribute (parts of) applications
onto an ensemble of devices.  As a result, otherwise unrelated, third-
party applications can end up on the same device, thus competing for
memory and CPU.  (Check out Publications > Publications related to
MUSIC > Divide and Conquer on the MUSIC portal).

D&C will assign resources to applications.  Because control is better
than confidence, it is desirable that D&C can limit the resources and
is able to change these limits later on.  Of course, for the purpose
of research it is OK to simply assign the limits and assume that the
applications will follow them.  But I'd prefer to have at least one
demonstrator with actual control over the resources, even if this
would work only for one specific hardware/software combination.

Any suggestions welcome.

Ulrich
Ingo Menger - 30 Oct 2007 10:58 GMT
> Any suggestions welcome.

Since you write "any": I remember having read about research concerned
with the fitness of Java for real time applications. Perhaps the
search engine of your choice finds something for +java +real +time.
(Mine does).
Ulrich Scholz - 31 Oct 2007 11:15 GMT
> > Any suggestions welcome.
>
> Since you write "any": I remember having read about research concerned
> with the fitness of Java for real time applications. Perhaps the
> search engine of your choice finds something for +java +real +time.
> (Mine does).

Thanks for pointing me to Java SE Real Time.  That seems to be what I
need.  I started a new thread with questions about Java SE Real Time
but feel free to point me to other information within this thread.

Thank you,

Ulrich
Ingo Menger - 31 Oct 2007 11:39 GMT
> Thanks for pointing me to Java SE Real Time.  That seems to be what I
> need.  I started a new thread with questions about Java SE Real Time
> but feel free to point me to other information within this thread.

Unfortunately I can't. The only thing I know is that something like
"Java SE Real Time" exists (though I forgot the exact name) and that
"real time" somehow implies management of CPU ressources. So I thought
I could suggest you research in that direction. Hope you find
something useful.
Lew - 31 Oct 2007 14:26 GMT
> Unfortunately I can't. The only thing I know is that something like
> "Java SE Real Time" exists (though I forgot the exact name) and that
> "real time" somehow implies management of CPU ressources. So I thought
> I could suggest you research in that direction. Hope you find
> something useful.

Just to add to the store of knowledge, strictly speaking a "real-time" system
is one that makes guarantees about service time.  Thus you know that a context
switch can take no more than some time epsilon, for example.  That epsilon
could be large as long as it's guaranteed.  Naturally the shorter the epsilon,
the more responsive and generally useful is the real-time system.

The key feature of real-time systems is determinism.  For non-real-time
systems, no matter how long the wait, something can take longer.  You just
cannot be sure.  With real-time systems you are sure.

Signature

Lew

Roedy Green - 30 Oct 2007 17:16 GMT
>is it possible to create a thread with limited memory and limited
>clock cycles?  I guess this is highly dependent on the operating
>system and the virtual machine.

Objects don't belong to threads. There is a common pool of objects.

To get the effect you want you would have to put a quota system into
your various constructors.
Signature

Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com



Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.