MYSQL на одном ядре

12
L
На сайте с 03.05.2006
Offline
171
5502

Есть сервер с несколькими ядрами. MYSQL при работе использует только одно ядро судя по всему, т.к. загрузка поднимается до 100-110% не больше. При этом статистика показывает большое количество процессов, некоторые из которых работают по несколько секунд.

Как принудить базу данных использовать больше ядер?

N
На сайте с 06.05.2007
Offline
419
#1

luxs, да, в общем-то, никак.

Конечно же, mysql использует все ядра, но некоторые еще и ожидают, что один запрос будет обрабатываться сразу несколькими. Вряд ли эта проблема и в ближайшем будущем будет решаться.

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

Но если очень хочется, то можно отправить несколько запросов, объединить итоговые данные и тем самым загрузить mysql в несколько потоков :

https://www.percona.com/blog/2013/03/06/accessing-xtradb-cluster-nodes-in-parallel-from-php-using-mysql-asynchronous-calls/

Кнопка вызова админа ()
L
На сайте с 03.05.2006
Offline
171
#2

Я повторю свое сообщение

mytop показывает, что у меня одновременно десятки разных запросов выполняется в БД. РАЗНЫХ запросов одновременно. И эти запросы прилетают от разных пользователей. И все эти запросы одновременно грузят только одно ядро.

N
На сайте с 06.05.2007
Offline
419
#3

luxs, ну это вы так предполагаете.

проделайте сначала более чистый эксперимент :

запустите три терминала

запустите в двух из них запрос SELECT BENCHMARK(1000000000,ENCODE('hello','goodbye'));

в третьем пронаблюдайте за загрузкой в top 200%.

сделайте выводы.

L
На сайте с 03.05.2006
Offline
171
#4

Спасибо, сделаю и отпишусь.

baas
На сайте с 17.09.2012
Offline
133
#5

Попробуй указать в my.cnf такой параметр thread_concurrency = 12 - где 12 это количество разрешенных ядер для использования мускулом(этот параметр определи в думчиво), нагрузка как бы будит расплываться по разрешенным ядрам, то-етсь 100->150->200%

thread_concurrency по умолчанию помоему 1-2 потока.

При таком параметре у меня расплывается мускул местами когда сильная нагрузка на 12 ядер, но у меня етсь еще резервные ядра.

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
N
На сайте с 06.05.2007
Offline
419
#6
baas:
thread_concurrency = 12

Да лучше бы там вообще ничего не трогать кроме пары всем давно известных настроек.

А эта конкретная директива ничего не делает в linux. В mysql 5.7 так вообще удалено.

DR
На сайте с 22.08.2013
Offline
64
#7
netwind:
Да лучше бы там вообще ничего не трогать кроме пары всем давно известных настроек.
А эта конкретная директива ничего не делает в linux. В mysql 5.7 так вообще удалено.

Удалено ещё в 5.6.1 - лучше дефолтное оставить, оно не совсем так работает как предполагается.

Оказываем почасовую поддержку сайтам, сделанным на CMS Drupal (http://www.dru.io), пишем модули, верстаем. Создание сайтов от 800руб. (http://www.ra-don.ru) + Партнёрская программа от 25% (http://www.ra-don.ru/partners)
baas
На сайте с 17.09.2012
Offline
133
#8

у меня на системе FreeBSD и мускуле 5,5,46 дает использовать 12 ядер сервера,

N
На сайте с 06.05.2007
Offline
419
#9
baas:
у меня на системе FreeBSD и мускуле 5,5,46 дает использовать 12 ядер сервера,

Ну почитайте документацию на эту тему.

Скорее всего, точно так же бы работало и без этой настройки.

Может на bsd и работает если требуется осознанно ограничить нагрузку. То есть уменьшить, а не увеличить.

В любом случае, никак не поможет ТС.

L
На сайте с 03.05.2006
Offline
171
#10
netwind:
luxs, ну это вы так предполагаете.
запустите в двух из них запрос SELECT BENCHMARK(1000000000,ENCODE('hello','goodbye'));
в третьем пронаблюдайте за загрузкой в top 200%.
сделайте выводы.

угу. Загрузка 200%

Это означает, что на реальных SELECT мне что-то мешает. И это что-то судя по всему диск 😡, т.к. память свободная еще есть.

Задача простая - выбрать одну запись из 10млн, где одна переменная задана, а по другой надо провести сортировку.

12

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