Вставка,удаление,обновление службы блокировки mysqld

#mysql

Вопрос:

У меня проблема с базой данных MySQL.

Начало проблемы происходит на сервере с очень высокими характеристиками 80 ядер и 200 ГБ оперативной памяти ( Ubuntu с системой управления серверами).

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

  • У нас есть таблица, содержащая около 100 000 записей,
  • В нормальной ситуации, и когда у меня нет давления на сервер, все операции проходят очень нормально.
  • Но иногда на сервере 4000 пользователей, и мы выполняем любые операции вставки, обновления, удаления, в частности, оператор Insert может занять 2 ядра от центрального процессора. И в эти времена, когда сервер находится в движении и есть пользователи, работающие онлайн (речь идет о потреблении 13% возможностей сервера.
  • Но в это время, если вы выполняете процесс вставки, он достигает 700%, и иногда после двух вставок, например, происходит зависание службы Mysqld, выглядит как мертвая блокировка и решается только путем перезапуска mysqld несколько раз.
  • Таблица содержит только 2 индекса,
  • И информация, хранящаяся в нем, — это просто информация, такая как имя, описание, ссылка и тому подобное.
  • Обратите внимание, что есть еще одна таблица с примерно 3 миллионами записей, поэтому этой проблемы никогда не возникнет.

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

Я не знаю, каковы причины, которые могли бы стать причиной возникновения такой проблемы.

Это конфигурации базы данных my.cnf:

 #innodb_flush_log_at_trx_commit = 2

#innodb_log_file_size = 250M
#innodb_log_buffer_size = 10M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

max_connections = 1000

wait_timeout = 30
#query_cache_size=64M

#query_cache_limit=64M

#tmp_table_size=400M
key_buffer_size = 2G

slow_query_log=1
slow_query_log_file=/var/lib/mysql/slowquery.log
long_query_time=5

log_queries_not_using_indexes = ON

 

Комментарии:

1. вы можете получить лучшие результаты, задавая вопросы dba.stackexchange.com или serverfault.com. вы используете только службу mysql на этом сервере? если нет, подумайте о том, чтобы сделать это. пожалуйста, отредактируйте свой вопрос, чтобы показать вывод select version(); и show create table yourtablename;

2. братан, просто используй mongodb xd, похоже, у тебя много запросов

3. Смотрите Советы о том, что следует включать в вопросы производительности. размер key_buffer_size 2G делает его похожим на таблицы myisam. Если у вас есть таблицы innodb, то у вас должен быть параметр innodb_buffer_pool_size= 30 Г (предположим, за пределами значения по умолчанию). Необходимо просмотреть медленный журнал запросов. log_queries_not_using_indexes может вызвать чрезмерный шум. Отключите пока. Включите общие запросы вместе с explain {query} . В основном это выглядит как проблема с индексированием.