# Resident Memory Size Logging

**URL:** <https://www.ruby-forum.com/t/resident-memory-size-logging/120674>\
**Category:** Rails\
**Created:** [November 19, 2007, 6:40pm UTC](https://www.ruby-forum.com/t/resident-memory-size-logging/120674 "2007-11-19T18:40:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/eada6e/32.png) [@dan](https://www.ruby-forum.com/u/dan)\
**Post date:** [November 19, 2007, 6:40pm UTC](https://www.ruby-forum.com/t/resident-memory-size-logging/120674/1 "2007-11-19T18:40:50Z")

</div>

Hello:

Is there a way to get the resident memory size of the rails process in-  
code using ruby? I’d like to have my application log the size of its  
own memory.

Thank you in advance,

Dan

---

<div class="post-metadata">

**Author:** ![dan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/eada6e/32.png) [@dan](https://www.ruby-forum.com/u/dan)\
**Post date:** [November 19, 2007, 8:42pm UTC](https://www.ruby-forum.com/t/resident-memory-size-logging/120674/2 "2007-11-19T20:42:56Z")

</div>

BTW, this is one way of doing it under Linux:  
Opening “/proc/$pid/status” and looking for VmSize.

Not sure if there is a more efficient.

Dan

---

<div class="post-metadata">

**Author:** ![dan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/eada6e/32.png) [@dan](https://www.ruby-forum.com/u/dan)\
**Post date:** [November 29, 2007, 4:56pm UTC](https://www.ruby-forum.com/t/resident-memory-size-logging/120674/3 "2007-11-29T16:56:35Z")

</div>

Dan wrote:

> Hello:
> 
> Is there a way to get the resident memory size of the rails process in-  
> code using ruby? I’d like to have my application log the size of its  
> own memory.
> 
> Thank you in advance,
> 
> Dan

(Given your followup post mentions your running linux …)

# in your controller or in application.rb

…  
after\_filter :after\_req\_resource\_usage  
…  
def after\_req\_resource\_usage  
ps\_info = `ps -o psr,etime,pcpu,pmem,rss,vsz -p #{Process.pid} | grep -v CPU`  
ignore, psr, elapsed, pcpu, pmem, rss, vsz = ps\_info.split(/\s+/)  
logger.info(“pid=#{Process.pid} pcpu=#{pcpu} pmem=#{pmem} rss=#{rss}  
vsz=#{vsz}”)  
end  
…
