Скорость работы и нагрузка на сервер. Оптимизация

Автор Roman, 10 декабря 2009, 12:57:51

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Roman

Скорость работы и уменьшение нагрузки на сервер

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

Сразу предупреждаю, что я не гуру в SMF, хотя и использую этот движок более двух лет, администрированием серверов и программированием тоже не занимаюсь. Если в каких-то моментах будут неточности - поправляйте. Информация это во первых, перевод статьи с simplemachines.org а также, информация из разных тем данного сайта + личный опыт. Стараюсь писать в стиле "для новичков", чтобы всем было понятно.


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

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

Нагрузка на сервер это то, насколько сильно ваш форум использует ресурсы сервера. Величина в некоторой степени виртуальная и порой не заметная. Если бы не пару НО. Во-первых, при росте числа посетителей, и значительной нагрузке на сервер, ваш хостер может начать выгонять вас на более высокий тарифный план. Во-вторых, если форум размещен изначально на нагруженном и тормозном сервере, то излишняя нагрузка может снижать как скорость работы самого форума, так и других сайтов, находящихся на этом же сервере.

Второе что следует понимать, это то, что очень многое зависит от вашего хостинга. Если хостинг хороший, то практически при любых настройках форума, и большой посещаемости (от 500-700 и более человек в день), страницы открываются быстро (не более 0,2-0,3с), и вас при этом не обвиняют в превышении нагрузки.
Но к сожалению, нормального российского хостинга по адекватным ценам лично я пока не нашел, и даже при должных настройках часто все работает не так как хотелось бы. И чтобы в условиях кривоватого хостинга все работало хоть как-то нормально, как раз приведенная ниже информация и нужна.


Способы увеличить скорость работы

Основы основ: меньше данных > выше скорость. Меньше запросов (к скриптам, к БД) > выше скорость.

самое основное:

1. Не отображать название хостов пользователей

Суть: запрос хоста пользователя через DNS.

Что делать: желательно отключить.
Идем в Характеристики и настройки > Настройки отображения > Не отображать название хостов пользователей?
и ставим там галочку (настройка отключена).

2. Использование для аватаров отдельной папки

Суть: по умолчанию, загрузка каждого аватара идет через запрос к index.php. При большом количестве аватаров это и снижает скорость, и повышает нагрузку на сервер.

Что делать:
а) создать на новую папку на сервере под аватары. Например, avs. Поставить у нее права доступа такие же, как у attachments.

б) Вложения и аватары > Свойства аватаров > Загруженные аватары
Там меняем "Загрузить аватары в:" на "другую папку", и прописываем в "Папка загрузки:" и "Адрес(URL) загрузки:" пути нашей новой папки по аналогии, как это указано в пункте "Аватары расположенные на сервере" (только заменяем avatars на avs)

После этих действий все новый аватары вызываются напрямую как картинка (сайт.ру/avs/аватар.жпг)

Подробная инструкция, и что делать со старыми аватарами, здесь (на англ.) http://www.simplemachines.org/community/index.php?topic=197938.0
при наличии времени потом могу перевести на русский.

3. Использовать сжатие трафика

Суть: уменьшает объем передаваемых данных и как следствие увеличивает скорость.

Примечание: Эта опция "о двух концах". При сжатии данных возрастает нагрузка на сервер. И если сервер и без того перегружен, то это в некоторых случаях может замедлить работу. Но чаще всего, эта настройка полезна для скорости. Вобщем, проверить можно только опытным путем.

Где: Настройки сервера > Другие настройки > Использовать сжатие трафика

4. Отключить последние сообщения на главной странице.
Текущая тема оформления > Количество отображаемых последних сообщений на главной странице форума = 0
* у себя эту опцию не отключал, так как нахожу это неудобным

5. Моды
Они бывают самые разные. Как безобидные, так и жестко нагибающие форум.
Тот же очень популярный Ad Management - это и дополнительные скрипты, и запросы к БД. При большом количестве используемых блоков, число запросов к БД может вырастать на 8-10. И в случае, если у вашего хостера не очень быстрый сервер MySQL, то это может существенно замедлять работу форума.

