- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть сервер с несколькими ядрами. MYSQL при работе использует только одно ядро судя по всему, т.к. загрузка поднимается до 100-110% не больше. При этом статистика показывает большое количество процессов, некоторые из которых работают по несколько секунд.
Как принудить базу данных использовать больше ядер?
luxs, да, в общем-то, никак.
Конечно же, mysql использует все ядра, но некоторые еще и ожидают, что один запрос будет обрабатываться сразу несколькими. Вряд ли эта проблема и в ближайшем будущем будет решаться.
Но подумайте действительно, ли это то, что вам нужно ? На обычных сайтах все равно запросы от пользователей обрабатываются параллельно автоматически.
Но если очень хочется, то можно отправить несколько запросов, объединить итоговые данные и тем самым загрузить mysql в несколько потоков :
https://www.percona.com/blog/2013/03/06/accessing-xtradb-cluster-nodes-in-parallel-from-php-using-mysql-asynchronous-calls/
Я повторю свое сообщение
mytop показывает, что у меня одновременно десятки разных запросов выполняется в БД. РАЗНЫХ запросов одновременно. И эти запросы прилетают от разных пользователей. И все эти запросы одновременно грузят только одно ядро.
luxs, ну это вы так предполагаете.
проделайте сначала более чистый эксперимент :
запустите три терминала
запустите в двух из них запрос SELECT BENCHMARK(1000000000,ENCODE('hello','goodbye'));
в третьем пронаблюдайте за загрузкой в top 200%.
сделайте выводы.
Спасибо, сделаю и отпишусь.
Попробуй указать в my.cnf такой параметр thread_concurrency = 12 - где 12 это количество разрешенных ядер для использования мускулом(этот параметр определи в думчиво), нагрузка как бы будит расплываться по разрешенным ядрам, то-етсь 100->150->200%
thread_concurrency по умолчанию помоему 1-2 потока.
При таком параметре у меня расплывается мускул местами когда сильная нагрузка на 12 ядер, но у меня етсь еще резервные ядра.
thread_concurrency = 12
Да лучше бы там вообще ничего не трогать кроме пары всем давно известных настроек.
А эта конкретная директива ничего не делает в linux. В mysql 5.7 так вообще удалено.
Да лучше бы там вообще ничего не трогать кроме пары всем давно известных настроек.
А эта конкретная директива ничего не делает в linux. В mysql 5.7 так вообще удалено.
Удалено ещё в 5.6.1 - лучше дефолтное оставить, оно не совсем так работает как предполагается.
у меня на системе FreeBSD и мускуле 5,5,46 дает использовать 12 ядер сервера,
у меня на системе FreeBSD и мускуле 5,5,46 дает использовать 12 ядер сервера,
Ну почитайте документацию на эту тему.
Скорее всего, точно так же бы работало и без этой настройки.
Может на bsd и работает если требуется осознанно ограничить нагрузку. То есть уменьшить, а не увеличить.
В любом случае, никак не поможет ТС.
luxs, ну это вы так предполагаете.
запустите в двух из них запрос SELECT BENCHMARK(1000000000,ENCODE('hello','goodbye'));
в третьем пронаблюдайте за загрузкой в top 200%.
сделайте выводы.
угу. Загрузка 200%
Это означает, что на реальных SELECT мне что-то мешает. И это что-то судя по всему диск 😡, т.к. память свободная еще есть.
Задача простая - выбрать одну запись из 10млн, где одна переменная задана, а по другой надо провести сортировку.