From d3ae9fd05fe46933a1437501b0d8a5edb4ca2056 Mon Sep 17 00:00:00 2001 From: Dimitri Savineau Date: Tue, 2 Apr 2019 10:39:42 -0400 Subject: [PATCH] radosgw: Raise cpu limit to 8 In containerized deployment the default radosgw 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=1680171 Signed-off-by: Dimitri Savineau --- group_vars/rgws.yml.sample | 2 +- roles/ceph-rgw/defaults/main.yml | 2 +- roles/ceph-rgw/templates/ceph-radosgw.service.j2 | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/group_vars/rgws.yml.sample b/group_vars/rgws.yml.sample index 78e69513f..1200c0593 100644 --- a/group_vars/rgws.yml.sample +++ b/group_vars/rgws.yml.sample @@ -58,7 +58,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_rgw_docker_extra_env' variable. #ceph_rgw_docker_memory_limit: "{{ ansible_memtotal_mb }}m" -#ceph_rgw_docker_cpu_limit: 1 +#ceph_rgw_docker_cpu_limit: 8 #ceph_rgw_docker_extra_env: #ceph_config_keys: [] # DON'T TOUCH ME diff --git a/roles/ceph-rgw/defaults/main.yml b/roles/ceph-rgw/defaults/main.yml index 6ab3946a5..f77c1f6ab 100644 --- a/roles/ceph-rgw/defaults/main.yml +++ b/roles/ceph-rgw/defaults/main.yml @@ -50,7 +50,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_rgw_docker_extra_env' variable. ceph_rgw_docker_memory_limit: "{{ ansible_memtotal_mb }}m" -ceph_rgw_docker_cpu_limit: 1 +ceph_rgw_docker_cpu_limit: 8 ceph_rgw_docker_extra_env: ceph_config_keys: [] # DON'T TOUCH ME diff --git a/roles/ceph-rgw/templates/ceph-radosgw.service.j2 b/roles/ceph-rgw/templates/ceph-radosgw.service.j2 index d25cf3e6b..4368da9d2 100644 --- a/roles/ceph-rgw/templates/ceph-radosgw.service.j2 +++ b/roles/ceph-rgw/templates/ceph-radosgw.service.j2 @@ -3,6 +3,7 @@ Description=Ceph RGW {% if container_binary == 'docker' %} After=docker.service {% endif %} +{% set cpu_limit = ansible_processor_vcpus|int if ceph_rgw_docker_cpu_limit|int > ansible_processor_vcpus|int else ceph_rgw_docker_cpu_limit|int %} [Service] EnvironmentFile=/var/lib/ceph/radosgw/ceph-%i/EnvironmentFile @@ -11,9 +12,9 @@ ExecStartPre=-/usr/bin/{{ container_binary }} rm ceph-rgw-{{ ansible_hostname }} ExecStart=/usr/bin/{{ container_binary }} run --rm --net=host \ --memory={{ ceph_rgw_docker_memory_limit }} \ {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version_compare('13', '>=')) or container_binary == 'podman' -%} - --cpus={{ ceph_rgw_docker_cpu_limit }} \ + --cpus={{ cpu_limit }} \ {% else -%} - --cpu-quota={{ ceph_rgw_docker_cpu_limit * 100000 }} \ + --cpu-quota={{ cpu_limit * 100000 }} \ {% endif -%} -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \