From 76c500fb244b3006eb2ecf2839cd959edeab0bdf Mon Sep 17 00:00:00 2001 From: jangseon ryu Date: Thu, 8 Jun 2017 10:14:14 +0000 Subject: [PATCH] Support for increasing thread cache size in TCMalloc. Currently TCMalloc's default tc size is 32MB. This causes poor performance in ceph storage. A new ceph_tcmalloc_tc_bytes option has been added with a default of 128MB. 128 MB is default TC size at above jewel version. and if we don't set this config, osd daemon will running with 32 MB. because 32MB is default size in TCmalloc 2.4 version. 32MB and 128MB are twice the performance difference. - reference : https://www.slideshare.net/Red_Hat_Storage/ ceph-performance-projects-leading-up-to-jewel-61050682 Closes-Bug: #1693692 Change-Id: I0d25c92917b11a29bcfd18f9c129cae328fa2d3e Signed-off-by: jangseon ryu --- ansible/roles/ceph/defaults/main.yml | 3 +++ ansible/roles/ceph/tasks/start_osds.yml | 1 + 2 files changed, 4 insertions(+) diff --git a/ansible/roles/ceph/defaults/main.yml b/ansible/roles/ceph/defaults/main.yml index 456cf43560..752d6bbb85 100644 --- a/ansible/roles/ceph/defaults/main.yml +++ b/ansible/roles/ceph/defaults/main.yml @@ -22,6 +22,9 @@ ceph_rgw_image_full: "{{ ceph_rgw_image }}:{{ ceph_rgw_tag }}" #################### osd_initial_weight: "1" +# Increase tcmalloc cache size +ceph_tcmalloc_tc_bytes: "134217728" + #################### ## Ceph_rgw_keystone #################### diff --git a/ansible/roles/ceph/tasks/start_osds.yml b/ansible/roles/ceph/tasks/start_osds.yml index 7bd0d4d045..95ec8450c8 100644 --- a/ansible/roles/ceph/tasks/start_osds.yml +++ b/ansible/roles/ceph/tasks/start_osds.yml @@ -37,6 +37,7 @@ KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" OSD_ID: "{{ item.0.stdout }}" JOURNAL_PARTITION: "{{ item.1.journal }}" + TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES: "{{ ceph_tcmalloc_tc_bytes }}" image: "{{ ceph_osd_image_full }}" name: "ceph_osd_{{ item.0.stdout }}" pid_mode: "host"