Threads vs processes in ps and top?

Furnish, Trever G TGFurnish at herffjones.com
Fri Jan 6 23:32:14 UTC 2006


I have a RHEL 3 ES system running tomcat as a standalone application
server (ie not parented by apache).  I have to restart tomcat frequently
to keep the system from running so low on memory that a lot of swapping
occurs, at which point load sky-rockets because of I/O bottlenecks with
the disks.
 
I'm being stymied by the fact that none of the most basic tools seem to
be able to help in this situation because everything happens in a single
java process with many threads and the disks are one LVM volume group.
 
If I run top and sort by memory usage, I see what I'm presuming are
really a bunch of threads in one java process, because the memory
consumption is identical for all of them (and greatly exceeds the amount
of both physical RAM and swap space on the system).  How can I
differentiate between threads and processes in the output of top and ps?
I'd prefer to list only processes, so that I can easily count up real
memory usage and cpu usage.
 
If anyone gets past that problem, I have another one - because there's
only one volume group with several logical volumes, iostat is
effectively useless - it shows only disk I/O counters for the disk
partitions, not for the individual filesystems.  Here's an example (and
note that I can't even see how to translate to the seemingly arbitrary
lvm device names to real lvm volumes!):
 
[root at mixx6 central]# iostat ALL
Linux 2.4.21-37.ELsmp (mixx6)   01/06/2006
 
avg-cpu:  %user   %nice    %sys %iowait   %idle
           4.04    0.00    4.26    5.66   86.04
 
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
lvma              0.00         0.00         0.00          0          0
lvmb              0.00         0.00         0.00          0          0
lvmc              0.00         0.00         0.00          0          0
lvmd              0.00         0.00         0.00          0          0
lvme              0.00         0.00         0.00          0          0
lvmf              0.00         0.00         0.00          0          0
lvmg              0.00         0.00         0.00          0          0
lvmh              0.00         0.00         0.00          0          0
cciss/c0d0       83.41        98.28       311.90  544547782 1728238298
cciss/c0d0p1      0.00         0.00         0.00       1798       1090
cciss/c0d0p2     83.41        98.28       311.90  544545696 1728237208
 
And for reference, here's the /etc/fstab:
 
[root at mixx6 central]# cat /etc/fstab
/dev/vg00/lvol3         /                       ext3    defaults,acl
1 1
LABEL=/boot             /boot                   ext3    defaults
1 2
none                    /dev/pts                devpts  gid=5,mode=620
0 0
/dev/vg00/lvol4         /home                   ext3    defaults
1 2
none                    /proc                   proc    defaults
0 0
none                    /dev/shm                tmpfs   defaults
0 0
/dev/vg00/lvol6         /tmp                    ext3    defaults
1 2
/dev/vg00/lvol7         /usr                    ext3    defaults,acl
1 2
/dev/vg00/lvol8         /var                    ext3    defaults,acl
1 2
/dev/vg00/lvol9         /x01                    ext3    defaults,acl
1 2
/dev/vg00/lvol2         swap                    swap    defaults
0 0
/dev/cdrom              /mnt/cdrom              udf,iso9660
noauto,owner,kudzu,ro 0 0
LABEL=/opt              /opt                    ext3    defaults,acl
1 2

Thanks for any advice.
 
--
Trever





More information about the redhat-list mailing list