Using Google profiling tools on a ceph OSD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I would like to take a google profile (performance profile) of a ceph OSD.
I'm using 'cephadm' to depoy my cluster, which results in a set of servers
which are too wrapped up in automation for me to be able to add the google
profiling hooks. I'll describe how to take a google profile of a regular
linux process, in the hope that someone can help me adapt this to the way
cephadm deploys a ceph OSD.

First, you install the google profiling library and analysis tool.
'sudo apt install google-perftools' would do the install on Ubuntu; there is
a matching package in EPEL for RHEL/Centos.

Then you run the OSD with some environment variables set
  LD_PRELOAD=/usr/lib/libprofiler.so
  CPUPROFILE=osd.googleprof
  CPUPROFILESIGNAL=12
It's OK to set these variables for additional processes (e.g. all processes in
a container)

Then you get ready to run the client benchmarking application. Just before
starting the client, you send signal SIGUSR2 (signal 12) to the OSD process;
this turns profiling on.
After the benchmarking application completes, you send another SIGUSR2 to the
OSD; this stops profiling and writes the profile to file osd.googleprof .

After profiling, you run the analysis tool.
  google-pprof --pdf OSD osd.googleprof >osd.pdf
where OSD is the appropriate program binary file. This writes a call graph as
a PDF to the given file.

Thanks for all help !
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx

[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux