Help! WordPress DB оптимизация - Форум успешных вебмастеров - GoFuckBiz.com - Страница 3
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB89.7026
BTC/USD68367.8720
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 06.05.2011, 16:12
Start Post: Help! WordPress DB оптимизация 
  #21
majordon
Senior Member
 
Аватар для majordon
 
Регистрация: 11.10.2008
Сообщений: 6,409
Бабло: $904273
По умолчанию

Есть один сайт-каталог на WP который по тихоньку наполнялся до осени того года ревьюшками МП3 альбомов. Вот недавно хостер начал жаловаться на нагрузку - большое кол-во запросов к БД. Позже он мне поставил ограничение на 5к запросов к БД в час, после чего достаточно было загрузить пару стр сайта и он был в дауне. Пришлось переезжать на VDS у него же (500м памяти, 2гига свопа), но это принесло совсем не те результаты: сайт уже не отрубался но еле еле загружался блять! Счётчик показывал до 50 подключений к БД при загрузке страницы и время 20-40 сек, а то и больше.
Пришлось переделать дизайн, поодключать много всяких плагинов для дизайна и получил около 25-40 подк к БД, до 10 сек загрузка и 12м памяти при загрузке одной страницы.
Что я только не пробовал сделать: уже переписал часть кода движка, заменив на штмл блоки, почистил таблицу, оптимизировал. Похуй, не помогает.
Постов 55к, tags почти 200к
wp_posts 63 метра
wp_terms 20м
wp_term_relationships 52м
wp_term_taxonomy 14м
Это самые большие основные, остальные килобайты.

Установил плагин wp tuner, он проводит анализ при загрузке страницы что именно обращается к базе и сколько на это тратится времени. В основном львиную долю времени забирает обращение к wp_posts, прямо к нему или через плагины типа "похожие статьи".
Кто знает как с этим бороться? Ну не верю что WP с 55к небольшими постами даёт такие тормоза на ВПС по своей природе.

PS.
WP super cache не будет панацей, это скорее как вспомогательное стредство
majordon вне форума  
Старый 06.05.2011, 17:01   #22
majordon
Senior Member
 
Аватар для majordon
 
Регистрация: 11.10.2008
Сообщений: 6,409
Бабло: $904273
ТС -->
автор темы ТС По умолчанию

кэш будет 100%, но я думал есть ещё какие то пути оптимизации.
у меня есть ещё такой же сайт но с 15к постами, такими же. так вот он на шареде летает просто. а тут в три раза больше и всё, WP загнулся по полной. В пизду тогда такой wordpress.
Цитата:
перейти на выделенный сервер никто не предлагал ?
а что это даст? у меня вроде сейчас и ВПС не сильно грузит. Проблема то в движке, в базе
Цитата:
Вопрос лишь в наличии готового инструмента.
инструмент это нагнать на каждую страницу по паре уников для сохранения в кеш? по сумме дорогое решение выйдет
я уже на начинаю в голове рассматривать сохранение ВСЕГО сайта как штмл страничек на комп и обратной заливки на сервак вместо движка. нужно будет только урлы сохранить. Бля но это пиздец же а не решение.
majordon вне форума  
Старый 06.05.2011, 17:08   #23
sspy
главный злодей гофака
 
Аватар для sspy
 
Регистрация: 18.06.2007
Сообщений: 5,760
Бабло: $953848
По умолчанию

Цитата:
Сообщение от majordon Посмотреть сообщение
а что это даст? у меня вроде сейчас и ВПС не сильно грузит. Проблема то в движке, в базе
попробуй оптимизировать mysql http://habrahabr.ru/blogs/mysql/108418/

Цитата:
Сообщение от majordon Посмотреть сообщение
инструмент это нагнать на каждую страницу по паре уников для сохранения в кеш? по сумме дорогое решение выйдет
простой скрипт с file_get_contents в цикле справится забеслатно
__________________
sspy вне форума  
Старый 06.05.2011, 17:16   #24
Drunk Monk
Je suis moine ivre
 
Аватар для Drunk Monk
 
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
По умолчанию

Цитата:
Сообщение от majordon Посмотреть сообщение
инструмент это нагнать на каждую страницу по паре уников для сохранения в кеш? по сумме дорогое решение выйдет
Нет, идеальным был бы плагин с одной кнопкой "Закешировать все", но и вариант sspy на крайняк сойдет
Drunk Monk вне форума  
Старый 06.05.2011, 17:31   #25
dady
Senior Medved
 
Аватар для dady
 
