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

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
292
Всем привет.
Есть вебсервер. Например 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 под большие базы?
 
Сначала купить адекватное запросам железо, с SSD и достаточным запасом оперативки, а уже только потом заикаться за оптимизацию.

mysqltuner все время предлагет увеличить кеш.
Он не предлагает увеличить кеш, он крутит пальцем у виска и предлагает увеличить RAM перед перед увеличением буфера.
 
Вопрос - это все работает без напряга ? если да, то зачем его трогать ? а буфер он предлагает установить равным значению данных в innodb, ставь 70-80% , ну а если там еще апач, пых и сопутствующее ПО, то только подбирать, чтоб в своп не уходило.
 
Работает с напрягом. Поэтому и задаю вопрос. Страница собирается примерно за 4-10 секунд. Стоит php-fpm, nginx, mysql. Временами забивается и ОЗУ и СВОП на все 100%. В этом случае на серваке резкие тормоза...

p.s.
Хочется именно научиться "правильно" настраивать сервер, а не поставить систему кеширования или проапгрейдить сервер.
 
Последнее редактирование:
Если такая бешенная нагрузка на сервак, то о какой оптимизации может идти речь. Нужно увеличивать ОЗУ, уменьшая нагрузку на своп, чтобы это все крутилось быстрее. Ну и с HDD на SSD, с такими запросами нужно бежать
 
Если такая бешенная нагрузка на сервак, то о какой оптимизации может идти речь. Нужно увеличивать ОЗУ, уменьшая нагрузку на своп, чтобы это все крутилось быстрее. Ну и с HDD на SSD, с такими запросами нужно бежать

С улучшением железа все понятно, но не актуально. Кеширование тоже использую так, что страницы отдаются за тысячную долю секунды. Сейчас хочется поучиться именно оптимизации сервера на примерно таких вот нагрузках. Если есть идеи что в какую сторону покрутить - с удовольствием выслушаю и попробую.
 
Делайте анализ запросов, выявляйте медленные и добавляйте индексы или полностью переписывайте запросы. MySQL умеет логировать медленные запросы.
 
Всем привет.
Есть вебсервер. Например 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
 
Назад
Сверху