Skip to content

Commit

Permalink
container: set tcmalloc value by default
Browse files Browse the repository at this point in the history
All ceph daemons need to have the TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES
environment variable set to 128MB by default in container setup.

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

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit 9758e3c)
  • Loading branch information
dsavineau authored and guits committed Jul 1, 2021
1 parent 22fd084 commit 4ce4992
Show file tree
Hide file tree
Showing 11 changed files with 24 additions and 7 deletions.
2 changes: 1 addition & 1 deletion group_vars/all.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@ dummy:
# For Debian & Red Hat/CentOS installs set TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES
# Set this to a byte value (e.g. 134217728)
# A value of 0 will leave the package default.
#ceph_tcmalloc_max_total_thread_cache: 0
#ceph_tcmalloc_max_total_thread_cache: 134217728


##########
Expand Down
2 changes: 1 addition & 1 deletion group_vars/rhcs.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@ ceph_iscsi_config_dev: false
# For Debian & Red Hat/CentOS installs set TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES
# Set this to a byte value (e.g. 134217728)
# A value of 0 will leave the package default.
#ceph_tcmalloc_max_total_thread_cache: 0
#ceph_tcmalloc_max_total_thread_cache: 134217728


##########
Expand Down
16 changes: 14 additions & 2 deletions roles/ceph-common/tasks/configure_memory_allocator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@
when:
- ansible_facts['os_family'] == 'Debian'
- etc_default_ceph.stat.exists
notify: restart ceph osds
notify:
- restart ceph mons
- restart ceph mgrs
- restart ceph osds
- restart ceph mdss
- restart ceph rgws
- restart ceph rbdmirrors

- name: configure TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES for redhat
lineinfile:
Expand All @@ -19,4 +25,10 @@
regexp: "^TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES="
line: "TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }}"
when: ansible_facts['os_family'] == 'RedHat'
notify: restart ceph osds
notify:
- restart ceph mons
- restart ceph mgrs
- restart ceph osds
- restart ceph mdss
- restart ceph rgws
- restart ceph rbdmirrors
2 changes: 1 addition & 1 deletion roles/ceph-defaults/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@ os_tuning_params:
# For Debian & Red Hat/CentOS installs set TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES
# Set this to a byte value (e.g. 134217728)
# A value of 0 will leave the package default.
ceph_tcmalloc_max_total_thread_cache: 0
ceph_tcmalloc_max_total_thread_cache: 134217728


##########
Expand Down
1 change: 1 addition & 0 deletions roles/ceph-mds/templates/ceph-mds.service.j2
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ ExecStart=/usr/bin/{{ container_binary }} run --rm --net=host \
-e CLUSTER={{ cluster }} \
-e CEPH_DAEMON=MDS \
-e CONTAINER_IMAGE={{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} \
-e TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }} \
{{ ceph_mds_docker_extra_env }} \
--name=ceph-mds-{{ ansible_facts['hostname'] }} \
{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}
Expand Down
1 change: 1 addition & 0 deletions roles/ceph-mgr/templates/ceph-mgr.service.j2
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ ExecStart=/usr/bin/{{ container_binary }} run --rm --net=host \
-e CLUSTER={{ cluster }} \
-e CEPH_DAEMON=MGR \
-e CONTAINER_IMAGE={{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} \
-e TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }} \
{{ ceph_mgr_docker_extra_env }} \
--name=ceph-mgr-{{ ansible_facts['hostname'] }} \
{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}
Expand Down
1 change: 1 addition & 0 deletions roles/ceph-mon/templates/ceph-mon.service.j2
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ ExecStart=/usr/bin/{{ container_binary }} run --rm --name ceph-mon-%i \
-e CEPH_PUBLIC_NETWORK={{ public_network | regex_replace(' ', '') }} \
-e CEPH_DAEMON=MON \
-e CONTAINER_IMAGE={{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} \
-e TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }} \
{{ ceph_mon_docker_extra_env }} \
{{ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}
{% if container_binary == 'podman' %}
Expand Down
2 changes: 0 additions & 2 deletions roles/ceph-osd/templates/ceph-osd.service.j2
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,7 @@ numactl \
{% endif -%}
{{ container_env_args }} \
-e CLUSTER={{ cluster }} \
{% if (ceph_tcmalloc_max_total_thread_cache | int) > 0 -%}
-e TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }} \
{% endif -%}
-v /run/lvm/:/run/lvm/ \
-e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \
-e CONTAINER_IMAGE={{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} \
Expand Down
1 change: 1 addition & 0 deletions roles/ceph-rbd-mirror/templates/ceph-rbd-mirror.service.j2
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ ExecStart=/usr/bin/{{ container_binary }} run --rm --net=host \
-e CLUSTER={{ cluster }} \
-e CEPH_DAEMON=RBD_MIRROR \
-e CONTAINER_IMAGE={{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} \
-e TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }} \
--name=ceph-rbd-mirror-{{ ansible_facts['hostname'] }} \
{{ ceph_rbd_mirror_docker_extra_env }} \
{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}
Expand Down
1 change: 1 addition & 0 deletions roles/ceph-rgw/templates/ceph-radosgw.service.j2
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ ExecStart=/usr/bin/{{ container_binary }} run --rm --net=host \
-e CLUSTER={{ cluster }} \
-e RGW_NAME={{ ansible_facts['hostname'] }}.${INST_NAME} \
-e CONTAINER_IMAGE={{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} \
-e TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }} \
--name=ceph-rgw-{{ ansible_facts['hostname'] }}-${INST_NAME} \
{{ ceph_rgw_docker_extra_env }} \
{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}
Expand Down
2 changes: 2 additions & 0 deletions site.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@

- import_role:
name: ceph-facts
- import_role:
name: ceph-handler
- import_role:
name: ceph-validate
- import_role:
Expand Down

0 comments on commit 4ce4992

Please sign in to comment.