11-27-2008
How to accurately determine memory (RAM) information
I'm writing a shell script to display as much useful information on physical and virtual memory availability and usage as possible. I need a CLI tool to print these numbers for me.
The utilities that I know to give out some statistics are the following:
free
top
vmstat
sysctl
In Linux there's also /proc/meminfo
I'm however using OpenBSD which doesn't by default utilize /proc, and I want the script to apply in as many different environments as possible, relying on the most common basic utilities. The command "free" isn't installed on OpenBSD out-of-the-box, so I've excluded that. sysctl seems the best bet at the moment, aside from the fact that I have to do some wildcarding/conditionals for my script to apply to both Linux and BSD kernels (for example in Linux the first level key for some parameters is "kernel" whereas in OpenBSD it's "kern").
sysctl also displays the amount of physical memory wrong:
hw.physmem=469037056
hw.usermem=467742720
I have 512MB of RAM on that machine. What's up with that? I've also seen it reported by some users that sysctl incorrectly displays the machine to have 2147483648 bytes of physical memory, even when the actual amount by far exceeds this. I'm not sure if this was a Mac-related or a universal issue.
Where does /proc/meminfo fetch its content from? What about free, top, vmstat? Surely there's some cross-referencing somewhere?
Lower the level, the better, as long as it's reachable by scripting.
9 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
How do i check/get the total amount of RAM, on a machine running UNIX? (4 Replies)
Discussion started by: samudimu
4 Replies
2. Solaris
Hi All,
I am trying to find the physical memory usage by each process/users.
Can you please let me know how to get the memory usage?.
Thanks,
bsraj. (12 Replies)
Discussion started by: bsrajirs
12 Replies
3. Shell Programming and Scripting
Hi i just wanted to know what is the code to display amount of RAM and also the percentage used? I know i can possibly use the vmstat code but what part indicates the RAM? Any help would be much appreciated. Thanks (1 Reply)
Discussion started by: warlock129
1 Replies
4. Solaris
I have a Sun T5120, and I want to programmatically determine how much RAM it has.
# uname -a
SunOS myhost 5.10 Generic_141444-09 sun4v sparc SUNW,SPARC-Enterprise-T5120
The box has 64Gb; I tried prtdiag and prtconf, but they give me bogus info
prtconf gives me:
# prtconf |grep -i... (12 Replies)
Discussion started by: thomn8r
12 Replies
5. Solaris
Hi
How to display RAM memory info under Sol10 ?
I need info like :
- how many slots is available in MoBo
- how RAM is plugged into those slots
- total number of RAM memory size and size divided in each slot
ths for help. (2 Replies)
Discussion started by: presul
2 Replies
6. Solaris
Hi All,
Ram memory always fails,i did not find the reason...........any one can help i this.:wall: (2 Replies)
Discussion started by: Rajesh_Apple
2 Replies
7. Ubuntu
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. Red Hat
Hi Experts,
I have a linux system , which triggers a alarm if RAM memory goes above 70%... When i see top command i cant find any process utilizing much of memory .. Can anyone tell me what could be the reason for high memory utilization.. Bellow is the free command o/p:
free ... (14 Replies)
Discussion started by: shaliniyadav
14 Replies
9. Filesystems, Disks and Memory
Hi,
i have just installed 4 gb RAM ddr3 on OS Windows 7 32 bit.
In "manage peripherals" i see this section:
Memory installed (ram) : 4,00 gb (2,30gb usable)
Why only 2,30 gb usable ?
In Windows 7 32bit the maximum size is not 3,00gb ?
see file attached, please (4 Replies)
Discussion started by: nash83
4 Replies
SYSCTL(8) SYSCTL(8)
NAME
sysctl - configure kernel parameters at runtime
SYNOPSIS
sysctl [-n] [-e] variable ...
sysctl [-n] [-e] [-q] -w variable=value ...
sysctl [-n] [-e] [-q] -p [filename]
sysctl [-n] [-e] -a
sysctl [-n] [-e] -A
DESCRIPTION
sysctl is used to modify kernel parameters at runtime. The parameters available are those listed under /proc/sys/. Procfs is required for
sysctl support in Linux. You can use sysctl to both read and write sysctl data.
PARAMETERS
variable
The name of a key to read from. An example is kernel.ostype. The '/' separator is also accepted in place of a '.'.
variable=value
To set a key, use the form variable=value where variable is the key and value is the value to set it to. If the value contains
quotes or characters which are parsed by the shell, you may need to enclose the value in double quotes. This requires the -w param-
eter to use.
-n Use this option to disable printing of the key name when printing values.
-e Use this option to ignore errors about unknown keys.
-N Use this option to only print the names. It may be useful with shells that have programmable completion.
-q Use this option to not display the values set to stdout.
-w Use this option when you want to change a sysctl setting.
-p Load in sysctl settings from the file specified or /etc/sysctl.conf if none given. Specifying - as filename means reading data from
standard input.
-a Display all values currently available.
-A Display all values currently available in table form.
EXAMPLES
/sbin/sysctl -a
/sbin/sysctl -n kernel.hostname
/sbin/sysctl -w kernel.domainname="example.com"
/sbin/sysctl -p /etc/sysctl.conf
FILES
/proc/sys
/etc/sysctl.conf
SEE ALSO
sysctl.conf(5)
BUGS
The -A parameter behaves just as -a does.
AUTHOR
George Staikos, <staikos@0wned.org>
21 Sep 1999 SYSCTL(8)