]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc: Added a memory profiling section. Ported from the wiki.
authorJohn Wilkins <john.wilkins@inktank.com>
Wed, 2 Jan 2013 23:58:03 +0000 (15:58 -0800)
committerJohn Wilkins <john.wilkins@inktank.com>
Wed, 2 Jan 2013 23:58:03 +0000 (15:58 -0800)
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
doc/rados/operations/memory-profiling.rst [new file with mode: 0644]

diff --git a/doc/rados/operations/memory-profiling.rst b/doc/rados/operations/memory-profiling.rst
new file mode 100644 (file)
index 0000000..dc46dcc
--- /dev/null
@@ -0,0 +1,96 @@
+==================
+ 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
+
+
+