mirror of
https://github.com/ceph/ceph
synced 2025-01-04 10:12:30 +00:00
doc: Added a memory profiling section. Ported from the wiki.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
This commit is contained in:
parent
5066abf189
commit
64d2760a49
96
doc/rados/operations/memory-profiling.rst
Normal file
96
doc/rados/operations/memory-profiling.rst
Normal file
@ -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
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user