Как оптимизировать web server под большую БД mysql ?

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
285
Всем привет.
Есть вебсервер. Например 2 ядра х 2300 Мгц.
ОЗУ 4 ГБ
HDD 300 Гб.

На сервере крутится 2 информационных сайта. У каждого база по 8+ ГБ. В каждой базе около 500 000 постов и более 10 млн комментариев. Получается, что оперативки уже не хватает под базу. В базу в сутки добавляется около 100 постов и 100+ комментариев. Посещалка около 1000 уников/сутки.

mysqltuner все время предлагет увеличить кеш.
Например:
"Add RAM before increasing MySQL buffer variables
innodb_buffer_pool_size (>= 28G) if possible."

Если я, не глядя, поставлю размер буфера 28Гб, то как я понимаю, у меня все упадет сразу...

Сколько гуглил в инете - везде разгоняют сайты с 1000 постов и 512 мб ОЗУ. Что можно почитать про более нагруженные сайты?
Из каких соображений исходить в оптимизации mysql под большие базы?
 

Stesh

Постоялец
Регистрация
3 Фев 2009
Сообщения
304
Реакции
121
Сначала купить адекватное запросам железо, с SSD и достаточным запасом оперативки, а уже только потом заикаться за оптимизацию.

mysqltuner все время предлагет увеличить кеш.
Он не предлагает увеличить кеш, он крутит пальцем у виска и предлагает увеличить RAM перед перед увеличением буфера.
 

mefish

Support
Регистрация
30 Авг 2007
Сообщения
878
Реакции
652
Вопрос - это все работает без напряга ? если да, то зачем его трогать ? а буфер он предлагает установить равным значению данных в innodb, ставь 70-80% , ну а если там еще апач, пых и сопутствующее ПО, то только подбирать, чтоб в своп не уходило.
 

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
285
Работает с напрягом. Поэтому и задаю вопрос. Страница собирается примерно за 4-10 секунд. Стоит php-fpm, nginx, mysql. Временами забивается и ОЗУ и СВОП на все 100%. В этом случае на серваке резкие тормоза...

p.s.
Хочется именно научиться "правильно" настраивать сервер, а не поставить систему кеширования или проапгрейдить сервер.
 
Последнее редактирование:

PaHeTka1

Создатель
Регистрация
9 Апр 2016
Сообщения
15
Реакции
1
Если такая бешенная нагрузка на сервак, то о какой оптимизации может идти речь. Нужно увеличивать ОЗУ, уменьшая нагрузку на своп, чтобы это все крутилось быстрее. Ну и с HDD на SSD, с такими запросами нужно бежать
 

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
285
Если такая бешенная нагрузка на сервак, то о какой оптимизации может идти речь. Нужно увеличивать ОЗУ, уменьшая нагрузку на своп, чтобы это все крутилось быстрее. Ну и с HDD на SSD, с такими запросами нужно бежать

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

tolik1313

Писатель
Регистрация
12 Окт 2018
Сообщения
6
Реакции
1
Делайте анализ запросов, выявляйте медленные и добавляйте индексы или полностью переписывайте запросы. MySQL умеет логировать медленные запросы.
 

pautina

Постоялец
Регистрация
15 Фев 2010
Сообщения
108
Реакции
37
Всем привет.
Есть вебсервер. Например 2 ядра х 2300 Мгц.
ОЗУ 4 ГБ
HDD 300 Гб.

На сервере крутится 2 информационных сайта. У каждого база по 8+ ГБ. В каждой базе около 500 000 постов и более 10 млн комментариев. Получается, что оперативки уже не хватает под базу. В базу в сутки добавляется около 100 постов и 100+ комментариев. Посещалка около 1000 уников/сутки.

mysqltuner все время предлагет увеличить кеш.
Например:
"Add RAM before increasing MySQL buffer variables
innodb_buffer_pool_size (>= 28G) if possible."

Если я, не глядя, поставлю размер буфера 28Гб, то как я понимаю, у меня все упадет сразу...

Сколько гуглил в инете - везде разгоняют сайты с 1000 постов и 512 мб ОЗУ. Что можно почитать про более нагруженные сайты?
Из каких соображений исходить в оптимизации mysql под большие базы?
Под такое количество записей, вам пора менять систему. Минимум рекомендую 16Гб ОЗУ, SSD и побольше ядер. Оптимизировать уже не получится. Также не мало важно, какой тип базы у вас. Поставьте phpmyadmin и посмотрите советчик, аналог mysqltuner
 
Сверху