--- /dev/null
+==================
+ Memory Profiling
+==================
+
+Ceph OSD and metadata server daemons can generate heap profiles using
+``tcmalloc``. To generate heap profiles, ensure you have ``google-perftools``
+installed::
+
+ sudo apt-get google-perftools
+
+The profiler dumps output to your ``log file`` directory (i.e.,
+``/var/log/ceph``). See `Logging and Debugging Config Reference`_ for details.
+To view the profiler logs with Google's performance tools, execute the
+following::
+
+ google-pprof -gv {log-path/filename}
+
+Refer to `Google Heap Profiler`_ for additional details.
+
+Once you have the heap profiler installed, start your cluster and begin using
+the heap profiler. You may enable or disable the heap profiler at runtime, or
+ensure that it runs continously. For the following commandline usage, replace
+``{daemon-type}`` with ``osd`` or ``mds``, and replace ``daemon-id`` with the
+OSD number or metadata server letter.
+
+
+Starting the Profiler
+---------------------
+
+To start the heap profiler, execute the following::
+
+ ceph {daemon-type} tell {daemon-id} heap start_profiler
+
+For example::
+
+ ceph osd tell 1 heap start_profiler
+
+
+Printing Stats
+--------------
+
+To print out statistics, execute the following::
+
+ ceph {daemon-type} tell {daemon-id} heap stats
+
+For example::
+
+ ceph osd tell 0 heap stats
+
+.. note:: Printing stats does not require the profiler to be running and does
+ not dump the heap allocation information to a file.
+
+
+Dumping Heap Information
+------------------------
+
+To dump heap information, execute the following::
+
+ ceph {daemon-type} tell {daemon-id} heap dump
+
+For example::
+
+ ceph mds tell a heap dump
+
+.. note:: Dumping heap information only works when the profiler is running.
+
+
+Releasing Memory
+----------------
+
+To release memory that ``tcmalloc`` has allocated but which is not being used by
+the Ceph daemon itself, execute the following::
+
+ ceph {daemon-type} tell {daemon-id} heap release
+
+For example::
+
+ ceph osd tell 2 heap release
+
+
+Stopping the Profiler
+---------------------
+
+To stop the heap profiler, execute the following::
+
+ ceph {daemon-type} tell {daemon-id} heap stop_profiler
+
+For example::
+
+ ceph {daemon-type} tell {daemon-id} heap stop_profiler
+
+.. _Logging and Debugging Config Reference: ../../configuration/log-and-debug-ref
+.. _Google Heap Profiler: http://google-perftools.googlecode.com/svn/trunk/doc/heapprofile.html
+
+
+