게시물 1,009건
   
ceph tunning
글쓴이 : 최고관리자 날짜 : 2018-07-09 (월) 11:39 조회 : 11260
글주소 :
                                
https://bogachev.biz/2017/05/09/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D1%82%D1%8E%D0%BD%D0%B8%D0%BD%D0%B3-Ceph/



Оптимизация и тюнинг Ceph

Настройка Swappiness, кэширование, оптимизация операций чтения/записи для ускорения работы Ceph, тюнинг Ceph.

Единой конфигурации для идеальной работы нет, оптимизация и настройка производится исходя из требований к различного рода задачам.

В данном примере будет рассмотрен один из вариантов для улучшения работы дисковой подсистемы Ceph.

ВНИМАНИЕ! 

Все действия в данной статье могут привести к краху системы. 

Не выполняйте их на рабочих серверах. Пожалейте нервы :)

Приступим.

1. read_ahead

Параметр read_ahead ускоряет операции дискового чтения путем предварительной выборки и их загрузки в оперативную память. Установка относительно высоких значений read_ahead даст преимущества клиентам при выполнении операций последовательного чтения.

Проверить текущее установленное значение параметра можно командой:

$ sudo cat /sys/block/sda/queue/read_ahead_kb
128

Для установки read_ahead бОльшего значения, используем следующую команду:

echo "8192" > /sys/block/sda/queue/read_ahead_kb

Аналогично необходимо изменить read_ahead для всех RBD, помеченных для данного хоста. 

Убедитесь, что вы используете правильное имя пути устройства.

2. Отключим синтаксический анализ каталога OSD с помощью updatedb

Утилита под названием updatedb сканирует всю систему и обновляет файл базы данных mlocate.db.

База данный это файл, в котором содержится информация о файлах и их путях в системе Linux.

updatedb -e /var/lib/ceph

3. Отключить transparent hugepage(THP)

Проверить статус HugePages можно командой:

# grep -i HugePages_Total /proc/meminfo
HugePages_Total: 0

или

$ cat /proc/sys/vm/nr_hugepages
0
$ sysctl vm.nr_hugepages
vm.nr_hugepages = 0

Нулевое значение означает, что HugePages отключен в системе.
Ежели это иначе, то следуем дальше.

Для отключения THP при загрузке отредактируем файл grub.conf:

transparent_hugepage=never

Для отключения THP “на лету” выполним команды:

# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

4. Использование ОЗУ и SWAP

Параметр vm.swappiness по умолчанию имеет значение 60 и контролирует процент свободной памяти, при которой начнется активный сброс страниц в раздел swap.

Значение параметра достаточно легко понять.

100-60 = 40% занятой памяти при которой система уже начнет использовать раздел swap

Лучшим решением будет изменить данный параметр на 10 и указать системе не использоваться swap, пока ОЗУ не достигнет 90%.

Для изменения параметра “на лету” выполним:

echo 10 > /proc/sys/vm/swappiness

или

sysctl -w vm.swappiness=10

Для перманентной настройки параметра, изменим файл /etc/sysctl.conf и добавим строчку:

vm.swappiness=10

Параметр vfs_cache_pressure по умолчанию имеет значение 100 и отвечает за уровень выделяемой памяти под кэш.

Увеличение данного параметра заставляет ядро активнее выгружать неиспользуемые страницы памяти из кеша, т.е. количество выделяемой оперативной памяти под кеш будет расти медленнее, что снизит вероятность того, что будет задействован раздел swap.

При уменьшении параметра, ядро, наоборот, будет дольше держать страницы памяти в кеше, в том числе и в swap’е.

Это имеет смысл при небольшом количестве ОЗУ, например, если у нас 512 МБ памяти, то параметр vfs_cache_pressure можно выставить равным 50. Это позволит сократить количество дисковых операций в swap разделе, так как удаление неиспользуемых страниц будет происходить реже.

Дальнейшее уменьшение этого параметра может привести к нехватке памяти.

Если мы хотим ускорить работу системы и у нас достаточно памяти, то изменим значение системы, добавив строчки в файл /etc/sysctl.conf:

vm.swappiness = 10
vm.vfs_cache_pressure = 1000

Параметр kernel.pid_max служит для поддержки большего значения тредов (threads). В теории, максимум это - 4,194,303.

Внесем изменения в файл /etc/sysctl.conf, добавив строчку:

kernel.pid_max = 4194303

vm.zone_reclaim_mode

Параметр vm.zone_reclaim_mode. Опасен для файловых серверов.

Важно, чтобы значение было выставлено в ноль.

Оптимизация Ceph OSD

Отключим ведение журнала в памяти.

Каждая подсистема Ceph имеет свой уровень логирования и регистрирует это в памяти.

Мы можем установить разные значения для каждой из этих подсистем, установив уровень логирования и уровень памяти для ведения журнала отладки в диапазоне от 1 до 20. (Где 1 является кратким и 20 - подробным).

Первое значение - это уровень логирования, а второй - уровень памяти. Мы должны отделить их с помощью косой черты (/):

debug <subsystem> = <log-level>/<memory-level>

Логирование по умолчанию идеально подходит для наблюдения за кластером.

Если ведение журнала в памяти влияет на производительность или потребление памяти, в это случае мы можем отключить его.

Чтобы отключить добавьте следующие параметры:

debug_lockdep = 0/0
debug_context = 0/0
debug_crush = 0/0
debug_buffer = 0/0
debug_timer = 0/0
debug_filer = 0/0
debug_objecter = 0/0
debug_rados = 0/0
debug_rbd = 0/0
debug_journaler = 0/0
debug_objectcatcher = 0/0
debug_client = 0/0
debug_osd = 0/0
debug_optracker = 0/0
debug_objclass = 0/0
debug_filestore = 0/0
debug_journal = 0/0
debug_ms = 0/0
debug_monc = 0/0
debug_tp = 0/0
debug_auth = 0/0
debug_finisher = 0/0
debug_heartbeatmap = 0/0
debug_perfcounter = 0/0
debug_asok = 0/0
debug_throttle = 0/0
debug_mon = 0/0
debug_paxos = 0/0
debug_rgw = 0/0

Установим max_open_files для того чтобы задать максимальное значение открытых дескрипторов файлов на уровне ОС:

max_open_files = 131072

Для всех SSD-дисков установим настройки:

filestore_op_threads = 32
filestore_min_sync_interval = 0.01
filestore_max_sync_interval = 1
throttler_perf_counter =

이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 

사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.