How to check free/total Memory in AIX

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.