Does anyone know of a way to monitor the load & resource usage of a single program. What I have is a process I'd like to know how much load it puts on the server but it's not something I can just "monitor" to get a feel for.
What I'd like to do is something like
$ monitor "someapp" &
and let it run, then review some sort of log. Is there any Red Hat package or downloadable program that can more or less monitor an entire processes load & resource usages??
The problem is that your request is not well defined. You say you want to monitor 'how much load it puts on the server', but that's not a single thing. Programs can cause i/o load, cpu load, network load, memory 'load' (ie. run out of memory), even interrupt load (if they interact with hardware), but all those things are then aggregated for efficiency by the kernel.
For instance, if your process uses a shared library that another program is using, which program does it count against? What if it uses a shared lib that isn't currently being used (and is therefore not loaded)? If two processes simultaneously request to load a shared library, which one does the disk i/o get charged against? What if those disk blocks were in readahead cache because a completely unrelated process happened to read a file that was 'nearby' on-disk ? An OS is an operating system... as such, it evinces complex interactions that don't necessarily allow individual parts to be analyzed separately.
Some things that will give you good info:
top will of course show you a ranked list based on some metrics, though read the manpage carefully for how things like memory accounting is done.
/proc/ is a kernel-mediated view of your process, including what filehandles it has open, what memory it's got mapped, all kinds of things. See the manpage for detailed info.
strace will trace the system calls a program makes so you can tell, to an extent at least, what it's doing. Again, the manpage has detailed info.
SystemTap is what you are looking for. It won't be easy (but it won't be too hard either) but it will pay off.
SystemTap is the RH designated & supported tool for this type of data gathering. The rpm package name is
systemtap
. It's similar to Solaris' Dtrace.And, no, it is not a vague question. But ... yes, looking at only the behavior of one process and ignoring the rest of the system might give you a vague answer.