Задавайте вопросы, мы ответим
Вы не зашли.
Привет
Прощу помочь мне оптимально настроить mariadb для высоконагруженного сайта, в котором большинство таблиц InnoDB, остальные Myisam. Проблема в том, что сервер сейчас с этой настройкой сильно грузит CPU, при пиковом посещении может вообще положить mariadb. На сервере висит несколько сайтов, пару из которых на битриксе
У меня выделенный сервер: 4хIntel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz, 32Gb Memory
Также есть второй точно такой же (пока не используется)
Тесты битрикса говорят что запись у меня страдает (первое значение мой тест, второй рекомендуемый):
База данных MySQL (запись) - 1 945 - 5 600 - количество запросов на запись в секунду
База данных MySQL (чтение) - 22 621 - 7 800 - количество запросов на чтение в секунду
База данных MySQL (изменение) - 6 924 - 5 800 - количество запросов на изменение в секунду
my.cnf
Неактивен
только по my.cnf сложно что-то сказать
кто грузит процессор (php, mysql, ..) ?
если база, то какие запросы создают нагрузку?
можно, например, смотреть через show full processlist; в момент нагрузки
Неактивен
Грузит именно mysql. Я максимально стараюсь оптимизировать все запросы, но все равно нагрузка высокая даже когда народу не особо много. Как только я выключаю мускуль, все становиться хорошо. Мне наверное больше утверждение надо что в конфиге все хорошо, мониторю запросы каждый раз...
SHOW FULL PROCESSLIST
Отредактированно DragoN (12.06.2016 18:03:44)
Неактивен
DragoN написал:
Как только я выключаю мускуль, все становиться хорошо.
это не аргумент. Что показывает top?
Почему у вас висит event_scheduler? Какое там событие?
По запросам, сделайте long_query_time = 0
так в лог будут попадать все запросы и обработайте его с помощью утилиты pt-query-digest
по my.cnf - а как, например, определить достаточно ли вы выделили памяти под буфера, имея только my.cnf?
Неактивен
htop
Неактивен
event_scheduler
Неактивен
насчет планировщика был не прав: состояние означает, что его очередь пуста и он спит
собственно show full processlist показывает, что выполняется только SHOW FULL PROCESSLIST, остальные потоки спят.
аналогично по htop все показанные процессы mysql спят
отсортируйте его по cpu и посмотрите кто находится в состояние r (выполнения)
Неактивен
Все время все скачет, что является логичным. Поймал когда в нагрузка на мускуль в топе
Неактивен
Кое-что оптимизировал (спасибо за утилиту pt-query-digest vasya), вот теперь в отчете практически все битрикс таблицы
Неактивен
С конфигом скорее всего ничего страшного нет, но он все же немного странный. Например,
Неактивен
Ух, сколько людей собрал тредик Давайте я тоже внесу свою лепту.
Смотрю на те картинки, которые Вы приложили, и не вижу, чтобы сервер был загружен хоть сколько-то — во всех них он ничего не делает, и приходится вылавливать моменты, когда он ест процессор, например. Соответственно, вопрос — вы уверены, что сервер вообще нагружен, а дело не в чем-то другом? Если да — можете сделать соответствующую картинку, где это видно?
Неактивен
rgbeast написал:
я бы убрал. Вы ведь не знаете оптимальны они или нет
Хорошо, спасибо
paulus написал:
вы уверены, что сервер вообще нагружен, а дело не в чем-то другом? Если да — можете сделать соответствующую картинку, где это видно?
Да, конечно уверен. Сейчас выходные дни + лето (сезон отпусков) и пиковой нагрузки нет, поэтому скрины предоставлены с натяжкой. У нас новостные сайты и в любой момент посещения могут быть высокие. Приезд кого-нибудь, убийства, похищения и прочая нечисть из-за которой народ начинает усиленно заходить на сайты. Кстати, я писал выше, что с той утилитой я смог устранить серьезные недостатки и поэтому нагрузка упала. НО, я боюсь того что при пиковой нагрузке сайты снова лягут, поэтому хочу чтобы мне помогли понять что я сделал не правильно, научили до того.
P.S. У нас на сервере есть несколько сайтов, некоторые из них самописные, кое-что на битриксе и часть на вордпрессе. Сам я программист и стараюсь улучшать что имею, так же приходится настраивать сервер и кое-что из настроек мне не совсем ясны - постоянно читаю, изучаю (иногда даже кажется, что предоставляемой информации недостаточно чтобы понять всю суть необходимой опции (к примеру) на оригинальном языке, а вот спросить не у кого правильно ли я понимаю или нет). Я живу очень далеко от столицы и не могу позволить себе посещать какие-то дополнительные курсы, конференции, так как в городе ни кто таким не занимается, максимально что могу это ютуб - где опять же не спросишь ничего.
Спасибо всем за то что обратили на меня внимание и стараетесь помочь
Неактивен
Ну, по приведенным картинкам совсем непонятно, что оптимизировать — все работает хорошо. Угадывать узкие места можно пробовать, но, как правило, это неэффективно — лучше попрофилировать. Если можете воспроизвести нагрузку на стенде — воспроизведите, и тогда можно будет смотреть, во что упираетесь. Без нагрузки — почти наверняка не угадаем.
Неактивен
В любом случае уже подсказали по конфигу и по оптимизации таблиц, я постараюсь воспроизвести - напишу позже
Неактивен