05-21-2017
There is no command that gives the “actual memory usage of a process” because there is no such thing as the actual memory usage of a process.
Each memory page of a process could be (among other distinctions):
1.Transient storage used by that process alone.
2.Shared with other processes using a variety of mechanisms.
3.Backed up by a disk file.
4.In physical memory or swap.
I think the “dirty” figure adds up everything that is in RAM (not swap) and not backed by a file. This includes both shared and non-shared memory (though in most cases other than forking servers, shared memory consists of memory-mapped files only).
The information displayed by pmap comes from /proc/PID/maps and /proc/PID/smaps. That is the real memory usage of the process — it can't be summarized by a single number.
Christian
Network Admin
Free SharePoint Hosting
Last edited by ChristianC123; 05-24-2017 at 04:19 PM..
10 More Discussions You Might Find Interesting
1. Programming
Hi all,
I tried to output memory usage information while the process is
executing at a particular time. I found out some people
suggesting calling the ioctl. I followed it and wrote a test example:
#include <unistd.h>
#include <stdlib.h>
#include <iostream.h>
#include <fcntl.h>
#include... (2 Replies)
Discussion started by: lanchen
2 Replies
2. UNIX for Advanced & Expert Users
we are running red hat ES4 and i would like to know if there is anyway of restrcting the maximum amount of memory that a process can get? I have a single preocess that is taking >13GB.
Thanks,
Frank (4 Replies)
Discussion started by: frankkahle
4 Replies
3. Shell Programming and Scripting
hi all,
i want to write a script that checks the memory usage of processes and send a mail with the name of the process witch is using more then 300mb RAM.
dose anybody have a sample script or an idea how i can make it ?
PROCCESSES="snmpd sendmail"
for myVar in $PROCCESSES
do
... (7 Replies)
Discussion started by: tafil
7 Replies
4. HP-UX
I use pstat API to get Process Infomation
I would like to get a process
1.process owner
2.how many physical memory and virtual memory and total memory used(KB) and usage(%)
3.a process excution file create time
4.a process excution file access time
I do't know which attribute it i need
... (3 Replies)
Discussion started by: alert0919
3 Replies
5. UNIX for Advanced & Expert Users
Hi Guys,
I work on a AIX environment and I'm trying to write a script where I can collect all the memory used by a process. Basically I'm executing the command 'ps -fu userid' to get all the process ids and then executing the 'ps v PID' to get all the memory allocated by PPID. My question is... (2 Replies)
Discussion started by: arizah
2 Replies
6. Linux
hello,
I have purchased VPS from one webhosting company. VPS comes with Virtuozzo power panel. It has 512MB gurranted RAM and dynamic RAM 2048 MB.
I have hosted single domain with 50MB database and wordpress installation.
But I am getting resource alerts. It goes sometime in yellow... (8 Replies)
Discussion started by: mrugesh78
8 Replies
7. AIX
Hi all,
I am currently having trouble to get nmon to print me the actual CPU usage for an interval for a process.
According to the manual, something like
# time nmon -t -C cron -s 5 -c 2 -F outfile
real 0m0.98s
user 0m0.03s
sys 0m0.04s
should print out at least the process... (15 Replies)
Discussion started by: zaxxon
15 Replies
8. Solaris
Hello Friends,
I need to check memory usage & availability before I could run a program if there is enough memory is left or not, so how could i achieve this? Which command output i should rely on? I have diplayed outputs of SAR, VMstat and PRstat commands below, But how could i check memory... (8 Replies)
Discussion started by: EAGL€
8 Replies
9. Solaris
hi all gurus:
I want to find out Solaris process memory usage, but got a bit confused, see if any one can provide me some guidance.
i tend to use prstat -a to get total memory consumption by user (I know prstat likely have a bug that simply sum up the memory, regardless if the memory being... (5 Replies)
Discussion started by: oakville
5 Replies
10. Solaris
I have multiple oracle databases on one server. All the database are running from the same user i.e. oraent.
The process for each database can be distinguished by the ps -ef command
Eg : ps -ef | grep oraentThe Output :
oraent 5361 1 0 20:58:05 ? 0:00 oracledb1... (11 Replies)
Discussion started by: yashreads
11 Replies
LEARN ABOUT OPENDARWIN
shmat
SHMAT(2) BSD System Calls Manual SHMAT(2)
NAME
shmat, shmdt -- map/unmap shared memory
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
void *
shmat(int shmid, void *shmaddr, int shmflg);
int
shmdt(void *shmaddr);
DESCRIPTION
shmat() maps the shared memory segment associated with the shared memory identifier shmid into the address space of the calling process. The
address at which the segment is mapped is determined by the shmaddr parameter. If it is equal to 0, the system will pick an address itself.
Otherwise, an attempt is made to map the shared memory segment at the address shmaddr specifies. If SHM_RND is set in shmflg, the system will
round the address down to a multiple of SHMLBA bytes (SHMLBA is defined in <sys/shm.h> ). A shared memory segment can be mapped read-only by
specifying the SHM_RDONLY flag in shmflg. shmdt() unmaps the shared memory segment that is currently mapped at shmaddr from the calling
process' address space. shmaddr must be a value returned by a prior shmat() call. A shared memory segment will remain existant until it is
removed by a call to shmctl(2) with the IPC_RMID command.
RETURN VALUES
shmat() returns the address at which the shared memory segment has been mapped into the calling process' address space when successful,
shmdt() returns 0 on successful completion. Otherwise, a value of -1 is returned, and the global variable errno is set to indicate the error.
ERRORS
shmat() will fail if:
[EACCES] The calling process has no permission to access this shared memory segment.
[ENOMEM] There is not enough available data space for the calling process to map the shared memory segment.
[EINVAL] shmid is not a valid shared memory identifier. shmaddr specifies an illegal address.
[EMFILE] The number of shared memory segments has reached the system-wide limit.
shmdt() will fail if:
[EINVAL] shmaddr is not the start address of a mapped shared memory segment.
SEE ALSO
shmctl(2), shmget(2), mmap(2)
BSD
August 17, 1995 BSD