| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: How to find process memory consumption on HP-UX 11.11 ?
Helmut,
Some time ago, I found an HP-UX system call named ³pstatvm_size()², whose use is illustrated in the following ³C² source:
#define _PSTAT64
#include
#include
#include
#include
#include
void pstatvm(pid)
int pid;
{
struct pst_vm_status pst;
int idx, count;
long long shared_vm = 0;
long long shared_ram = 0;
long long private_vm = 0;
long long private_ram = 0;
idx=0;
count = pstat_getprocvm(&pst, sizeof(pst), (size_t)pid, idx);
while (count > 0) {
switch ((long)pst.pst_type) {
case PS_IO: break;
/* Don't count IO space. It really is not RAM or swap. */
default:
if (pst.pst_flags & PS_SHARED) {
shared_vm += (long long) pst.pst_length;
shared_ram += (long long)pst.pst_phys_pages;
} else {
private_vm += (long long) pst.pst_length;
private_ram += (long long)pst.pst_phys_pages;
}
break;
}
idx++;
count = pstat_getprocvm(&pst, sizeof(pst), (size_t)pid, idx);
}
printf("%d\t\t", pid);
printf("%lldK\t\t", shared_vm*4);
printf("%lldK\t\t", shared_ram*4);
printf("%lldK\t\t", private_vm*4);
printf("%lldK\n", private_ram*4);
void pstatvm_all()
{
#define BURST ((size_t)10)
struct pst_status pst[BURST];
int i, count;
int idx = 0; /* index within the context */
/* loop until count == 0, will occur when all have been returned */ while ((count = pstat_getproc(pst, sizeof(pst[0]), BURST, idx)) > 0) {
/* got count (max of BURST) this time. process them */
for (i = 0; i < count; i++) {
if (pst[i].pst_pid==0) continue; /* Can't getprocvm real pid 0
*/
pstatvm(pst[i].pst_pid);
}
/*
* now go back and do it again, using the next index after
* the current 'burst'
*/
idx = pst[count-1].pst_idx + 1;
if (count == -1)
perror("pstat_getproc()");
#undef BURST
}
main(argc, argv)
int argc;
char *argv[];
{
int i;
printf("pid\t\tshared_vm\tshared_ram\tprivate_vm\tprivate_ram\n");
if (argc > 1) {
for (i=1; i Hi!
> > Is there a way to find the exact memory that a dedicated server process is > using on HP-UX 11.11? If I have 200 dedicated server proceses, I found out > that the active ones are using about 40 MB of RAM whereas the inactive ones > were using about 12-15 MB. So my memory consumption is mostly based on > guessing. > > I remember from my Solaris days the "pmap" uptility. Is there anything like > that for HP-UX? > > This is 9.2.0.6 on HP-UX 11.11. > > Thanks, > Helmut > >Received on Fri Jan 06 2006 - 19:58:21 CST
![]() |
![]() |