|
| Дата |
|
USD/RUB | 89.7026 | BTC/USD | 68367.8720 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
06.05.2011, 16:12
|
Start Post: Help! WordPress DB оптимизация
|
Senior Member
Регистрация: 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 не будет панацей, это скорее как вспомогательное стредство
|
|
|
06.05.2011, 17:01
|
#22
|
Senior Member
Регистрация: 11.10.2008
Сообщений: 6,409
Бабло: $904273
ТС -->
|
ТС
кэш будет 100%, но я думал есть ещё какие то пути оптимизации.
у меня есть ещё такой же сайт но с 15к постами, такими же. так вот он на шареде летает просто. а тут в три раза больше и всё, WP загнулся по полной. В пизду тогда такой wordpress .
Цитата:
перейти на выделенный сервер никто не предлагал ?
|
а что это даст? у меня вроде сейчас и ВПС не сильно грузит. Проблема то в движке, в базе
Цитата:
Вопрос лишь в наличии готового инструмента.
|
инструмент это нагнать на каждую страницу по паре уников для сохранения в кеш? по сумме дорогое решение выйдет
я уже на начинаю в голове рассматривать сохранение ВСЕГО сайта как штмл страничек на комп и обратной заливки на сервак вместо движка. нужно будет только урлы сохранить. Бля но это пиздец же а не решение.
|
|
|
06.05.2011, 17:08
|
#23
|
главный злодей гофака
Регистрация: 18.06.2007
Сообщений: 5,760
Бабло: $953848
|
Цитата:
Сообщение от majordon
а что это даст? у меня вроде сейчас и ВПС не сильно грузит. Проблема то в движке, в базе
|
попробуй оптимизировать mysql http://habrahabr.ru/blogs/mysql/108418/
Цитата:
Сообщение от majordon
инструмент это нагнать на каждую страницу по паре уников для сохранения в кеш? по сумме дорогое решение выйдет
|
простой скрипт с file_get_contents в цикле справится забеслатно
__________________
|
|
|
06.05.2011, 17:16
|
#24
|
Je suis moine ivre
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
|
Цитата:
Сообщение от majordon
инструмент это нагнать на каждую страницу по паре уников для сохранения в кеш? по сумме дорогое решение выйдет
|
Нет, идеальным был бы плагин с одной кнопкой "Закешировать все", но и вариант sspy на крайняк сойдет
|
|
|
06.05.2011, 17:31
|
#25
|
Senior Medved
Регистрация: 15.06.2008
Сообщений: 4,146
Бабло: $22479945
|
ставиш кеш, прогоняеш сайтмап генератором сайтик , вуаля!)
|
|
|
06.05.2011, 17:34
|
#26
|
Senior Member
Регистрация: 11.10.2008
Сообщений: 6,409
Бабло: $904273
ТС -->
|
ТС
всем спасибо! похоже с БД уже ничего не сделаешь, осталось только сделать за пару недель сайтмап и закешировать. вот с "закешировать" наверное будут ещё проблемы, тогда ещё раз отпишу
|
|
|
06.05.2011, 17:43
|
#27
|
сам иди в жопу!
Регистрация: 02.05.2009
Сообщений: 672
Бабло: $81580
|
поставил кеш, пробежался паучком по всем ссылкам. или сервачок побыстрей, раз уж такое дело. ну и "похожие статьи" тормозить должны прилично, если их не кешировать.
__________________
|
|
|
06.05.2011, 20:22
|
#28
|
автоматизирую интернеты
Регистрация: 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/ - тоже нормально почитать
|
|
|
06.05.2011, 20:41
|
#29
|
Senior Member
Регистрация: 11.10.2008
Сообщений: 6,409
Бабло: $904273
ТС -->
|
ТС
Цитата:
Тебе предлагают поставить плагины, которые кешируют содержание страниц на стороне сервера
|
я его и имел ввиду.
речь идёт о другом, люби друзи мои: я опасаюсь что гугл будет считать сайт тормозом до тех пор, пока он весь не закешируется на серваке.
|
|
|
06.05.2011, 20:44
|
#30
|
Senior Member
Регистрация: 01.11.2007
Сообщений: 2,269
Бабло: $288535
|
majordon, можно легко сделать через file_get_contents, вытащить все урлы на посты, через функции ВП и пройтись по ним.
Ты просто поставь, для начала, плагин, нагрузка достаточно быстро упадёт и дальше страницы станут отдаваться на порядок шустрее.
|
|
|
06.05.2011, 20:45
|
#31
|
Je suis moine ivre
Регистрация: 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]); ?>
|
|
|
|