runsisi's

technical notes

Ceph 进程绑核

2019-01-23 runsisi#ceph

关于绑核的实现,先不考虑是否用 numactl 还是 taskset,单纯只考虑如何使用。

比较理想的方式是在 Ceph 的 systemd service 文件中增加相应的字段,如:

ExecStart=${RES_CTL_CMDLINE}  /usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph

其中 RES_CTL_CMDLINE 定义在 /etc/sysconfig/ceph (CentOS) 或 /etc/default/ceph (Ubuntu) 中,且该文件可以根据具体的需求而由部署工具或配置管理工具在部署中或部署后进行修改。

ceph.spec 默认定义 /etc/sysconfig/ceph%config(noreplace) [1],debian 默认不会覆盖配置文件 [2][3]。

所以 CentOS 和 Ubuntu 都可以用这种方法解决,当然需要注意的是 numactl 默认不会安装,如果需要的话,需要在 ceph-base 包中增加对 numactl 的依赖。

参考资料

[1] RPM, %config, and (noreplace)

http://people.ds.cam.ac.uk/jw35/docs/rpm_config.html

[2] Debian conf policy

https://www.debian.org/doc/debian-policy/ch-files.html#s-config-files

[3] configuration files managed by dpkg

https://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/