On 11/21/22 11:34, Sven Kieske wrote:

On Fr, 2022-11-11 at 10:11 +0100, huxia...@horebdata.cn wrote:
Thanks a lot for your insightful blogs on Ceph performance. It is really very 
informative and interesting.

When i read Ceph OSD CPU Scaling, i am wondering by which way you  scale CPU 
cores per OSD, in other words, how do you allocate a specified num of cores for 
OSDs?  I am interested to repeat some of
your tests on hybrid NVMe/HDD environments.
I would like to second this question, as I wasn't able to find anything in the 
documentation so far.

did you just alter the ceph osd service files to taskset the osd process to 
specific nodes or are there configuration
switches, which I didn't yet find, to tell ceph how many cores per OSD should 
be used?


Hi Folks,


Sorry I got hit with a customer case and then was sick last week.  I used numactl to control which "processors" (as shown in /proc/cpuinfo) the OSDs would be assigned by wrapping the osd processes.  For example:

numactl --physcpubind=0-11 /usr/local/bin/ceph-osd


That would tell the osd process to run on the first 12 processors.


You can use the "P" field in top -H to see which processors threads are running on for verification.  In my case I'm also using a single socket system which makes things a little bit easier, but if you are using a dual socket system you might need to be careful about whether or not memory is being used from the same numa node as the cores (might make sense to manually bind memory to the same socket as the cores you are using).

One point I will make is that I didn't make any specific effort to ensure that "real" and HT processors on the same physical core were paired.  I.e. when utilizing HT processors it might make sense to do something like:

numactl --physcpubind=0-1,64-65 /usr/local/bin/ceph-osd

numactl --physcpubind=2-3,66-67 /usr/local/bin/ceph-osd

etc.

I probably should have tried that as well to see if it made any difference but didn't think of it at the time.  I'm also not 100% sure on how container environments handle CPU restrictions like this.  The approach I used may not be a perfect representation of what we see in real life deployments, but I do suspect the general trends will look pretty similar.


Oh, I'm not using any of the osd service files to start up OSDs so I'm not sure what you might need to do on that side.


Mark

_______________________________________________
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io

Reply via email to