Владельцам 3.8.6: не поставили патч - потеряли форум!

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

 
 
Old  
intolerance
Гуру
Post Производительность и оптимизация (apache/php/mysql/vb) 179

Тема обновлена 03.03.2009


Персональный дисклаймер: моя профессиональная деятельность давно не связана с работой системного администратора, поэтому я не претендую на академические познания рассматриваемых систем и подходов, и не могу поручиться на абсолютную точность предлагаемых примеров. Все, что я могу, ? это показать вам направление для поиска, вектор приложения инженерной мысли.


Настройки vbulletin, обязательные для оптимизации

1. Тип поиска. Нужно использовать MySQL Fulltext, это намного быстрее родного поиска, кроме того, экономится размер БД (за счет удаления таблиц postindex и searchindex).
Admin CP -> vBulletin Options -> Search Type.
2. Метод хранения вложений. Хранить вложения нужно в файловой системе, это «быстрее», чем в БД. Критичный объем вложений для перехода на файловую систему примерно 200-350Mb.
Admin CP -> Attachments->Attachment Storage Type.
3. Метод хранения альбомов. Хранить альбомы нужно в файловой системе, это «быстрее», чем в БД.
Admin CP -> User Albums > Album Picture Storage Type.
4. Метод хранения аватаров и фотографий в профайле. Хранить аватары и фотографии нужно в файловой системе, это «быстрее», чем в БД.
Admin CP -> Avatars> User Picture Storage Type.
5. Обновление счетчика просмотра темы немедленно – Нет.
6. Обновление счетчика просмотра вложений немедленно – Нет.
7. Хранить таблицы стилей CSS в файлах – Да.
8. Срок хранения кэшированных сообщений (в днях) – 30-90.


10. Разрешить дублирование вложенных изображений – Да, на проверку дублей уходит время и ресурсы.
11. Автоматический поиск похожих тем – Нет.
12. Показывать пользователей, просматривающих разделы – Нет/В разброс для участников.
13. Показывать, кто просматривает тему – Нет/В разброс для участников.
14. Макс. сообщений на страницу – около 10-и.
15. Варианты макс. сообщений на страницу – 5,10,15.
16. Отображать вошедших пользователей – Если в алфавитном порядке, то нагружает БД.


Это минимум настроек VB, на которые требуется обратить внимание в первую очередь.

Отдельно следует оградить разделы и модули форума, не предназначенные для поисковых спайдеров. Создайте файл robots.txt в корневой директории public_html примерно следующего содержания:
Code:
User-agent: *
Disallow: /forums/clientscript/
Disallow: /forums/cpstyles/
Disallow: /forums/customavatars/
Disallow: /forums/customprofilepics/
Disallow: /forums/images/
Disallow: /forums/modcp/
Disallow: /forums/ajax.php
Disallow: /forums/attachment.php
Disallow: /forums/calendar.php
Disallow: /forums/cron.php
Disallow: /forums/editpost.php
Disallow: /forums/global.php
Disallow: /forums/image.php
Disallow: /forums/inlinemod.php
Disallow: /forums/joinrequests.php
Disallow: /forums/login.php
Disallow: /forums/member.php
Disallow: /forums/memberlist.php
Disallow: /forums/misc.php
Disallow: /forums/moderator.php
Disallow: /forums/newattachment.php
Disallow: /forums/newreply.php
Disallow: /forums/newthread.php
Disallow: /forums/online.php
Disallow: /forums/poll.php
Disallow: /forums/postings.php
Disallow: /forums/printthread.php
Disallow: /forums/private.php
Disallow: /forums/profile.php
Disallow: /forums/register.php
Disallow: /forums/report.php
Disallow: /forums/reputation.php
Disallow: /forums/search.php
Disallow: /forums/sendmessage.php
Disallow: /forums/showgroups.php
Disallow: /forums/subscription.php
Disallow: /forums/threadrate.php
Disallow: /forums/usercp.php
Disallow: /forums/usernote.php

Apache, PHP, APC, eAccelerator, Xcache, Memcached.

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

Выбор кешера. Этот шаг нужен для ускорения выполнения PHP кода, и, возможно, кеширования запросов к БД.

Vbulletin поддерживает несколько типов кеширования: Filecache, APC, XCache и Memcached (файл config.php). Краткий обзор:

eAccelerator. Очень быстрый, но не поддерживается разработчиками vbulletin. Есть отзывы, что с управлением памятью не все в порядке, возможен lock процессов и со временем наблюдается потеря производительности. На практике работает отлично, возможно. Лично пользуюсь в течение трех лет.

APC. Гибко настраивается, входит в состав PECL, поддерживается разработчиками. На практике медленнее eAccelerator и XCache.

XCache
. Динамично развивается, быстрый, информативный административный интерфейс, удобно настраиваемый, есть интерфейс для работы в составе Zend_Framework, высокая стабильность, поддерживается разработчиками. Медленнее, чем eAccelerator.

Memcache. Настроек нет, настройки вынесены в отдельный демон Memcached. В силу этого проигрывает в скорости, но может иметь несколько кеширующих демонов на разных серверах. При наличии распределенных ресурсов (или когда БД расположена на отдельном сервере) можно построить очень сбалансированную и устойчивую систему.

Оптимальным для одного сервера будет использование eAccelerator или XCache. Если БД расположена на отдельном сервере, то eAccelerator или XCache для PHP и Memcached на сервере БД.

Плагины, модификации, хаки

Предельно осторожно используйте дополнительные расширения и продукты, особенно те, которые каким-либо образом дополнительно выводят (модифицируют) информацию на главную страницу. Обязательно проверяйте, сколько запросов делает расширение – сравнивайте количество запросов до/после установки, смотрите исходники плагинов и читайте документацию разработчиков. Чем больше установлено дополнений, тем медленнее работает форум. Оптимально, на главной странице не должно быть более 10-12-ти запросов.

Выбор и оптимизация платформы

В качестве основы для развертывания своего сервера лучше всего подойдет Unix/Linux. Дистрибутивы и комплексные инсталляции по типу все-в-одном для Windows значительно медленнее своих старших Unix собратьев. Не рекомендуется использовать платформу Windows для нагруженного сервера, но вполне правильно использовать Windows для параллельных экспериментов с форумом, тестирования разработок, проверок хаков на стабильность, и т.д.

Можно рекомендовать к выбору Linux (CentOS, Ubuntu, Gentoo, Slackware и др.) и различные дистрибутивы BSD, на которых можно добиться хорошей производительности. Следует отметить, что MySQL в общем случае быстрее на Linux нежели на FreeBSD. В общем случае использование Linux предпочтительнее, но в частном (при достаточном опыте) использование FreeBSD может дать несколько важных преимуществ.

Следует заранее подумать о проблемах дискового ввода-вывода. Помните, что swap, место_где_расположена_база, место_где_расположен_wwwroot должны по возможности быть на разных физических дисках. Другими словами, система должна иметь максимально быстрый доступ для всех часто используемых данных. Использование SCSI предпочтительнее, чем SATA/IDE. Особого внимания заслуживает тема выделения оперативной памяти под размещение часто используемых файлов и приложений.
При большой нагрузке может оказаться, что пользователи получат отказ даже при заведомо выставленных правильно параметрах max_connections и back_log в mysql. Дело в том, что существует еще ограничение дескрипторов файлов и процессов в Unix. В разных системах решение разное, возможно потребуется пересборка ядра или подгрузка соответствующих модулей.

Желательно, не нагружать сервер дополнительными задачами, минимально использовать сервисы и перекладывать все дополнительные задачи на другие ресурсы. Текущие версии vbulletin позволяют использовать технологию slave/master, это может быть база на физически другой машине, или локальная – для страховки. Для очень загруженных проектов следует разделить нагрузку между несколькими серверами. Например, один выделить для отдачи статического контента, другой для динамического, третий – для базы данных.


Архив: оптимизация настроек на примере движка 3.6.x/3.7.x
Code:
Ниже представлен перечень опций и настроек, которые замедляют работу форума. При возникновении проблем с производительностью на них следует обратить внимание в первую очередь. Приоритет выставлен субъективно, по своему опыту. Использован перевод от zCarot.

