Everybody heathy?

If you operate a 24*7 production plant with a server like JBoss,
you shurely care about the "health" of your server. Now in theory
this is nearly trivial: we have JMX and friends.
Any kind of monitoring can be done with it, but do we do? Of course
a lot of aspects are application specific, and for the rest of it
you may like to pull myserver:8080/jmx-console.

I still have some - trivial - thoughts about what could be done on the
server side to faciliate things; and I post my thoughts here to
collect some of your opinions on this (you care about health, do you?).

1) Threadcount
For me this is more or less a linux problem, allthough I found
questionable things even on NT4. The problem is that the current
thread count reported by the JVM is garbage. The best thing i can think
of is traversing the threaddump and counting threads on the fly.

2) Thread usage
If you are not an expert on every single part of JBoss, it might be
a detectives work to find out where all those nice threads in the
threaddump come from.
This is even more criticall, as we migrate to centrally managed thread
pools, where its more easy to do it wrong (not naming them appropriate).
Thread creation (and even pooling) doesn't come at no cost. I think
it might be affordable to do some more bookkeeping (factory?)
about how and when and from which part of the system (stacktrace?)
threads get allocated. This information - if accessible via JMX - should
give you a warm feeling.

3) Memory usage
I don't understand much of the JVM heap structure but I know of tools
(e.g. JProbe) which which can provide you with information about each
and every living object on the heap. These tools do at least use the
JVM debugging API, I don't know if they need modified native classes
to do so. If you do know, please let me know.

4) History
The current JBoss measures for counting threads and memory usage don't
keep a history about thread usage in the past. With a monitoring tool
online all the time we could solve the problem on the client side.
It should be trivial to support this through a collection MBean on the
server side. The interesting part comes with the persitence of this
information? What to do after some crash (out of memory)?
Perhaps log4j is the solution? Or do you favor database storage?
(Even that could be done with log4j and appropriate Logger/Appender setup.

5) Caches, pools and such
I would prefer more control on caches, pools and containers. If everything
is "done right" (with SoftReferences?) we should not fear out of memory due
to bad configuration.
But as I noticed on this list these aspects are on the TODO for Matrix2
anyway.

Ok, just me 2c, curious about what you think,

Michael Bartmann






-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to