> 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
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