Re: Using Google profiling tools on a ceph OSD

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

 



> I think you want to build your own container image and install the performance tools in it.

You don't need to do that since we already have gperftools installed in the container image because we're using tcmalloc from that package.

$ podman run --rm -it quay.io/ceph/ceph:v16.2.5 rpm -qa gperftools-libs
gperftools-libs-2.7-9.el8.x86_64

So the only missing part is the environment variables.

Regards,

Dimitri

On Sat, Jul 24, 2021 at 7:56 AM Sebastian Wagner <sewagner@xxxxxxxxxx> wrote:
Hi Chris,

I think you want to build your own container image and install the
performance tools in it. Then you should edit the unit.run files for
each osd to add those envs to the podman command. For sending the
signals, you could look into podman kill -s. Might work for this use case.

Hope that helps,

Sebastian


Am 24.07.21 um 00:09 schrieb Sam Just:
> Are the actual osds running in containers with cephadm?
> -Sam
>
> On Fri, Jul 23, 2021 at 4:19 AM Chris Ward <tjcw01@xxxxxxxxx> wrote:
>> 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
> _______________________________________________
> Dev mailing list -- dev@xxxxxxx
> To unsubscribe send an email to dev-leave@xxxxxxx
>

_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx
_______________________________________________
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