vBulletin, стороннее и собственное кеширование

123
vandamme
На сайте с 30.11.2008
Offline
675
#11
Unlock:
если на динамических проектах, тем более форумах, делают кеширование

ну так можно кешировать mysql запросы, а не сами странички

например разговор в теме перешел на 2 страницу, то почему бы не формировать первую страницу запросом из закешированного mysql запроса? даже тут на форуме количество моих и ваших сообщений показывается не сразу..

Jackyk
На сайте с 05.10.2005
Offline
342
#12
Unlock:
Но очень удивлюсь, если на динамических проектах, тем более форумах, делают кеширование. По крайней мере такое, которое значительно снизит нагрузку и не убьет смысл проекта.

Таки делают. Я за это время нагуглил кое-что... Например:

vB4Mance Part 5: Expert Level - Boosting vBulletin Performance with Advanced Caching.

vB Optimise.

Memcached для кэширования.

С уважением, Евгений.
edogs software
На сайте с 15.12.2005
Offline
775
#13
Unlock:
Вообще такой тест с 5000 юзеров онлайн, сколько таких форумов в мире?

5000 юзеров онлайн без описания их поведения (хотя бы сколько запросов они делают - 1 или 200 в секунду) это аналогично сферическому коню в вакууме. Но в принципе, агрессивный поисковик - может и больше создать, бинг и какой-то "государственный" грузят только так, да еще и роботс в плане тайм делея не слушают.

Unlock:
Хм, странно. У меня Вобла очень быстро грузится при одновременном количестве пользователей в районе 150-200 человек.

У ТС 5,000/(1 раз в 3 секунды)=1666 запросов в секунду, если мы правильно поняли суть его стресс-теста.

Если онлайн в вобле 200 человек у Вас по вобловским меркам, на реальном форуме, то там человек считается в онлайне, если не ошибаемся, в случае если он был хотя бы раз за последние 5 минут. Таким образом это может быть 0.66 запросов в секунду. Что конкретно меньше, чем 1666, поэтому сравнение некорректно.

Jackyk:
В-общем, вопрос к знающим людям - можно нормально подружить vB и систему внешнего кеширования

Если для "анонимов", то да, можно. Хостер, кстати, достаточно четко сказал как. Тупо настройте воблу так, что бы она отдавала заголовки ""Expires:" и "Pragma:"." позволяющие кэшировать страницу, при условии что юзер неавторизирован. Можно даже не озабачиваться точными расчетами и поведенческим выставлением заголовков, а просто выставлять кэш типа каждые 5 минут (01:05, 01:10, 01:15...).

Jackyk:
Как оно работает на практике - эффективно? Можно ли это использовать в дополнение или вместо этого самого Varnish?

APC в основном поможет если нагрузка упирается в php. memcached поможет если нагрузка упирается в основном в базу. Как дополнение к varnish использовать вместе. "Вместо" varnish не получится, так как это разные методы кэширования.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
Unlock
На сайте с 01.08.2004
Offline
786
#14
vandamme:
даже тут на форуме количество моих и ваших сообщений показывается не сразу

Счетчики ясное дело не обновляются сразу, там у Воблы в кроме туча заданий.

edogs:
Тупо настройте воблу так, что бы она отдавала заголовки ""Expires:" и "Pragma:"." позволяющие кэшировать страницу, при условии что юзер неавторизирован.

Я вот только не пойму, это же кеш в броузере, но не со стороны сервера кеширования. Или ошибаюсь? Если не ошибаюсь, то смысл такого кеширования, если это 5000 новых пользователей? И если они просмотрят только одну страницу.

Есть желание, - тысяча способов; нет желания, - тысяча поводов! /Петр-I/.
Jackyk
На сайте с 05.10.2005
Offline
342
#15
edogs:

Если для "анонимов", то да, можно. Хостер, кстати, достаточно четко сказал как. Тупо настройте воблу так, что бы она отдавала заголовки ""Expires:" и "Pragma:"." позволяющие кэшировать страницу, при условии что юзер неавторизирован.

Спасибо. Увы, этого оказалось недостаточно. Varnish не кэширует все равно, по словам хостера - из-за того, что форум отправляет браузеру cookies (и незалогиненным в том числе).

edogs software
На сайте с 15.12.2005
Offline
775
#16
Unlock:
Я вот только не пойму, это же кеш в броузере, но не со стороны сервера кеширования. Или ошибаюсь? Если не ошибаюсь, то смысл такого кеширования, если это 5000 новых пользователей? И если они просмотрят только одну страницу.

Это не кэш в браузере, это заголовки посылаемые форумом/сайтом, говорящие о том, когда именно данный контент был создан/обновлен. Браузер разумеется использует их для кэша (что бы не скачивать заново страницу), но они могут использоваться и любой промежуточным прокси/кэшем (как варнишь на сервере, так и провайдерский прокси например).

Jackyk:
Спасибо. Увы, этого оказалось недостаточно. Varnish не кэширует все равно, по словам хостера - из-за того, что форум отправляет браузеру cookies (и незалогиненным в том числе).

Ну, тут 2 очевидных варианта.

Или попросить хостера что бы он настроил варнишь так, что бы он не обращал внимания на наличие печенек (раз форум и так прагмой и экспири будет контроллировать кэш).

Или донастроить воблу так, что бы печеньки не отсылались анонимам (что в принципе разумно, т.к. в печеньках сохраняется информация о прочитанных темах например).

