In containerized deployment the default mds cpu quota is too low
for production environment.
This is causing performance degradation compared to bare-metal.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1695850
Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit
1999cf3d1902456aa123ed3c96116c21e88799bb)
# Default values are based from: https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2/html/red_hat_ceph_storage_hardware_guide/minimum_recommendations
# These options can be passed using the 'ceph_mds_docker_extra_env' variable.
#ceph_mds_docker_memory_limit: "{{ ansible_memtotal_mb }}m"
-#ceph_mds_docker_cpu_limit: 1
+#ceph_mds_docker_cpu_limit: 4
# we currently for MDS_NAME to hostname because of a bug in ceph-docker
# fix here: https://github.com/ceph/ceph-docker/pull/770
# Default values are based from: https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2/html/red_hat_ceph_storage_hardware_guide/minimum_recommendations
# These options can be passed using the 'ceph_mds_docker_extra_env' variable.
ceph_mds_docker_memory_limit: "{{ ansible_memtotal_mb }}m"
-ceph_mds_docker_cpu_limit: 1
+ceph_mds_docker_cpu_limit: 4
# we currently for MDS_NAME to hostname because of a bug in ceph-docker
# fix here: https://github.com/ceph/ceph-docker/pull/770
[Unit]
Description=Ceph MDS
After=docker.service
+{% set cpu_limit = ansible_processor_vcpus|int if ceph_mds_docker_cpu_limit|int > ansible_processor_vcpus|int else ceph_mds_docker_cpu_limit|int %}
[Service]
EnvironmentFile=-/etc/environment
ExecStart=/usr/bin/docker run --rm --net=host \
--memory={{ ceph_mds_docker_memory_limit }} \
{% if ceph_docker_version.split('.')[0] is version_compare('13', '>=') -%}
- --cpus={{ ceph_mds_docker_cpu_limit }} \
+ --cpus={{ cpu_limit }} \
{% else -%}
- --cpu-quota={{ ceph_mds_docker_cpu_limit * 100000 }} \
+ --cpu-quota={{ cpu_limit * 100000 }} \
{% endif -%}
{% if not containerized_deployment_with_kv -%}
-v /var/lib/ceph:/var/lib/ceph:z \