1. Ключевые слова META, текст авторских прав и название форума не должны быть очень большими. Даже если это не сильно загрузит страницу, это загружает глаза посетителей. (Приоритет: низкий)
2. Использовать меню быстрого перехода – Нет. Экономит код, размер страницы. (Приоритет: низкий)
3. Ссылок на номера страниц – 5-10. 
(Приоритет: низкий)
4. Относительные переходы для навигатора по страницам – 5-10. 
(Приоритет: низкий)
5. Включить маски доступа. Если вы не используете различные права и маски доступа для разных разделов, то выключите. В ранних линейках эта опция очень сильно влияла на производительность, сейчас влияние менее заметно, но существенно для больших (много разделов и пользователей) форумов.  
(Приоритет: средний)
6. Добавление названий шаблонов в комментарии HTML – Нет. Используйте опцию только на момент отладки шаблонов, это лишний код, пробелы, переносы строк. (Приоритет: низкий)
7. Тип пометки тем/разделов как прочитанных - Не активность/cookie. 
(Приоритет: низкий)
8. Выключение функций AJAX – Все функции включить. У хорошему привыкаешь быстро.
(Приоритет: средний)
9. Библиотека обработки изображений – GD (IM заметно медленнее). 
(Приоритет: средний)
10. Вывод в формате GZIP HTML. Запущен ли apache c модулем mod_gzip? Если да, то отключаем GZIP HTML Output. Соответственно параметр «степень сжатия GZIP» не нужен. 
Выяснить ситуацию с gzip можно по статусу apache в phpinfo, например по строке Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a PHP/4.4.4. 
Если у вас проблема с производительностью и нет проблем с трафиком, то не используйте gzip вообще. 
(Приоритет: высокий)
11. Добавлять стандартные HTTP заголовки – Нет.
(Приоритет: низкий) 
12. Добавлять в HTTP заголовки "No-Cache" –  Нет (лучше дописать свой вариант No-Cache в headerinclude).
(Приоритет: низкий)
13. Удалить страницы сообщений о перенаправлении – Да.
(Приоритет: низкий)
14. Обновлять счетчик просмотра темы немедленно – Нет.
(Приоритет: средний)
15. Обновлять счетчик просмотра вложений немедленно – Нет. 
(Приоритет: средний)
16. Дублировать информацию индекса поиска в копии темы - Нет. 
(Приоритет: средний)
17. Хранить таблицы стилей CSS в файлах - Да.
(Приоритет: низкий)
18. Показывать иконки программ быстрых сообщений - Нет. 
(Приоритет: низкий)
19. Включить авто-цензора  - Нет.
(Приоритет: низкий)
20. Использовать почтовую очередь – Да, с блокировкой.
(Приоритет: средний)   
21. Количество email, отправляемых за один раз – 3-5.
(Приоритет: средний)
22. Быстрый ответ - Да, Нажатие не требуется (не древовидный режим).
(Приоритет: низкий)
23. Быстрое редактирование – Да.
(Приоритет: низкий)
24. Макс. длина сообщения – 2000-3000 символов.
(Приоритет: средний)
25. Разрешить динамические ссылки для тега [IMG] – Да.
(Приоритет: низкий)
26. Минимальное время между сообщениями – Пусть думают, прежде чем писать.
(Приоритет: низкий)
27. Включить управление форматированием сообщениями - Быстрый ответ и редактирование – только стандартная панель.
(Приоритет: средний)
28. Макс. вложений в сообщении и Загрузка вложений – В разумных пределах (1-3)
(Приоритет: низкий)
29. Разрешить дублировать вложенные изображения – Да, на проверку дублей уходит время и ресурсы.
(Приоритет: высокий)
30. Создание миниатюр изображений – Да, если позволяет, с границами и размерами.
(Приоритет: средний)
31. Размер миниатюр – Не более 100 пикселей.
(Приоритет: средний)
32. Мин. время между поисками - Пусть думают над запросом, прежде чем искать.
(Приоритет: низкий)
33. Найденных сообщений на страницу и Макс. количество результатов поиска - В разумных пределах, особенно на больших форумах.
(Приоритет: средний)
34. Автоматический поиск похожих тем – Нет.
(Приоритет: высокий)
35. Отображать вошедших пользователей – Если в алфавитном порядке, то нагружает очень значительно при большом количестве посетителей.
(Приоритет: высокий)
36. Глубина отображения подразделов - Главная страница/ Разделы форума/отображение подразделов – 2/3/1. При большой загрузке отключить вывод подразделов на главной странице.
(Приоритет: средний)
37. Отображать описание раздела в списке разделов (forumhome) – Нет, при условии, что названия разделов продуманы.
(Приоритет: низкий)
38. Отображать колонку модераторов – Нет.
(Приоритет: низкий)
39. Показывать пользователей, просматривающих разделы – Нет/В разброс для участников.
(Приоритет: средний)
40. Показывать, кто просматривает тему – Нет/В разброс для участников.
(Приоритет: средний)
41. Макс. сообщений на страницу – около 10-и.
(Приоритет: высокий)
42. Варианты Макс. сообщений на страницу – 5,10,15.
(Приоритет: высокий)
43. Проверять рейтинг темы – Нет.
(Приоритет: средний)
44. Проверять подписку на темы – Нет.
(Приоритет: средний)
45. Отображать похожие темы – Нет.
(Приоритет: средний)
46. Время обновления 'Кто на Форуме' – 0 или пара минут.
(Приоритет: средний)
47. Архив форума - Архивных тем на страницу - Количество сообщений на страницу при просмотре архива – в разумных пределах.
(Приоритет: низкий)
 
Old  
Sven
Верстальщик
 
Sven's Avatar
Default 0

Quote:
Originally Posted by intolerance View Post
Disallow: /forums/admincp/
Я думаю сюда папку админки не стоит вписывать...
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
intolerance
Гуру
Default 0

Краткая инструкция по установке и настройке nginx в качестве frontend для apache.
В подробности установки я не лезу, основной упор на специфику работы с vbulletin. В конфигах заменить на свои адреса и директории.

Цель — отдать статику через легкий nginx, а PHP отработать через apache (с кешером, конечно).

1. Apache либо уже установлен, либо ставим.
2. Ставим модуль mod_rpaf к apache (для правильной работы с IP адресами).
3. Ставим nginx.
4. Правим конфиг apache, меняем порт на 81 (или на другой). Убеждаемся что будет подгружен модуль mod_rpaf и добавляем требуемую для него конфигурацию (после Load/AddModule).

Code:
Listen 81

LoadModule rpaf_module        libexec/apache/mod_rpaf.so
AddModule mod_rpaf.c

RPAFenable On
RPAFsethostname On
RPAFproxy_ips XX.XX.XX.XX
RPAFheader X-Forwarded-For

5. Правим конфиг Nginx.

Code:
user  www www;

worker_processes  2;

pid /var/run/nginx.pid;

error_log  /var/log/nginx.error_log  info;

events {
    worker_connections   2000;
    use kqueue;     # use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
}

http {

    include       /usr/local/etc/nginx/mime.types;
    default_type  application/octet-stream;

    server {
        listen        XX.XX.XX.XX:80;
        server_name server_name.ru www.server_name.ru;

        access_log   /var/log/nginx.access_log  main; # у меня эта строка не заработала!

        location / {
            proxy_pass         http://127.0.0.1:81/;
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

        }

        location ~* \.(jpeg|jpg|gif|png|css|js|pdf|rar|txt|tar|zip)$ {
            root         /www/root;
            access_log   off;
            expires      30d;
        }

  }
 }
6. Рестартуем apache, стартуем nginx.

7. Проверяем работу форума, мониторим логи, смотрим реальные ли у пользователей IP адреса.

P.S. Модули типа Real ip detection работать перестанут (см. на proxy_set_header)
P.S.S. Нужно решить, как логи вести
 
Old  
co okie
Простоузер
Default 0

Quote:
Я думаю сюда папку админки не стоит вписывать...
А лучше прописать и подсунуть фэйк админ
 
Old  
netwind
Гуру
 
netwind's Avatar
Default 0