Первый вариант более логичен (зачем менять код, если вопрос решается настройками варниша), но если реализовать второй правильно - то можно еще снизить нагрузку (вобла заводит сессию в базе на _каждого_ посетителя, даже анонима, при этом держит ее достаточно долго и апдейтит иногда, что в Вашем случае очевидно бессмысленно => это можно отключить - правда не скажем насколько тут придется вмешиваться в код).

N
На сайте с 06.05.2007
Offline
419
#17
Unlock:
Насколько я знаю, в самой Вобле и надеюсь речь идет о 3-ке, все нормально с запросами. Вот хаки, тут да, если кривые руки писали. А дальше уже все это онанизм, либо хостинг держит, либо нет.

Не совсем. Не хуже чем у других, но хуже чем могло бы быть. У него от рождения косяк. Проблема действительно есть.

Продукт, продающийся поштучно лицензиями на домен не может учитывать интересы крупных форумов. Им выгодно развивать удобства для мелких, так как это больше способствует продажам. Даже где-то на сайте официально написано что позиционируется для "small to middle size forums".

В данном случае удобство отметки прочитанных тем и возможности учета сессий незалогиненых поставили важнее производительности.

Еще, может быть, дело просто в наследии.

Можно решать проблему (другую, не с сессиями) установкой продуктов. И даже какой-то из вариантов vboptimize на searchengines светился в подвале одно время. Но сейчас не светится.

Внутренние кеширования данных datastore в memcached или apc реализованы, но эффект на одном сервере малозаметен. Там контента нет, а только оперативная информация нужная почти каждому скрипту в составе форума. С тем же успехом можно просто надеяться на кеш запросов mysql.

А можно, если речь про внутреннее кэширование, перестраивать кэш после создания любого нового сообщения мгновенно, как делается в ряде CMS

...в ряде сеонизаторских CMS, в которых нет развесистой системы ограничения доступа и все пользователи видят одно и то же.

Кнопка вызова админа ()
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#18

Сразу скажу, я не спец по булкам и прочим форумам. Но если бы я столкнулся с подобной проблемой, то поступил бы следующим образом:

1) Анализ того, что дает нагрузку (БД/апач)

2.1) Если БД, то смотрим процентное соотношение авторизованных юзеров и гостей(анонимов)

2.1.1) Если гостей больше - настраиваем кэширование под них заголовками pragma, expires. Проведя несколько тестов, выбираем оптимальное время(сколько будет не в ущерб идеи форума, ну скажем 15 минут).

2.1.2) Если больше авторизованых юзеров, то делаем кэширование запросов к БД, или вообще кэшируем страницы, но с меньшим временем чем у гостей.

2.2) Если апач, то смотрим в чем трабла(либо большое время обработки(генерация+отдача юзеру) 1 запроса, либо просто дофига запросов)

2.2.1) Если долго обрабатывается запрос, то смотрим почему(не оптимизирован код, долгие коннекты к БД, долго происходит отдача юзеру)

2.2.1.1) не оптимизирован код - оптимизируем:)

2.2.1.2) долгие коннекты к БД - смотрим почему.

2.2.1.3) Долго юзер забирает свой контент - Nginx с соответствующими настройками.

2.2.2) Если просто дофига запросов - увеличиваем ресурсы.

3) Смотрим насколько снизилась общая нагрузка на сервер, после принятия каких-либо мер по оптимизации

Ну это самый минимум. Расширение алгоритма борьбы с нагрузкой только приветствуется:)

PS. На практике ни разу с таким делом не сталкивался. Так что в этой теме я только теорик. Плиз сильно не пинайте:)

Подпись))
Jackyk
На сайте с 05.10.2005
Offline
342
#19
netwind:
Внутренние кеширования данных datastore в memcached или apc реализованы, но эффект на одном сервере малозаметен.

Ну вообще читал я вчера, что после установки vb optimise (по-моему - "pro") время генерации страницы упало с 0.7 сек до 0.05. А vb optimise как раз именно с тем же самым, как я понял, работает, что в config.php перечислено, только больше всякого всего в кэш запихивает.

Милованов Ю.С:
Но если бы я столкнулся с подобной проблемой, то поступил бы следующим образом:

1) Анализ того, что дает нагрузку (БД/апач)

Это не так-то просто. Пока с проблемой никто не столкнулся, в эксплуатацию-то это всё пока не запущено. Но очень бы не хотелось столкнуться с ситуацией, когда всё грохнется после первой же ссылки в твиттере, и уже под нагрузкой придется рвать волосы на одном месте и срочно искать, что где подкрутить, или менять хостера, или брать сервак и т.д. и т.п.. Хотелось бы "на берегу" настроить так, чтобы хоть приблизиться к заявленной хостерами, имеющими внешние системы кэширования, способности отдавать 1000 страниц в секунду без падений.

Милованов Ю.С:
Если гостей больше - настраиваем кэширование под них заголовками pragma, expires.

Ну вот для Varnish у данного конкретного хостера этих заголовков, повторюсь, недостаточно.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#20

А зачем Вам вообще Варниш? Чем обусловлен его выбор?

Если Вы планируете какой-то более-менее серьезный проект, который будет приносить доход, то я думаю, что есть смысл посмотреть в сторону VPS, где Вы сам себе хозяин, и сможете делать все что душе угодно:)

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий