ceph-osd: Increase cpu limit to 4

In containerized deployment the default osd cpu quota is too low
for production environment using NVMe devices.
This is causing performance degradation compared to bare-metal.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1695880

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit c17106874c)

# Conflicts:
#	roles/ceph-osd/templates/ceph-osd-run.sh.j2
pull/3918/head
Dimitri Savineau 2019-04-05 09:45:28 -04:00 committed by mergify[bot]
parent c056ae7b8c
commit 3ae2a687ed
3 changed files with 9 additions and 3 deletions

View File

@ -237,7 +237,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 # 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_osd_docker_extra_env' variable. # These options can be passed using the 'ceph_osd_docker_extra_env' variable.
#ceph_osd_docker_memory_limit: "{{ ansible_memtotal_mb }}m" #ceph_osd_docker_memory_limit: "{{ ansible_memtotal_mb }}m"
#ceph_osd_docker_cpu_limit: 1 #ceph_osd_docker_cpu_limit: 4
# The next two variables are undefined, and thus, unused by default. # The next two variables are undefined, and thus, unused by default.
# If `lscpu | grep NUMA` returned the following: # If `lscpu | grep NUMA` returned the following:

View File

@ -229,7 +229,7 @@ ceph_config_keys: [] # DON'T TOUCH ME
# 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 # 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_osd_docker_extra_env' variable. # These options can be passed using the 'ceph_osd_docker_extra_env' variable.
ceph_osd_docker_memory_limit: "{{ ansible_memtotal_mb }}m" ceph_osd_docker_memory_limit: "{{ ansible_memtotal_mb }}m"
ceph_osd_docker_cpu_limit: 1 ceph_osd_docker_cpu_limit: 4
# The next two variables are undefined, and thus, unused by default. # The next two variables are undefined, and thus, unused by default.
# If `lscpu | grep NUMA` returned the following: # If `lscpu | grep NUMA` returned the following:

View File

@ -69,6 +69,7 @@ fi
######## ########
# MAIN # # MAIN #
######## ########
{% set cpu_limit = ansible_processor_vcpus|int if ceph_osd_docker_cpu_limit|int > ansible_processor_vcpus|int else ceph_osd_docker_cpu_limit|int %}
{% if ceph_osd_numactl_opts != "" %} {% if ceph_osd_numactl_opts != "" %}
numactl \ numactl \
@ -83,10 +84,15 @@ numactl \
{% if osd_objectstore == 'filestore' -%} {% if osd_objectstore == 'filestore' -%}
--memory={{ ceph_osd_docker_memory_limit }} \ --memory={{ ceph_osd_docker_memory_limit }} \
{% endif -%} {% endif -%}
<<<<<<< HEAD
{% if ceph_docker_version.split('.')[0] is version_compare('13', '>=') -%} {% if ceph_docker_version.split('.')[0] is version_compare('13', '>=') -%}
--cpus={{ ceph_osd_docker_cpu_limit }} \ --cpus={{ ceph_osd_docker_cpu_limit }} \
=======
{% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version_compare('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ cpu_limit }} \
>>>>>>> c1710687... ceph-osd: Increase cpu limit to 4
{% else -%} {% else -%}
--cpu-quota={{ ceph_osd_docker_cpu_limit * 100000 }} \ --cpu-quota={{ cpu_limit * 100000 }} \
{% endif -%} {% endif -%}
{% if ceph_osd_docker_cpuset_cpus is defined -%} {% if ceph_osd_docker_cpuset_cpus is defined -%}
--cpuset-cpus='{{ ceph_osd_docker_cpuset_cpus }}' \ --cpuset-cpus='{{ ceph_osd_docker_cpuset_cpus }}' \