mysql 5.7 innodb_thread_concurrency расчет

12
baas
На сайте с 17.09.2012
Offline
161
759

Добрый день.

Засомневался в правильности настройки параметра innodb_thread_concurrency.

Процессор 4 ядра + 4 потока всего 8 потоков у камня, диск на котором база лежит nvme  Intel DC P4510 1 Тб

Сейчас параметр innodb_thread_concurrency = 16, количество потоков камня * 2

Местами есть нагрузка 100% на процессор.

Что думаете?

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#1

Рекомендую переезжать на более современную SQL или последнюю MariaDB или MySQL8. Это чтобы быстрее работало всё.

А этот параметр лучше не трогать, ибо может снижаться производительность: https://www.percona.com/blog/2016/03/17/percona-server-5-7-performance-improvements/

Одна Pecrona что-то там сделала, чтобы у них этот параметр работал нормально, сама Mysql забила на него. Но 5.7 в любом случаи устарела.

Даже в старых темах: https://dba.stackexchange.com/questions/81204/hyperthreading-mysql-innodb-thread-concurrency-performance

Везде пишут, не трогать этот параметр. Никакой скорости он не прибавит.

Я лично не трогаю его и не настраиваю своим клиентам. 
Также и innodb_buffer_pool_instances не настраиваю. Он по умолчанию работает как надо.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
baas
На сайте с 17.09.2012
Offline
161
#2
LEOnidUKG #:

Рекомендую переезжать на более современную SQL или последнюю MariaDB или MySQL8. Это чтобы быстрее работало всё.

А этот параметр лучше не трогать, ибо может снижаться производительность: https://www.percona.com/blog/2016/03/17/percona-server-5-7-performance-improvements/

Одна Pecrona что-то там сделала, чтобы у них этот параметр работал нормально, сама Mysql забила на него. Но 5.7 в любом случаи устарела.

Даже в старых темах: https://dba.stackexchange.com/questions/81204/hyperthreading-mysql-innodb-thread-concurrency-performance

Везде пишут, не трогать этот параметр. Никакой скорости он не прибавит.

Я лично не трогаю его и не настраиваю своим клиентам. 
Также и innodb_buffer_pool_instances не настраиваю. Он по умолчанию работает как надо.

При штатной, нормальной работы базы думаю по умолчанию подойдет innodb_thread_concurrency.

Но когда есть моменты кривых/тяжелых запросов, без ограничения innodb_thread_concurrency создаст узкие места процессора и диска.

Мое мнение.

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#3
baas #:

При штатной, нормальной работы базы думаю по умолчанию подойдет innodb_thread_concurrency.

Но когда есть моменты кривых/тяжелых запросов, без ограничения innodb_thread_concurrency создаст узкие места процессора и диска.

Мое мнение.

Тесты тесты и ещё раз тесты. Какие могут быть места узкие если innoDB pool достаточный и диски SSD

baas
На сайте с 17.09.2012
Offline
161
#4
LEOnidUKG #:

Тесты тесты и ещё раз тесты. Какие могут быть места узкие если innoDB pool достаточный и диски SSD

Попробуем как нибудь по умолчанию innodb_thread_concurrency = 0.

При join выборок куча таблиц создается, а так же много joiun без индексно почему то используется.

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#5
baas #:

Попробуем как нибудь по умолчанию innodb_thread_concurrency = 0.

При join выборок куча таблиц создается, а так же много joiun без индексно почему то используется.

Значит конструкция БД неудачная. И теперь надо или её переделывать или жить с этим. Кэши всякие там, разбивать на отдельные запросы без JOIN. 

baas
На сайте с 17.09.2012
Offline
161
#6
LEOnidUKG #:

Значит конструкция БД неудачная. И теперь надо или её переделывать или жить с этим. Кэши всякие там, разбивать на отдельные запросы без JOIN. 

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

Но видать это дело затратное и руководство не спешит решать эту проблему.

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#7
baas #:

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

Но видать это дело затратное и руководство не спешит решать эту проблему.

В любом случаи  innodb_thread_concurrency  тут вообще никаким боком и не спасёт ситуацию.

edogs software
На сайте с 15.12.2005
Offline
775
#8
baas :

Что думаете?

Апгрейдить БД однозначно.
5.7 от 8.0 по "разумности" отличается очень сильно.
Тем более сейчас как бы 2021 на календаре, давно пора.
Несовместимостей минимум.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
baas
На сайте с 17.09.2012
Offline
161
#9

Попробуем обновить битрикс до последней версии стабильной, накатим php 8 / mysql 8.

После отпишусь.

M
На сайте с 05.03.2021
Offline
14
#10
Если MySQL 8 такой прекрасный, то почему хостинг провайдеры до сих пор сидят на 5.7 в основном?
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий