VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Медленная генерация страниц из-за большого количества подфорумов
0
Здравствуйте.
По специфике моего форума (электронная библиотека) на нём сейчас очень много подфорумов (более 5000 и количество увеличивается).
По этой причине (другие предположения, пожалуйста, не писать т.к. именно по этой причине) время генерации страницы значительно увеличилось от дефолтного.
Задержка идёт именно из-за ренерации в php. На генерации mySQL это не сказывается.
Как можно разрулить эту ситуацию адекватно и что следует переписать в файлах движка, ибо время генерации (около 3 секунд для главной страницы форума и 1 секунда для страниц тем) очень большое (при дефолтном 0.05 и 0.01 сек).
С уважением.
да весь движок переписать нужно
категории/разделы/форумы хранятся в кэше
и это естественно, что при таком нереально огромном количестве форумов все тормозит
да, вобла позволяет создать "неограниченное" количество форумов с любой вложенностью, но как бы это сказать, без фанатизма...
@adamsadriane
Продвинутый
Join Date: Aug 2008
Posts: 17
Версия vB: 4.1.x
Reputation:
Опытный 12
Репутация в разделе: 0
0
Quote:
Originally Posted by kerk
да весь движок переписать нужно
До этого стоял форум IPB. Проблема была аналогичной. Можно ли что-нибудь более локальное (относительно масштабного переписывания всего движка) сделать для ускорения работы (я имею ввиду уменьшение циклов проверки в файле forumdisplay или аналогичном).
Quote:
Originally Posted by kerk
без фанатизма...
Сначала мысль о том, что из-за подфорумов и будут все проблемы не возникала по причине первоначальной её алогичности (более логично, что торможение следовало бы ждать от линейного увеличения постов, или, хотя бы, в не такой большой кратной зависимости "единица подфорума/единица постов".
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
1
"хранятся в кэше", это значит, что движок подключает все (ну почти все), что находится в таблице datastore при инициализации
чем больше кэш, тем тормозней форум
дело не только в кол-ве форумов, там кроме этого еще кучка всего, модули, шаблоны (свой набор шаблонов на каждой странице + глобальные шаблоны для всех страниц), смайлы, ббкоды, битфилды, узергруппы и прочее...
но в данном конкретном случае, проблема именно в количестве форумов
сохрани в файл этот код, загрузи на форум и выполни в браузере, а потом сохрани сорс страницы в файле, затем посмотри размер этого файла
потом прибавь все выше перечисленное и получишь как раз размер кэша, который грузится со стартом движка =)
Quote:
Originally Posted by adamsadriane
я имею ввиду уменьшение циклов проверки в файле forumdisplay или аналогичном
какой проверки?
отображение тех или иных разделов, зависит от прав доступа группы узера или прав в разделе/разделах
сохрани в файл этот код, загрузи на форум и выполни в браузере, а потом сохрани сорс страницы в файле, затем посмотри размер этого файла
потом прибавь все выше перечисленное и получишь как раз размер кэша, который грузится со стартом движка =)
в разделе/разделах
Получилось примерно 6Мб кэша.
Его как-то оптимизировать можно (скажем, вынести на ramdisk, закешировать и т.п.)?
Файлы форума, Apache, MySQL находятся на отдельных SSD.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
1
6 МБ только кэш форумов?
попробую догадаться, у вас четверка установлена?
она сама по себе тот еще тормоз и пожиратель ресурсов, но вкупе с таким количеством разделов, мамадарагая....
Quote:
Originally Posted by adamsadriane
как-то оптимизировать можно (скажем, вынести на ramdisk, закешировать)
это и есть кэш
находится постоянно в памяти, для того и сделан, что бы не выполнять дикое кол-во запросов в БД, а вытащить все статические данные, одним запросом
как вынести на рамдиск, честно - без понятия =)
@adamsadriane
Продвинутый
Join Date: Aug 2008
Posts: 17
Версия vB: 4.1.x
Reputation:
Опытный 12
Репутация в разделе: 0
0
Quote:
Originally Posted by kerk
6 МБ только кэш форумов?
Да, так и есть. Я бы ещё относительно смирился бы с этим фактом, но с развитием сайта сейчас назревает минимум ещё удвоение количества подфорумов, а текущее время генерации уже начинает сказываться на позиционировании сайта в поисковых системах (хотя для пользователей это не очень ощущается: физически для них страница с темой грузится максимум 3 секунды).
Quote:
попробую догадаться, у вас четверка установлена?
Да, 4-я версия (раньше писал, что до этого IPB был установлен и только этим летом перенесли на vB Suite: на русскоязычном сайте поддержки IPB тоже писали, что нужно переписывать в движке, но в IPB там плохо сделано (по сравнению с vBulletin).
Quote:
она сама по себе тот еще тормоз и пожиратель ресурсов, но вкупе с таким количеством разделов, мамадарагая....
Ресурсов хватает (2хXeon, 64ГБ ОЗУ, отдельно рейдовый массив из 8 дисков под аттачменты, отдельные SSD под Apache, систему, MySQL).
По этой причине загвоздка в том, что, на первый взгляд, не представляется таковым, выглядит особенно мучительно.
Quote:
это и есть кэш
находится постоянно в памяти, для того и сделан, что бы не выполнять дикое кол-во запросов в БД, а вытащить все статические данные, одним запросом
как вынести на рамдиск, честно - без понятия =)
Во, если сразу не отрицаете категорично, то уже не так облачно выглядит перспектива того, что как-то оптимизировать...
Нет, ну если кэш уже в ОЗУ, то рамдиск на этой же ОЗУ не увеличит скорость.
А статические данные - это сумма каких файлов? Можно это как-нибудь узнать?
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 901
0
Quote:
Originally Posted by adamsadriane
Во, если сразу не отрицаете категорично, то уже не так облачно выглядит перспектива того, что как-то оптимизировать...
именно, что никак.
тоже интересовался этой проблемой и обнаружил, что ни одна система кеширования не позволяет "проецировать" постоянные переменные прямо в область памяти php, хотя теоретически это возможно. на одно лишь перекопирование из кеша в php и unserialize тратится куча времени.
можно пытаться угадать по url какие именно форумы понадобятся на данном этапе и как-то хитро строить не полный кеш форумов, а сокращенное дерево. основные страницы могут начать грузиться быстро.
лучше переписать под специализированный движок.
или, например, слить все сообщения из листовых подразделов в темы и избавиться от этих разделов заменив их темами.
Я бы еще попрофилировал, чтобы понять на что тратится время в 4ой версии. Возможно, появились и другие новые тормозные факторы.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
0
есть хак vboptimizer (или как то так), только незнаю, есть ли он для четверки
да и сам я не тестировал его и незнаю, будет ли от него какой то толк
в конфиге форума есть какие то настройки кэширования, там что то пробовали настраивать?
Quote:
Originally Posted by adamsadriane
А статические данные - это сумма каких файлов? Можно это как-нибудь узнать?
Quote:
Originally Posted by kerk
кроме этого еще кучка всего, модули, шаблоны (свой набор шаблонов на каждой странице + глобальные шаблоны для всех страниц), смайлы, ббкоды, битфилды, узергруппы и прочее
ну вобщем практически вся таблица datastore
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 901
0
другая идея в том, чтобы написать обработчик обращений к массиву в виде функций. то есть, каждое обращение типа $forumcache[N] транслируется в вызов специальной функции, а та уже лезет в mysql за данными. Обычно скриптам типа showthread нужна лишь цепочка форумов - путь к корню от текущего, а не весь кеш. А если скрипт зацепил уже более чем M форумов, значит этот скрипт особенный и имеет смысл выбрать все дерево из mysql. С точки зрения остального кода vbulletin это должно работать прозрачно.
сложно, но реально.