Вобщем, старайтесь использовать только те моды, которые вам действительно нужны. Мало полезные  отключайте и удаляйте. Анализируйте, как работает каждый мод, имейте в виду, что много скриптов и лишние запросы к БД > снижение скорости.

То же самое относится и к порталам - Tiny Portal, Simple Portal и т.д.

6. Внешние включения
Под этим подразумевается все, что грузится не с вашего сайта. Это может быть:
- реклама. Баннеры, контекст (ЯД, Адсенс, Бегун и т.д.)
- картинки. В том числе, всяческие юзербары.
- счетчики.

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

Случай1. Страницы сайта открывались секунд по 30. Причина была сразу определена, так как в статусе браузера было видно, что не грузится. Оказалось, это были проблемы у Яндекс-Директа. Пришлось на пару часов убрать рекламу с сайтов.

Случай 2. Все страницы открываются нормально, а одна 5-8 секунд. Оказалось, у одного пользователя на этой странице стоял юзербар, из-за которого тормозила вся страница.
Удалил юзербар у пользователя. Запретил отображение подписи пользователей для гостей.



Это основные способы.
Дополнительные можно почитать на английском здесь: http://www.simplemachines.org/community/index.php?topic=293441.0


Кто еще знает действенные методы, пишите, будет весьма полезно.

maximko


Inter

да,занимательно - побежал аватары менять...
I'm the law and you can't beat the law

|censored| 'em and their law

Crack down at sundown

st_Claus

Проделал все выше перечисленное, прочитал все темы по этому вопросу, но сегодня опять получил блокировку от хостера за превышение нагрузки! А не прошло и месяца как я перешел на более высокий тарифный план.

Подскажите
- можно ли при помощи .htaccess ограничить колличество запросов в единицу времени?
- насколько я понял большую нагрузку создают поисковые боты... как можно их ограничить?
- на движке SMF 2.0 RC3 вродебы можно ограничивать ресурсопотребление форума, если обновиться до SMF 2.0 RC3 на сколько эта функция работоспасобна?

заренее спасибо за помощь

Mavn

по поводу поисковиков читайте раздел Сео особенно той части что касается robots.txt
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

CedarMill

st_Claus
Напишите, у какого хостера вы размещаете SMF форум? И если не секрет, сколько вы платите на более высоком тарифном плане?
Возможно проблема в неадекватном хостинге...

P.S. может помочь - активации Memcached кэширования.
I love SMF and Joomla!

BIOHAZARD

Цитата: st_Claus от 11 мая 2010, 12:21:09
- насколько я понял большую нагрузку создают поисковые боты... как можно их ограничить?
Цитата: Mavn от 12 мая 2010, 11:13:35
по поводу поисковиков читайте раздел Сео особенно той части что касается robots.txt
посмотрите статистику, с каких поисковиков к Вам часто ходят, остальные посылайте лесом
также хороший роботс закрывает от индексации кучу ненужного хлама, что косвенно снижает нагрузку от ботов
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Roman

Если планируете, что посещаемость вашего сайта будет рости, то проще переехать на другой хостинг.
Также, бывает, что недобросовестные хостеры, пользуясь довольно туманными способами подсчета нагрузки, таким образом просто заставляют переходить на более дорогой тарифный план. Неоднократно встречал такие истории, вплоть до того, что человека с посещаемость сайта человек 500, вынуждают переезжать чуть ли не на vps.

karavan

