Sponsored Content
Operating Systems HP-UX How to find the used memory in HP-UX? Post 302935526 by DGPickett on Tuesday 17th of February 2015 10:19:33 AM
Old 02-17-2015
PS: Used/Free memory in a VM system is pretty meaningless. Once a system goes quiescent, the free memory just represents recent proceess terminations, which make a bunch of free pages. Pages may be used for old mmap(), perhaps by ld() the dynamic linker, and remain mapped in speculation of future use. If there is demand for free memory, and they are not modified, then they can be repurposed immediately, but the memory is in use, used. Whe a process exits, the RAM used for stack and heap are returned to the free memory pool, awaiting use by the nest consumer.

It is more useful to look at page writes and reads of swap per second, to determine if there is a RAM shortage. There are also many ways to tune a system for lower swap I/O, but that is very much an art, sometimes a proprietary product. If you are writing the apps, then there are also many ways to control RAM demand. Paging, in and of itself, may be the right behavior for what is going on, such as extensive interrogation of a huge database. I often see high page faults on virus scanners, as their dictionary is huge.
This User Gave Thanks to DGPickett For This Post:
 

10 More Discussions You Might Find Interesting

1. HP-UX

How to find memory used by a process

Hi, Can anyone help me out in writing the shell scrip which monitors a process which is running and gives me the output of the memory being used by the process, I have the requirement of monitorig the memory usage of the process when it is running. Please help me out (3 Replies)
Discussion started by: vijayagiri
3 Replies

2. Filesystems, Disks and Memory

how to find memory capacity.

Hi, In Sun solaris o/s how can i find the memory space available,Swap space. By giving df command i can get the disc space. I want RAM space & swap space. If anybody assist me.that is great. Thanks (2 Replies)
Discussion started by: Mar1006
2 Replies

3. HP-UX

How to find the memory in HP-Unix?

Hi, I have a HP-Unix server, version B.11.23. Can someone tell me how to find out the physical memory & virtual memory (swap) in my server? & what is Page fault? & is there any limitation for page fault? Thank you. Your help is appreciated. (7 Replies)
Discussion started by: Amol21
7 Replies

4. Solaris

How to find Total and Free Physical Memory and Logical Memory in SOLARIS 9

Hi, Im working on Solaris 9 on SPARC-32 bit running on an Ultra-80, and I have to find out the following:- 1. Total Physical Memory in the system(total RAM). 2. Available Physical Memory(i.e. RAM Usage) 3. Total (Logical) Memory in the system 4. Available (Logical) Memory. I know... (4 Replies)
Discussion started by: 0ktalmagik
4 Replies

5. Solaris

Unable to find 8 gb of memory

I 've one box with 16gb of RAM and top, vmstat showing 8712M free , i 'm unable to find which process is eating up rest of the memory , the system is not running anything at the moment. (14 Replies)
Discussion started by: fugitive
14 Replies

6. Red Hat

how to find out free memory?

hi, I have done the below, but am confused as to how much memory is "free" please help thanks $ free total used free shared buffers cached Mem: 132033488 48827536 83205952 0 1007696 45404632 -/+ buffers/cache: 2415208 ... (7 Replies)
Discussion started by: JamesByars
7 Replies

7. Ubuntu

Find defective ram memory

How do I find if I have defective ram in my computer. I don't have a cd-rom, so I can't use a bootable cd. (1 Reply)
Discussion started by: locoroco
1 Replies

8. AIX

How to find AIX Free Memory?

All, AIX: 6.1 64 bits How to find out Free memory available on AIX 6.1 64 bits When I used : svmon -G size inuse free pin virtual mmode memory 1048576 612109 191151 215969 549824 Ded-E pg space 4325376 ... (1 Reply)
Discussion started by: a1_win
1 Replies

9. UNIX for Advanced & Expert Users

Find memory usage along with time

