From 7418999638fa609e3ebd31ee6ab82d95c29d9853 Mon Sep 17 00:00:00 2001 From: Dimitri Savineau Date: Tue, 23 Apr 2019 15:54:38 -0400 Subject: [PATCH] ceph-mds: Increase cpu limit to 4 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 (cherry picked from commit 1999cf3d1902456aa123ed3c96116c21e88799bb) --- group_vars/mdss.yml.sample | 2 +- roles/ceph-mds/defaults/main.yml | 2 +- roles/ceph-mds/templates/ceph-mds.service.j2 | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/group_vars/mdss.yml.sample b/group_vars/mdss.yml.sample index cf0aed590..2412ea730 100644 --- a/group_vars/mdss.yml.sample +++ b/group_vars/mdss.yml.sample @@ -28,7 +28,7 @@ dummy: # 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 diff --git a/roles/ceph-mds/defaults/main.yml b/roles/ceph-mds/defaults/main.yml index ffdb1fe5c..0b443ea9a 100644 --- a/roles/ceph-mds/defaults/main.yml +++ b/roles/ceph-mds/defaults/main.yml @@ -20,7 +20,7 @@ copy_admin_key: false # 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 diff --git a/roles/ceph-mds/templates/ceph-mds.service.j2 b/roles/ceph-mds/templates/ceph-mds.service.j2 index 9e3dcfb5b..281a7b020 100644 --- a/roles/ceph-mds/templates/ceph-mds.service.j2 +++ b/roles/ceph-mds/templates/ceph-mds.service.j2 @@ -1,6 +1,7 @@ [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 @@ -9,9 +10,9 @@ ExecStartPre=-/usr/bin/docker rm ceph-mds-{{ ansible_hostname }} 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 \