Много зависит от количества сообщений за единицу времени. Может быть 500 человек за сутки, но сообщение 1 за 10-20 минут. А может 80 за сутки человек, но писать будут 1 сообщение за 2-3 секунды (у меня такое бывало). Вот тогда и будет большая загрузка. Я плачу 15 долларов в месяц, хостер 1Gb, тариф максимальный. http://www.1gb.ua/price.php. Но за последние месяца полтора больше 5% нагрузка не поднималась, думаю вернуться на двойной, там будет 8 долларов в месяц. Для подстраховки могу включить функцию +10% на сутки (стоит 2 долл) или +10% на месяц в случае перегруза. Хостера не хвалю, многие советуют менять... Действительно было впечатление, что переганяют на тариф подороже, после того как согласился на "максимальный" даже до 5% почти загрузка не доходила, не то что до 7,5 (Ну 1 раз 6,3). Но пока приспособился, а в свете событий последних месяцев, главное для меня сейчас - стабильность и качество, а это хостер мне как ни странно дал. Потому так пока. Могу показать логи загрузки процессора, если интересно, приложу файл (красным выделены периоды с перегрузами когда было 5% ограничение). При "максимальном" 6,3 было 1 раз, но тогда была реально война на форуме...1 сообщение за 1-3 секунды ;D

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

st_Claus

Цитата: CedarMill от 12 мая 2010, 12:02:28
st_Claus
Напишите, у какого хостера вы размещаете SMF форум? И если не секрет, сколько вы платите на более высоком тарифном плане?
Возможно проблема в неадекватном хостинге...
P.S. может помочь - активации Memcached кэширования.

Хостинг от hostpro.ua тарифный план CMS стоит 10$ в месяц дают якобы как 10% CPU и 64 метра памяти. вот лог который прислал хостер:
top - 16:38:10 up 23:09, 0 users, load average: 2.53, 3.96, 5.48
Tasks: 90 total, 6 running, 80 sleeping, 0 stopped, 4 zombie
Cpu(s): 86.8%us, 13.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2068480k total, 951420k used, 1117060k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3841 lisichan 25 0 72752 15m 7424 R 63.4 0.8 0:30.60 php
4062 lisichan 25 0 72756 15m 7424 R 32.4 0.8 0:16.29 php
20295 lisichan 22 0 0 0 0 Z 0.0 0.0 1:00.10 php
32475 lisichan 15 0 3280 800 656 S 0.0 0.0 0:00.08 imapd


Судя по нему форум таки загрузил сервак по полной! Но из-за чего вдруг не могу понять, наплыв народу на сам сайт 500 чел максимум, сам форум далеко не популярен и раньше все работало и хостер не жаловался

to karavan, Roman, BIOHAZARD, Mavn - спасибо за ответы, буду рыть дальше! Но все таки хотел бы еще проконсультироваться по поводу .htaccess и  фишки SMF 2.0 RC3 по ограничению ресурсопотребления...

Mavn

такая нагрузка на проц полный бред.
у меня этот форум(и еще порядка 10 доменов) с посещаемостью более 1.5к в сутки на впс 300МГц потреблял в среднем 2 % процессора. Вот что действительно потребляется так это память нагрузка на проц же возрастала только во время рассылки какой либо новости. Поскольку я прошел и шаред хостинг и вип хостинг и впс могу сказать только одно то что хостер говорит что идет привышение потребления процессорного времени это бред в большинстве случаев просто выбивание денег из клиента.

Мое мнение может не совпадать с другими. Так же слова выше относятся к стандартному smf и правильной его настройке.
Что значит правильная настройка? Включение тех или иных функций форума только будучи уверенным что эти функции поддерживаются сервером(например сжатие трафика, кэширование(для smf 1.1) и пр..), а так же настройка поиска в самом smf. В случае неправильной настройки поисковых индексов вся работа форума будет затруднена.
Самые простые примеры:
1. Когда создавался форум была включена настройка  Полнотекстовое индексирование однако со временем форум вырос бд выросла а настройка осталась и появились проблемы со скоростью загрузки форума и потребляемыми ресурсами.
2. Таблица с логами ошибок у некоторых в разы привышает объем данных. 2 Мега данных 200 мегов логов ошибок.
и прочие мелочи жизни...
Вот так из таких мелочей и появляются большие проблемы.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

st_Claus

Отрубил все индекстирование полностью файлом robots.txt, отрубил все что можно было отрубить исходя из даной статьи! Удалил все логи, Сжатие и кеширование у меня никогда и небыли включены. Включил форум теперь буду наблюдать!