Да вообще можно не вести логи в nginx. Анализировать посещаемость форума можно только принимая во внимание url c php.
 
Old  
iwan
Простоузер
Default 0

разве тут на админку не нуно добавить?
Disallow: /admincp/
 
Old  
Sven
Верстальщик
 
Sven's Avatar
Default 0

iwan, а ты хочешь взлома? выше написано что можно ссылку на фейк админ
 
Old  
intolerance
Гуру
Default vB Accelerator 5

vB Accelerator

http_://www.vbulletin.org/forum/showthread.php?t=207566

Quote:
This mod is suited for medium and big boards. It reduces server load, caused by thumnails and big attachments.
what's the problem with?

Quote:
1. In original vB all thumbnails a downloaded via php. So, if you page contains 10-20 attached images, then each page php request will be followed by 10-20 thumbnails php requests. That's very bad.
2. When attachments body transfered via php, that's much more waisteful, than direct transfer of static file. Especially for big files.

what this mod does:


Quote:
1. All thumbnails will have DIRECT links (served as static files). Much lower reply latency and server load.
2. If you have nginx webserver, you php-fcgi will not participate in file transfer any more. It will reply with X-Accel-Redirect header. Then nginx will proceed attachment as static file.
* No more problems with multiple downloads of 10-mb files.
* No needs to restrict attachments and full-size images for guests and search bots.
3. That works for forum posts, blogs, albums. Everywhere.

how to install:

Quote:
1. Make sure, this files are stored on disk, NOT in database:
* post attachments & thumbnails
* blog attachments & thumbnails
* album images & thumbnails
2. Make sure, that thumbnails are in web-accessible area. If not - reconfigure your web-server first. If you own big board - then you know how to do that .
3. Check manually, that you can download any .thumb file via browser.
4. Import this product, and set options for you configuration.
5. Be happy to reduce server count in your cluster
PS. It's tested and works fine at my production site for 1 week. But I'll be happy to know server load statistics from big boards owners.

History

0.4
- fixed bug with PHP wagnings in server logs.

0.3
- first public release
Attached Files
File Type: xml product-vb_accelerator.xml (12.8 KB, 24 views)
 
Old  
Jekil
Продвинутый
Default 0

Друзья подскажите пожалуйста. Можно ли как-нибудь узнать какой скрипт или что конкретно может грузить сервер?
А то мхосте в ерор логе появляется время от времени:
[Sun Mar 29 03:59:06 2009] [warn] [client 127.0.0.1] Resource usage limit has been exceeded, access to rapboard.ru was temporarily denied
[Sun Mar 29 03:59:06 2009] [warn] [client 127.0.0.1] CPU limit of 2.5% has been exceeded (has been used more then 2.5% CPU)

И вырубали уже. Читал много чего может грузить, а тыкать пальцем в небо постояно уже надоело. Может есть какие средства мониторинга?

PS: Спасибо за эту тему. Сейчас буду по-тихоньку все шаги выполнять в борьбе с нагрузкой.
 
Old  
intolerance
Гуру
Default 1

Jekil, проще всего смотреть какие запросы грузят базу, т. е. мониторить вывод
mysqladmin processlist. И смотреть далее, откуда и почему. Может еще лог медленных запросов включить. Но, может оказаться, что и не БД виновата.
 
Old  
Almazzz
Знаток
Default 0

Хостер прислал:

Quote:
Ваша база данных создает огромные проблемы в работе сервера. Приносим свои извинения, но доступ к Вашему сайту вынуждены закрыть.
Пожалуйста оптимизируйте работу Вашего сайта и устраните данную проблему.
Проблемная база:


| 40 | user | localhost | base_db | Query | 26 | Sorting result | SELECT post.postid
FROM vbpost AS post

WHERE post.threadid = 6840
AND post.visible = 1 |

| 80 | user | localhost | base_db | Query | 6 | Sending data | SELECT thread.threadid
FROM vbthread AS thread

LEFT JOIN vbthreadread AS threadread ON (th |
Не подскажете, существует ли способ "оптимизировать" и какое либо решение проблемы, кроме смены хостинга?

Версия форума 3.8.6.
 
 

Tags
производительность

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 06:35 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.