Mysql сильно нагружает сервер.

12 3
J
На сайте с 06.07.2011
Offline
160
3394

Машина:

8 ядер

64 гиг оперативки

2x2 tb винты

centos 7

панелька vesta

Скриншоты:

top

http://imgur.com/pE5sUWR

htop:

http://imgur.com/sUlyd84

my.cnf сейчас очень простой:


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

max_connections = 1920
innodb_buffer_pool_size = 16G

key_buffer_size = 2G
max_allowed_packet = 1M
thread_stack = 128K
table_open_cache = 2048
thread_concurrency = 16


long_query_time = 5
log-slow-queries = /var/log/mysqld-slow-query.log
log-queries-not-using-indexes


#slow_query_log=1
#slow_query_log_file=/var/log/mysql-slow-queries.log


[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d

Устанавливал mysqltuner - правил конфиг, как он просил с ожиданием в 24 часа. Всё без изменений. На сервере около 40-ка сайтов, которые парсят контент. Сервер сильно соответственно сильно нагружается, когда разом парсят. Спасает сейчас только одно рестарт mysql каждые 20 минут.

Может посоветуете что-нибудь? Как-нибудь ограничить кол-во mysql коннектов внутри сервера или поочерёдно что бы делались запросы? Запутался вообщем...

lonelywoolf
На сайте с 23.12.2013
Offline
151
#1

В вашем случае нагрузка по CPU? Индексируйте таблицы, уничтожайте не нужные данные, оптимизируйте запросы. В некоторых случаях имеет смысл в конвертации табличек в InnoDB, но большой результативности можно добиться только реорганизацией самих баз.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
J
На сайте с 06.07.2011
Offline
160
#2
lonelywoolf:
В вашем случае нагрузка по CPU? Индексируйте таблицы, уничтожайте не нужные данные, оптимизируйте запросы. В некоторых случаях имеет смысл в конвертации табличек в InnoDB, но большой результативности можно добиться только реорганизацией самих баз.

Да, именно загружен проц. Может возможно как-то сделать ограничение, что бы проц не загружался на 100%, а в щадящем режиме шёл парсинг?

lonelywoolf
На сайте с 23.12.2013
Offline
151
#3

jano, можно исправить парсеры. Нужна не настройка сервера БД, а работа программиста.

pupseg
На сайте с 14.05.2010
Offline
347
#4
jano:
max_connections = 1920 innodb_buffer_pool_size = 16G

у вас innodb-таблицы ? действительно столько нужно?

jano:
log-slow-queries = /var/log/mysqld-slow-query.log

и чего тут ?

jano:
Спасает сейчас только одно рестарт mysql каждые 20 минут.

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

смотрите /var/log/mysqld-slow-query.log и что там. и напрягайте своего программиста. Возможно при открытии главной у вас выполняется запрос, который запрашивает зачем-то 100млн записей , а они бесполезны.

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
forfun
На сайте с 31.07.2006
Offline
129
#5

попробуйте без весты или другую панельку. у меня тоже впска падала и падала она из-за весты ))

Каталог услуг по настройке сайтов и веб-систем (https://www.nksystems.ru) // Каталог услуг по настройке интернет-рекламы (https://nkads.ru) || {Я.Пробивки (http://tools.promosite.ru/?from=8879)} || Сердитый хостинг за 118р./месяц (https://www.hostland.ru/?r=461d4a2c)
pupseg
На сайте с 14.05.2010
Offline
347
#6
forfun:
и падала она из-за весты ))

веста - это просто панель управления.

lonelywoolf
На сайте с 23.12.2013
Offline
151
#7

forfun, Не в данном случае. Здесь просто не оптимально написаны парсеры.

baas
На сайте с 17.09.2012
Offline
161
#8

Смотрите лог медленных запросов, 99% вероятности, что прогер не использует where в выборках базы!

Запросы базы оптимизируйте, все что больше 1й секунды выполняется - это плохо!

Хорошо было бы включить кэшировние в базе.

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
J
На сайте с 06.07.2011
Offline
160
#9
pupseg:
у вас innodb-таблицы ? действительно столько нужно?

и чего тут ?

категорически уберите. мускуль прогревается после запуска. зачастую ему нужно и несколько часов , что бы прогреться полностью, а вы тормозите этот процесс рестартом.
смотрите /var/log/mysqld-slow-query.log и что там. и напрягайте своего программиста. Возможно при открытии главной у вас выполняется запрос, который запрашивает зачем-то 100млн записей , а они бесполезны.
baas:
Смотрите лог медленных запросов, 99% вероятности, что прогер не использует where в выборках базы!
Запросы базы оптимизируйте, все что больше 1й секунды выполняется - это плохо!

Хорошо было бы включить кэшировние в базе.

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

Slow wuery и подключал ранее, но почему-то он пустой. Вот сейчас разкомментил строчки:


long_query_time = 2
log-slow-queries = /var/log/mysqld-slow-query.log
log-queries-not-using-indexes


slow_query_log=1
slow_query_log_file=/var/log/mysql-slow-queries.log
N
На сайте с 06.05.2007
Offline
419
#10
jano:
log-queries-not-using-indexes

Вот эта настройка редко кому нужна. Только отвлекать будет вас от действительно важных запросов. Уберите и просто считайте по времени.

Кнопка вызова админа ()
12 3

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