Blogger templates

Monday, 8 April 2013

How to find RAM utilization by user in Linux


How to find RAM utilization by user in Linux

Recently we need to find RAM(aka Physical memory) used by a User.. I thought its bit easy to find RAM usage by using a group of commands and chaining them to get desired output. Let me explain what I did to get RAM usage of a user and came to know its blunder mistake to go in that way to find the RAM use by a user. Join me to dig in to this and which led to find real RAM used by a user with other command called smem


Commands used by me to find the user RAM utilization earlier are as follows..
1)pmap –To map all the RAM used by a process
2)pgrep –To grep/get all the process for a user/Application
3)grep –To filter some data
4)awk to filter some column
For example find the RAM utilised by a user, we used following command
pmap `pgrep -u 1000` | grep total | awk '{print $2}' | awk '{s+=$1}END{print s}'
Let me explain the command
pgrep -u 1000 this command is to get all the process ID for the user whose UID is 1000
Example clipped output
pgrep -u 1000 1602 1621 1651
pmap `pgrep -u 1000` will display all the memory details for the process run

Example clipped output
pmap `pgrep -u 1000` 1602:   /usr/bin/gnome-keyring-daemon --daemonize --login 0000000000400000    840K r-x--  /usr/bin/gnome-keyring-daemon 00000000006d2000     36K r----  /usr/bin/gnome-keyring-daemon00000000006db000     12K rw---  /usr/bin/gnome-keyring-daemon 00000000006de000      8K rw---    [ anon ]
pmap `pgrep -u 1000` | grep total will grep “total” word from the pmap output.
Example clipped output
pmap `pgrep -u 1000` | grep total | more total            84872K total           237228K total                0K total            26308K total            25560K
pmap `pgrep -u 1000` | grep total | awk ‘{print $2}’ will display only total memory usage by each process
pmap `pgrep -u 1000` | grep total | awk ‘{print $2}’  | awk ‘{s+=$1}END{print s}’ To add all the RAM displayed by pmap command..
Example output
pmap `pgrep -u 1000` | grep total | awk '{print $2}' | awk '{s+=$1}END{print s}' 12954040
The above value is in KB, So my total RAM used by the user is 12.95GB. Which is blunder mistake as my Total RAM is just 3GB.
#free -m total       used       free     shared    buffers     cached Mem:          2982       2951         30          0        146       1834 -/+ buffers/cache:        970       2011 Swap:         9535          0       9535
then where is this 12.95GB RAM came from? 
This is because large portions of RAM shared between different Application using same libraries which will over-estimate the RSS(resident set size). If we need to see real RAM utilisation ie proportional set size (PSS) there is a command smem(Show MEMory) from kernel 2.6.27 to check actual RAM utilised by User.
How to get smem?
On ubuntu based machines:
#apt-get install smem
On Redhat based machines:
#yum install smem
how to use this command
#smem -u username
Example
smem -u surendra User     Count     Swap      USS      PSS      RSS surendra    60        0   703132   730122 1051560 
Note:The values are in KB
So real RAM utilised by user Surendra is 730MB(PSS value).
Even you can add USS, PSS, RSS which will give us total Memory used by user here its 12.95GB which we get in our chained commands.

No comments:

Post a Comment

 

Blogroll

Hello Friends myself Sahaj Ohri live at Jaipur city , This Website is mainly for Youth, You can explore a youth network here on www.techowner.blogspot.in As it is generally an information sharing platform when you can get information and also share information. If you are having some information.I am 19 years old guy from India who have interest in making blogs.I am a simple guy who likes to spent his time with Friends,watching movies,and reading various types of books. I loves to sharemy personal view with those people who have interest inmaking website, blog etc.Here I also give you some technical knowledge about making website attractive and some other technical support(knowledge) using WordPress as your CMS.Dear Friends, As an author, I’m trying my best to improve this platform day by day. If you are having any idea or suggestion in your mind about this website then you are free to contact me and share your thought. Contact : For Issues regarding advertisement, copyright issues or ideas sharing, you can contact us on the following details. sahaj.ohri3@gmail.com

About

Hello Friends myself Sahaj Ohri live at Jaipur city , This Website is mainly for Youth, You can explore a youth network here on www.techowner.blogspot.in As it is generally an information sharing platform when you can get information and also share information. If you are having some information.I am 19 years old guy from India who have interest in making blogs.I am a simple guy who likes to spent his time with Friends,watching movies,and reading various types of books. I loves to sharemy personal view with those people who have interest inmaking website, blog etc.Here I also give you some technical knowledge about making website attractive and some other technical support(knowledge) using WordPress as your CMS.Dear Friends, As an author, I’m trying my best to improve this platform day by day. If you are having any idea or suggestion in your mind about this website then you are free to contact me and share your thought. Contact : For Issues regarding advertisement, copyright issues or ideas sharing, you can contact us on the following details. sahaj.ohri3@gmail.com