Hi Guys, I have a script. It calls an executable inside (programmed in C). I will have to find the execution time of that script and amount of memory consumed by that process as well. #!/bin/sh echo "Script starting" echo "executable staring" executable parm1 parm2 parm3 echo... (4 Replies)
Discussion started by: PikK45
4 Replies

10. Solaris

How to find out the memory usage in Solaris?

Hi All, In one of the solaris box aslert got triggered as ... (Used_Real_Mem_Pct=93.0 Used_Swap_Space_Pct=75.0 )] when i see the usage by vmstat and sar i am not able to relate the alert with the free memory and swap memory please help to understand the vmstat output as below.. kthr ... (4 Replies)
Discussion started by: Riverstone
4 Replies
MLOCK(2)						     Linux Programmer's Manual							  MLOCK(2)

NAME
mlock, munlock, mlockall, munlockall - lock and unlock memory SYNOPSIS
#include <sys/mman.h> int mlock(const void *addr, size_t len); int munlock(const void *addr, size_t len); int mlockall(int flags); int munlockall(void); DESCRIPTION
mlock() and mlockall() respectively lock part or all of the calling process's virtual address space into RAM, preventing that memory from being paged to the swap area. munlock() and munlockall() perform the converse operation, respectively unlocking part or all of the calling process's virtual address space, so that pages in the specified virtual address range may once more to be swapped out if required by the kernel memory manager. Memory locking and unlocking are performed in units of whole pages. mlock() and munlock() mlock() locks pages in the address range starting at addr and continuing for len bytes. All pages that contain a part of the specified address range are guaranteed to be resident in RAM when the call returns successfully; the pages are guaranteed to stay in RAM until later unlocked. munlock() unlocks pages in the address range starting at addr and continuing for len bytes. After this call, all pages that contain a part of the specified memory range can be moved to external swap space again by the kernel. mlockall() and munlockall() mlockall() locks all pages mapped into the address space of the calling process. This includes the pages of the code, data and stack seg- ment, as well as shared libraries, user space kernel data, shared memory, and memory-mapped files. All mapped pages are guaranteed to be resident in RAM when the call returns successfully; the pages are guaranteed to stay in RAM until later unlocked. The flags argument is constructed as the bitwise OR of one or more of the following constants: MCL_CURRENT Lock all pages which are currently mapped into the address space of the process. MCL_FUTURE Lock all pages which will become mapped into the address space of the process in the future. These could be for instance new pages required by a growing heap and stack as well as new memory mapped files or shared memory regions. If MCL_FUTURE has been specified, then a later system call (e.g., mmap(2), sbrk(2), malloc(3)), may fail if it would cause the number of locked bytes to exceed the permitted maximum (see below). In the same circumstances, stack growth may likewise fail: the kernel will deny stack expansion and deliver a SIGSEGV signal to the process. munlockall() unlocks all pages mapped into the address space of the calling process. RETURN VALUE
On success these system calls return 0. On error, -1 is returned, errno is set appropriately, and no changes are made to any locks in the address space of the process. ERRORS
ENOMEM (Linux 2.6.9 and later) the caller had a nonzero RLIMIT_MEMLOCK soft resource limit, but tried to lock more memory than the limit permitted. This limit is not enforced if the process is privileged (CAP_IPC_LOCK). ENOMEM (Linux 2.4 and earlier) the calling process tried to lock more than half of RAM. EPERM (Linux 2.6.9 and later) the caller was not privileged (CAP_IPC_LOCK) and its RLIMIT_MEMLOCK soft resource limit was 0. EPERM (Linux 2.6.8 and earlier) The calling process has insufficient privilege to call munlockall(). Under Linux the CAP_IPC_LOCK capa- bility is required. For mlock() and munlock(): EAGAIN Some or all of the specified address range could not be locked. EINVAL len was negative. EINVAL (Not on Linux) addr was not a multiple of the page size. ENOMEM Some of the specified address range does not correspond to mapped pages in the address space of the process. For mlockall(): EINVAL Unknown flags were specified. For munlockall(): EPERM (Linux 2.6.8 and earlier) The caller was not privileged (CAP_IPC_LOCK). CONFORMING TO
POSIX.1-2001, SVr4. AVAILABILITY
On POSIX systems on which mlock() and munlock() are available, _POSIX_MEMLOCK_RANGE is defined in <unistd.h> and the number of bytes in a page can be determined from the constant PAGESIZE (if defined) in <limits.h> or by calling sysconf(_SC_PAGESIZE). On POSIX systems on which mlockall() and munlockall() are available, _POSIX_MEMLOCK is defined in <unistd.h> to a value greater than 0. (See also sysconf(3).) NOTES
Memory locking has two main applications: real-time algorithms and high-security data processing. Real-time applications require determin- istic timing, and, like scheduling, paging is one major cause of unexpected program execution delays. Real-time applications will usually also switch to a real-time scheduler with sched_setscheduler(2). Cryptographic security software often handles critical bytes like pass- words or secret keys as data structures. As a result of paging, these secrets could be transferred onto a persistent swap store medium, where they might be accessible to the enemy long after the security software has erased the secrets in RAM and terminated. (But be aware that the suspend mode on laptops and some desktop computers will save a copy of the system's RAM to disk, regardless of memory locks.) Real-time processes that are using mlockall() to prevent delays on page faults should reserve enough locked stack pages before entering the time-critical section, so that no page fault can be caused by function calls. This can be achieved by calling a function that allocates a sufficiently large automatic variable (an array) and writes to the memory occupied by this array in order to touch these stack pages. This way, enough pages will be mapped for the stack and can be locked into RAM. The dummy writes ensure that not even copy-on-write page faults can occur in the critical section. Memory locks are not inherited by a child created via fork(2) and are automatically removed (unlocked) during an execve(2) or when the process terminates. The memory lock on an address range is automatically removed if the address range is unmapped via munmap(2). Memory locks do not stack, that is, pages which have been locked several times by calls to mlock() or mlockall() will be unlocked by a sin- gle call to munlock() for the corresponding range or by munlockall(). Pages which are mapped to several locations or by several processes stay locked into RAM as long as they are locked at least at one location or by at least one process. Linux Notes Under Linux, mlock() and munlock() automatically round addr down to the nearest page boundary. However, POSIX.1-2001 allows an implementa- tion to require that addr is page aligned, so portable applications should ensure this. The VmLck field of the Linux-specific /proc/PID/status file shows how many kilobytes of memory the calling process has locked using mlock(), mlockall(), shmctl(2) SHM_LOCK, and mmap(2) MAP_LOCKED. Limits and permissions In Linux 2.6.8 and earlier, a process must be privileged (CAP_IPC_LOCK) in order to lock memory and the RLIMIT_MEMLOCK soft resource limit defines a limit on how much memory the process may lock. Since Linux 2.6.9, no limits are placed on the amount of memory that a privileged process can lock and the RLIMIT_MEMLOCK soft resource limit instead defines a limit on how much memory an unprivileged process may lock. BUGS
In the 2.4 series Linux kernels up to and including 2.4.17, a bug caused the mlockall() MCL_FUTURE flag to be inherited across a fork(2). This was rectified in kernel 2.4.18. Since kernel 2.6.9, if a privileged process calls mlockall(MCL_FUTURE) and later drops privileges (loses the CAP_IPC_LOCK capability by, for example, setting its effective UID to a nonzero value), then subsequent memory allocations (e.g., mmap(2), brk(2)) will fail if the RLIMIT_MEMLOCK resource limit is encountered. SEE ALSO
mmap(2), setrlimit(2), shmctl(2), sysconf(3), proc(5), capabilities(7) COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2010-03-05 MLOCK(2)
All times are GMT -4. The time now is 05:37 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy