Friends , i have a question how to check the total memomry and free memory in AIX, We have vmstat ,svmon and topas commands.Which command among the will give the true figure.
check svmon manual in AIX
svmon -G
size inuse free pin virtual
memory 786432 99980 686452 61545 86822
The memory size of the system is 786432 frames (786432*4*1024
bytes, or 208 GB). This size is split into the inuse frames (99980
frames) and the free frames (686452 frames).
.
Save the below code between the Marker Lines, into a file called WHAT_EVER_YOU_WANT.sh and give it executable permissions by executing chmod as follows:
chmod +x ./WHAT_EVER_YOU_WANT.sh
And execute it, it will give you all the details like current RAM in MB's ( easy to understand ) and also who are connected remotely and form where. you can tailor it to use only the memory retrieval part also.
#!/usr/bin/ksh
#memory calculator
um=`svmon -G | tail -1 | awk {'print $3'}`
((um=um / 256))
tm=`lsattr -El sys0 -a realmem | awk {'print $2'}`
((tm=tm / 1000))
((fm=tm - um))
echo "\n\n-----------------------";
echo "System : (`hostname`)";
echo "-----------------------\n\n";
echo "\n\n-----------------------";
echo " Users Login information \n";
for ENTRY in `finger | cut -d " " -f1 | grep -v Login | uniq`
do
echo "`finger -l $ENTRY | head -1 | cut -d \" \" -f14` ---> `finger -l $ENTRY | awk '{ print $2 }' | tail -2 | head -1`";
#finger -l $ENTRY | awk '{ print $2 }' | tail -2 | head -1;
done
echo "-----------------------\n";
echo "\n----------------------";
echo "Memory Information\n\n";
echo "total memory = ${tm}MB"
echo "free memory = ${fm}MB"
echo "used memory = ${um}MB"
echo "\n\n-----------------------\n";
best,
-- Chandan Maddanna
Hi
I tried the script,but it gave me some errors,I modified it a little bit this is the working version.
#!/usr/bin/ksh
#memory calculator
um=`svmon -G | head -2|tail -1| awk {'print $3'}`
um=`expr $um / 256`
tm=`lsattr -El sys0 -a realmem | awk {'print $2'}`
tm=`expr $tm / 1000`
fm=`expr $tm - $um`
echo "\n\n-----------------------";
echo "System : (`hostname`)";
echo "-----------------------\n\n";
echo "\n\n-----------------------";
echo " Users Login information \n";
for ENTRY in `finger | cut -d " " -f1 | grep -v Login | uniq`
do
echo "`finger -l $ENTRY | head -1 | cut -d \" \" -f14` ---> `finger -l $ENTRY |
awk '{ print $2 }' | tail -2 | head -1`";
#finger -l $ENTRY | awk '{ print $2 }' | tail -2 | head -1;
done
echo "-----------------------\n";
echo "\n----------------------";
echo "Memory Information\n\n";
echo "total memory = $tm MB"
echo "free memory = $fm MB"
echo "used memory = $um MB"
echo "\n\n-----------------------\n";
regards
Ibrahim Sobhi
Thanks Ibrahim.
Best,
-- Chandan
To get the total memory simply look for its attributes:
lsattr -El mem0
What exactly do you mean by "total memory" and "free memory"? The available physical RAM? The available space in RAM plus the available swap space (the virtual memory) ? Depending on what exactly you want to know you can use vmstat or svmon (only as root) with various options. You can also use topas, nmon or any other similar tool, because the numbers they show are available on public OS interfaces (read: system calls) which are just queried by these tools. The difference to svmon and vmstat is just the presentation of the data gathered this way.
You can also use "vmstat -v", just keep in mind that the number is shown in memory pages (in AIX this is 4k) instead of bytes or kilobytes. For example, a machine with 16GB RAM installed (i have marked bold the corresponding numbers for you):
# lsattr -El mem0
goodsize 16384 Amount of usable physical memory in Mbytes False
size 16384 Total amount of physical memory in Mbytes False
# vmstat -v
4194304 memory pages
3977913 lruable pages
19249 free pages
2 memory pools
785742 pinned pages
80.0 maxpin percentage
20.0 minperm percentage
80.0 maxperm percentage
55.5 numperm percentage
2210872 file pages
0.0 compressed percentage
0 compressed pages
55.5 numclient percentage
80.0 maxclient percentage
2210872 client pages
0 remote pageouts scheduled
2422 pending disk I/Os blocked with no pbuf
4976055 paging space I/Os blocked with no psbuf
2484 filesystem I/Os blocked with no fsbuf
8021 client filesystem I/Os blocked with no fsbuf
101407 external pager filesystem I/Os blocked with no fsbuf
0 Virtualized Partition Memory Page Faults
0.00 Time resolving virtualized partition memory page faults
I hope this helps.
bakunin
You may want to download and use the "nmon" utility. It can be obtained from http://www-941.haw.ibm.com/collaboration/wiki/display/WikiPtype/nmon
An introduction to "nmon" can be found at IBM Wikis - AIX 5L Wiki - nmon Introduction Workshop. The audio briefs under "Section 7 -nmon Frequently Asked Questions" can help you to better understand how AIX tries to use all available memory. Thus "no free memory" may not be bad, if it is being used as filesystem cache.