Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3

Тема: ackslimit

  1. #1
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±

    ackslimit

    Как-то давненько я сталкивался с проблемой, которая крашит сервер, или кикает игроков если сервер пытался передать им слишком много данных за короткий промежуток времени (acks).
    Побродив по просторам интернета нашел информацию, которая никак не подтверждена, что якобы оптимальный размер данного параметра составляет 5000/sec. А что делать если он превышает 20 тыс.?

    Так вот, как же все-таки быть с этим? Чем может грозить увеличение значения параметра ackslimit до 7-8-значных значений?
    Давайте уже раз и навсегда разберемся с изложенной проблемой, ибо зачастую подобные темы всплывают на различных Pawn-форумах.

    UPD:
    Сейчас же хостинги стоят на серьезном железе, неужели они не смогут справиться с отправкой килобайтного пакета пользователю?
    Последний раз редактировалось punkochel; 21.12.2020 в 13:47.

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от punkochel Посмотреть сообщение
    Так вот, как же все-таки быть с этим? Чем может грозить увеличение значения параметра ackslimit до 7-8-значных значений?
    Подверженностью атакам, вызывающим перегрузку на сеть со стороны сервера, причём справедливо это не только для ackslimit, но и для messageslimit.

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

    Я давно практически ничего не делал в SA-MP (в последнее время работаю только над компилятором), но из того, что могу вспомнить, причинами превышения лимита пакетов могут быть:
    • Выполнение в таймере или цикле лишних действий, которые можно было выполнить только один раз.
      Например, показ в таймере текстдрава (TextDrawShowForPlayer), который уже и так отображается, и функцию показа достаточно было вызвать только один раз (допустим, при логине игрока или входе/выходе из определённой зоны).
    • Большое количество маппинга в одном месте.
    • Банальные ошибки вроде показа диалога в цикле.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. Пользователь сказал cпасибо:
    punkochel (22.12.2020)
  4. #3
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    Вопрос 1: По сути, если все таки превышение дефолтного значения параметра ackslimit (3000/sec) произошло, то вероятнее всего, причиной является неправильно организованный код?

    Вопрос 2: На сколько вообще оптимально значение 3000/sec, стоит ли его изменять до того, как произойдет выход за его пределы, дабы избежать этого?

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

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •