throttle (регулятор) давайте разберёмся..

Главные вкладки

Аватар пользователя clubwave.ru clubwave.ru 8 декабря 2006 в 10:44

Авторегулировка на анонимных пользователях:
Регулятор контроля перегрузки может автоматически включаться, когда число анонимных посетителей сайта переступает определенный порог. Например, чтобы стартовать регулятор, когда на вашем сайте 250 анонимных посетителей одномоментно, введите в это поле число 250. Оставьте это поле пустым или напишите 0, если вы не желаете, чтобы авторегулятор работал на анонимных посетителях. Вы можете увидеть текущее число посетителей в блоке "На сайте".

Авторегулировка на зарегистрированных пользователях:
Регулятор контроля перегрузки может автоматически включаться, когда число зарегистрированных пользователей сайта переступает определенный порог. Например, чтобы регулятор включался, когда на вашем сайте 50 зарегистрированных пользователей одномоментно, введите в это поле число 50. Оставьте это поле пустым или напишите 0, если вы не желаете, чтобы авторегулятор работал на зарегистрированных пользователях. Вы можете увидеть текущее число пользователей в блоке "На сайте".

Вероятностный ограничитель авторегулятора:
Вероятностный ограничитель авторегулятора является эффективным механизмом для статистического уменьшения чрезмерной нагрузки на него. Ограничитель выражается в процентах от просмотренных страниц, так что, например, если установлен в значение 10%, то дополнительные запросы к базе данных для обновления статуса регулятора будут посылаться только при каждом десятом просмотре страницы. Это значение должно быть тем ниже, чем более загружен ваш сайт.

Кто может пояснить данные цитаты из настройки модуля trottle? Что именно делает этот модуль при заходе скажем 250 анонимов одновременно?

И что означают галочки на против каждого модуля при включённом регуляторе? Работать только для указанных модулей..?

Комментарии

Аватар пользователя Ромка Ромка 8 декабря 2006 в 11:18

Кто может пояснить данные цитаты из настройки модуля trottle? Что именно делает этот модуль при заходе скажем 250 анонимов одновременно?

Если выставить "Вероятностный ограничитель авторегулятора" в 10%, то если 250 человек почти одновременно запросят одну и ту же страницу, то только для 225 из них друпал приконнектится к базе данных и выдаст резульат из нее, остальным 25 (как раз тем 10%) будет выдана страница из кэша.

И что означают галочки на против каждого модуля при включённом регуляторе? Работать только для указанных модулей..?

Да.

Аватар пользователя axel axel 8 декабря 2006 в 12:10

Про проценты абсолютно неправильное объяснение! Из кэша для анонимусов сайт отдаёт данные всегда, а не в каком-то проценте случаев. А 10% throttle означает, что каждое десятое обращение к сайту throttle будет проверять превышение посещаемости добавляя два своих запроса к таблице sessions. Т.е. чем выше установлена вероятность в %, тем больше дополнительных запросов от throttle получим. При 100% на каждое обращение к сайту будет 2 лишних запроса - дополнительная нагрузка от самого throttle, но зато throttle будет реагировать быстро.

Если заглянуть в исходники, то можно увидеть более подробное описание логики:

  // The following logic determines what the current throttle level should
  //  be, and can be disabled by the admin.  If enabled, the mt_rand() function
  //  returns a number between 0 and N, N being specified by the admin. If
  //  0 is returned, the throttle logic is run, adding two additional database
  //  queries.  Otherwise, the following logic is skipped.  This mechanism is
  //  referred to in the admin page as the 'probability limiter', roughly
  //  limiting throttle related database calls to 1 in N.
  if (!mt_rand(0, variable_get('throttle_probability_limiter', 9))) {

throttle_probability_limiter - это то самое число:

  $probabilities = array(0 => '100%', 1 => '50%', 2 => '33.3%', 3 => '25%' и т.д. до 989 => '.1%');

.1% - только на тысячу обращений к сайту получим одну проверку от throttle.

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя axel axel 8 декабря 2006 в 12:19

Т.е. если на сайт обращаются скажем 10 раз в секунду, то выставив 10% для регулятора получим, что проверка лимитов будет происходить каждую секунду, что приемлемо, чтобы адекватно среагировать на резкое повышение числа запросов. А если при посещаемости 1 посетитель в секунду выставить 10%, то проверки будут происходить примерно каждые 10 секунд.

При срабатывании лимита throttle переводит сайт на следующий уровень посещаемости, отрубая при этом (имхо произвольным образом) какие-нибудь блоки и/или модули из тех, что отмечены в админке. Поэтому включать throttle следует только для не критичных для работы сайта модулей и блоков.

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя clubwave.ru clubwave.ru 8 декабря 2006 в 13:55

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

Аватар пользователя axel axel 8 декабря 2006 в 14:58

Почти. Часть модулей не дают для себя throttle включить - для них и галочки не поставишь. Но видно, что можно например отрубить таксономию (может кому-то и вправду такое надо), а если на ней завязана куча всяких меню и навигация, то сайту похреновеет. В общем такой продвинутый инструмент, пользоваться с осторожностью.

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя axel axel 8 декабря 2006 в 20:59

Да уж, вердикт вынесен. Однако кому как. По-моему лучше частичный показ контента, чем полностью лежащий сайт. На drupal.ru throttle включен, хотя сейчас неактуален - сервер выдержит наплыв посещаемости подозреваю хоть со слэшдота. Но когда сайт жил на shared хостинге отключение блоков помогало (правда тогда настроек в throttle было поменьше - только вероятность срабатывания задавалась).

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!