We can simply use the following command to find the size of a httpd or apache process
-------------------------
> ps -C httpd -O rss
-------------------------
the output will be like
PID RSS S TTY TIME COMMAND
10058 59824 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10106 57332 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10237 56988 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10540 55728 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10571 56364 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
So the value in the RSS column is the non swapped physical memory size of a single apache process in KB. The above example shows that each apache process uses around 50MB RAM. This includes shared libraries memory that are loaded only once.
To find non-shared memory apache or httpd process:
-------------------------
> ps -C httpd -O size
-------------------------
the output will be like
PID SZ S TTY TIME COMMAND
10058 217928 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10106 422856 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10237 316368 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10540 356016 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
10571 356128 S ? 00:00:00 /usr/local/apache/bin/httpd -k restart -DSSL
So the value under SZ colums shows real non shared physical memory.