Проконсультировался со своими админами на офисе по поводу лога, все в одну душу сказали о бредовости лога, даже скопировали себе для коллекции :).

Но вот еще один ньюанс, нашел у себя на форуме новую тему при запросе которой форум тупо вешался... попытался удалить, но без успешно "форум вешался". Зашел в базу и нашел эту тему в таблице smf_messages. Оказалось что присутствуют две одинаковые записи этой темы, отличались только  ID_MSG и ID_TOPIC, но вот в таблице smf_topics была только одна запись ID_TOPIC для этой темы. Вообщем удалил из базы эти записи! Может быть из-за этого форум грузил сервер? Вообщем сейчас покудова все работает! Еще раз спасибо что откликнулись!

kak2z

#12
Цитата: Roman от 10 декабря 2009, 12:57:51
2. Использование для аватаров отдельной папки
Подробная инструкция, и что делать со старыми аватарами, здесь (на англ.) http://www.simplemachines.org/community/index.php?topic=197938.0
при наличии времени потом могу перевести на русский.
С английским не сильно дружу, переводчик перевел очень расплывчато. Может подскажете на русском что делать со старыми аватарами? Как их перекинуть в новую папку?
Спасибо.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

digger®

Цитата: kak2z от 09 июля 2010, 18:06:52
С английским не сильно дружу, переводчик перевел очень расплывчато. Может подскажете на русском что делать со старыми аватарами? Как их перекинуть в новую папку?
Спасибо.

Зайти на адрес index.php?action=admin;area=manageattachments;sa=moveAvatars

kak2z

Камрады подскажите пожалуйста как настроить Memcached. Какой сервер нужно указывать? Мой домен?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

для начал нужно чтобы был собран на серваке Memcached
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

Собран) Саппорт хостера сказал что подключили его на стандартный порт. А вот что писать в строке с серверами я не знаю)

П.С. Это я себе думаю взять ВДС. Хостер настраивает под мои нужны. Надо сказать ребята в саппорте хостера просто молодцы.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Drakonsa


Serifa

ЦитироватьВключение тех или иных функций форума только будучи уверенным что эти функции поддерживаются сервером(например сжатие трафика, кэширование(для smf 1.1) и пр..), а так же настройка поиска в самом smf. В случае неправильной настройки поисковых индексов вся работа форума будет затруднена.
Самые простые примеры:
1. Когда создавался форум была включена настройка  Полнотекстовое индексирование однако со временем форум вырос бд выросла а настройка осталась и появились проблемы со скоростью загрузки форума и потребляемыми ресурсами.

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

Вкладка "Балансировка нагрузки".
Общие
База Данных и Пути
Плюшки и сессии
Кэширование
Балансировка нагрузки
Включить балансировку нагрузки по среднему значению (load averages) - пусто
Порог для отключения автоматической оптимизации базы данных 1.0
Порог для отключения поиска 2.5
Порог для отключения функции "Все непрочитанные сообщения" 2.0
Порог для отключения функции "Непрочитанные ответы" 3.5
Порог для отключения функции "Показать сообщения пользователя" 2.0
Порог для полного отключения форума 40.0

И где можно почитать, что эти цифры вообще означают?
«- Помощник капитана Бакстер, - заявил Лумис, - безбожно врет. Все отнюдь не под контролем, вернее, не под его контролем. Корабль захвачен представителями небелковой формы разумной жизни, которые маскируются под обслуживающих роботов, а некоторые даже не делают и этого...»
«То, что у тебя есть, лечится антибиотиками» (nowhere man, 1995)
В телеге срочно нужны читатели!

karavan

Если у тебя не свой сервер, то отключи и не трогай эту "Балансировка нагрузки". http://www.simplemachines.ru/index.php?topic=10190.0

Serifa