Регистрация: 15.06.2008
Сообщений: 4,146
Бабло: $22479945
По умолчанию

ставиш кеш, прогоняеш сайтмап генератором сайтик , вуаля!)
__________________
Аппрув США >91% и Европа >90% Сливай фарму на Pharmcash - получай хрустящий кэш! / Спонсор! Докажи, что твоя партнерка №1 / 2019
dady вне форума  
Старый 06.05.2011, 17:34   #26
majordon
Senior Member
 
Аватар для majordon
 
Регистрация: 11.10.2008
Сообщений: 6,409
Бабло: $904273
ТС -->
автор темы ТС По умолчанию

всем спасибо! похоже с БД уже ничего не сделаешь, осталось только сделать за пару недель сайтмап и закешировать. вот с "закешировать" наверное будут ещё проблемы, тогда ещё раз отпишу
majordon вне форума  
Старый 06.05.2011, 17:43   #27
t0os
сам иди в жопу!
 
Аватар для t0os
 
Регистрация: 02.05.2009
Сообщений: 672
Бабло: $81580
По умолчанию

поставил кеш, пробежался паучком по всем ссылкам. или сервачок побыстрей, раз уж такое дело. ну и "похожие статьи" тормозить должны прилично, если их не кешировать.
__________________
t0os вне форума  
Старый 06.05.2011, 20:22   #28
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

Цитата:
Сообщение от majordon Посмотреть сообщение
всем спасибо! похоже с БД уже ничего не сделаешь, осталось только сделать за пару недель сайтмап и закешировать. вот с "закешировать" наверное будут ещё проблемы, тогда ещё раз отпишу
я может не совсем внимательно читал, но ты вроде про другой кеш думаешь.
Кеш разный бывает, смотря кто кеширует.

Тебе предлагают поставить плагины, которые кешируют содержание страниц на стороне сервера - можно сказать это близко к созданию html версии сайта и эта статика будет отдаваться очень быстро, т.к. почти не будет запросов к БД, т.к. в кеше сервера уже есть все, что нужно, для отображения страницы.

Другой кеш - это на стороне пользователя, в браузере... ну это да, надо прописать заголовки на сервере, чуть-чуть снизит нагрузку, особенно для картинок это надо сделать. Но первый вид кеша больше эфекта даст, т.к. по сути отключит нагрузку на БД.

Еще дополлнительные хинты:
Если сервер только апач, то можно фронтендом поставить nginx и отдавать им статику.
можно сделать кеширование на уровне веб-сервера, например, с помощью memcache.
можно включить генерацию байт кода всякими акселераторами типа зендовского, xcache или apc - какой лучше хз
Ну и конечно курить в /etc/my.cnf - при его грамотной настройке нагрузку можно снизить не на один порядок, но зависит от много.

ну и пара ссылочек:
http://www.mysqlperformanceblog.com/ - пожалуй самый авторитетный ресурс по оптимизации бд
http://sqlinfo.ru/forum/ - тоже нормально почитать
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 06.05.2011, 20:41   #29
majordon
Senior Member
 
Аватар для majordon
 
Регистрация: 11.10.2008
Сообщений: 6,409
Бабло: $904273
ТС -->
автор темы ТС По умолчанию

Цитата:
Тебе предлагают поставить плагины, которые кешируют содержание страниц на стороне сервера
я его и имел ввиду.
речь идёт о другом, люби друзи мои: я опасаюсь что гугл будет считать сайт тормозом до тех пор, пока он весь не закешируется на серваке.
majordon вне форума  
Старый 06.05.2011, 20:44   #30
deschain
Senior Member
 
Аватар для deschain
 
Регистрация: 01.11.2007
Сообщений: 2,269
Бабло: $288535
По умолчанию

majordon, можно легко сделать через file_get_contents, вытащить все урлы на посты, через функции ВП и пройтись по ним.
Ты просто поставь, для начала, плагин, нагрузка достаточно быстро упадёт и дальше страницы станут отдаваться на порядок шустрее.
deschain вне форума  
Старый 06.05.2011, 20:45   #31
Drunk Monk
Je suis moine ivre
 
Аватар для Drunk Monk
 
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
По умолчанию

ну так закешируй его к чертовой матери

PHP код:
<?
set_time_limit
(0);

$pages=array(
"http://blog.com/",
"http://blog.com/about"
/*и т.д.*/
);

$pc=count($pages);

for(
$i=0;$i<$pc;$i++) file_get_contents($pages[$i]);
?>
Drunk Monk вне форума