Предлагаю это вынести в ФАК, потому что через поиск надо копать разные темы, чтобы вспомнить, что эту инфу ты уже читал(( Вынести в ФАК кратко - и добавить ссылки на эти две темы.
«- Помощник капитана Бакстер, - заявил Лумис, - безбожно врет. Все отнюдь не под контролем, вернее, не под его контролем. Корабль захвачен представителями небелковой формы разумной жизни, которые маскируются под обслуживающих роботов, а некоторые даже не делают и этого...»
«То, что у тебя есть, лечится антибиотиками» (nowhere man, 1995)
В телеге срочно нужны читатели!

Xansen

Цитата: Mavn от 13 мая 2010, 12:26:31В случае неправильной настройки поисковых индексов вся работа форума будет затруднена.
А где можно подробнее почитать про поисковые индексы и как их грамотно настроить?

Quesabe

Спасибо за статью. Попробую сделать что-нибудь для снижения нагрузки на CPU. Сегодня внезапно нагрузка стала выше нормы (10%). Всё время было всё стабильно, линия нагрузки была разумна. Сегодня не пойми что. Подскакивает до 30%, бывает 15% и т.д. В админку зайти не могу, сайт тупо не грузиться... Не понятно сто стало причиной.
~1500 хостов, ~5000 просмотров.
Вообще при такой посещалке превышение лимита норма? Или это  какой то глюк?

Xansen

вопрос о каком лимите речь... Если Вы о "балансировке нагрузки", то она зависит от общей производительности хостинга. Если "соседи" отжирают Ваши ресурсы - баланс может перекрыть доступ к функционалу.

karavan

Возможно поисковый бот вас тормошит. "1500 хостов" это сообщений в сутки?

ArthurK

Что делать: желательно отключить.
Идем в Характеристики и настройки > Настройки отображения > Не отображать название хостов пользователей?
и ставим там галочку (настройка отключена).

А как быть с просмотром по ip? на одном сидят несколько ботов (пользователей).

Mavn

здесь всего лишь указаны рекомендации а не обзязалово
если вам необходима опция при которой будут видны названия хостов так и оставьте ее
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Ulibka

SMF 2.017

Во вкладке "кеширование" написано что 
SMF поддерживает кэширование с помощью акселераторов. Поддерживаются следующие акселераторы:
  • Memcached

Подскажите пожалуйста, как правильно рассчитать объем памяти, выделяемой для Memcached и как настроить кеширование с Memcached (где почитать ?)

digger®

Цитата: Ulibka от 10 мая 2020, 09:57:21SMF 2.017

Во вкладке "кеширование" написано что
SMF поддерживает кэширование с помощью акселераторов. Поддерживаются следующие акселераторы:
  • Memcached

Подскажите пожалуйста, как правильно рассчитать объем памяти, выделяемой для Memcached и как настроить кеширование с Memcached (где почитать ?)
Чтобы включилось кэширование memcached  нужно указать сервер 127.0.0.1.
Стандартных 32Мб обычно вполне достаточно. К демону memcached можно подключаться напрямую через телнет и запрашивать статистику использования http://dev-lab.info/2012/08/%D0%BCemcached-telnet-interface-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA-memcached-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-telnet/

maximan1981

Всех с праздниками!

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

Вчера такая ситуация повторилась.


ТП хостера меня отправил выяснять, что это за процессы, и пытаться с этим что-то сделать. 


Если причина на Ваш взгляд в хостинге, то это ошибка. Как мы видим, утилита host используется Вашим форумом для каких-то целей определения IP:
~# find . -name '*.php' -exec grep  'host' {} \; | grep shell_exec
$test = @shell_exec('host -W 1 ' . @escapeshellarg($ip));
$test = @shell_exec('host ' . @escapeshellarg($ip));

~# find . -name '*.php' -exec grep  'host -W 1' {} \;
$test = @shell_exec('host -W 1 ' . @escapeshellarg($ip));

~# find . -name '*.php' -exec grep -l 'host -W 1' {} \;
./Sources/Subs.php
В какой-то момент времени форум запрашивает команду host слишком часто, и она зависает.
Как вариант, сделать так, чтобы команда host не вызывалась. Возможно, это можно отключить в настройках форума.

Подскажите, пожалуйста, куда копать и что делать?