Большинство людей беспокоятся о трафике, а потом расходуют доли процента от того, что вообще могло бы стать проблемой. Игровой сервер на двадцать игроков - это ровный ручеёк в единицы мегабит. Небольшое веб-приложение отдаёт большую часть байтов в виде кэшируемых файлов, которые ваш процесс даже не трогают. Ни то ни другое не подходит близко к пределу, о котором стоило бы говорить. Реальный трафик создаёт совсем другой список - загрузка файлов, внешние резервные копии, видео и атаки, - и стоит понять, какой из списков ваш, прежде чем сравнивать квоты на передачу данных у разных хостеров.
Здесь вы найдёте цифры: сколько стоит один игрок, как перевести килобайты в секунду в месячную величину, какие нагрузки на самом деле гоняют терабайты, как измерить свою и что значит «безлимит», когда за канал кому-то приходится платить.
Сколько трафика на самом деле стоит игрок#
Важна цифра исходящего трафика сервера, потому что именно это направление несёт состояние игры сразу всем. Входящий намного меньше: клиент отправляет нажатия клавиш и движения мыши, самое большее несколько килобайт в секунду.
| Нагрузка | На игрока, исходящий с сервера | Что двигает цифру |
|---|---|---|
| Minecraft (Java) | 5-20 KB/s в установившемся режиме | view-distance, число сущностей, скорость перемещения людей |
| Valheim | 50-150 KB/s | плотность зоны, число построенных элементов рядом |
| Движок Source на 64 tick | 30-60 KB/s | tick rate и конвар клиента rate |
| Песочницы на выживание (Project Zomboid, 7 Days to Die, DayZ) | 30-150 KB/s | сущности и игроки в поле зрения |
| Крупные симуляторы (Arma 3) | 50-250 KB/s | ИИ-юниты, техника, MaxBandwidth в basic.cfg |
| Discord-бот | менее 1 KB/s | heartbeat шлюза и события, на которые вы подписались |
| Кэшируемая веб-страница | ничего между запросами | общий вес страницы, умноженный на посетителей |
Три вещи искажают эти цифры, и о них стоит знать:
- Подключения - это всплески, а не ручеёк. Клиент Minecraft, входя в новую область, тянет данные чанков так быстро, как позволяет соединение, - несколько мегабайт за несколько секунд, что намного выше установившегося значения. Двадцать человек, заходящих одновременно после перезапуска, выглядят как пик и абсолютно нормальны.
- Игры на Source сами ограничивают себя. Трафик к каждому клиенту ограничен конваром клиента
rateи сервернымиsv_minrateиsv_maxrate. Конвары обновлений на клиента, существовавшие в CS:GO, в CS2 изменены или удалены, поэтому проверьте, какие из них ваша игра ещё учитывает, а не копируйте конфиг 2018 года. - Arma 3 настраивается явно. Ручки здесь -
MaxBandwidth,MinBandwidth,MaxMsgSendиMaxSizeGuaranteedвbasic.cfg, а неверно заданныйMaxBandwidth- классическая причина рассинхронизации на сервере с большим запасом.
Как перевести килобайты в секунду в гигабайты в месяц#
Одно преобразование стоит запомнить, потому что к нему сводится любой спор о трафике:
1 Mbit/s sustained for 30 days = 324 GB1 MB/s sustained for 30 days = 2.59 TBВот и всё. Дальше умножьте игроков на их ставку, переведите и примените коэффициент загрузки, потому что почти ни один сервер не полон все двадцать четыре часа в сутки. Сервер сообщества, занятый шесть часов за вечер, - это примерно четверть теоретического пика.
| Сервер | Пиковый исходящий | Если бы работал на пределе весь месяц | Реальный месяц |
|---|---|---|---|
| Minecraft на 20 игроков по 15 KB/s | 2.4 Mbit/s | 778 GB | около 200 GB |
| Valheim на 10 игроков по 100 KB/s | 8 Mbit/s | 2.6 TB | около 650 GB |
| Сервер Source на 24 слота по 45 KB/s | 8.6 Mbit/s | 2.8 TB | около 700 GB |
| Discord-бот на 200 серверах | менее 0.1 Mbit/s | несколько GB | несколько GB |
| Блог с 50 000 посещений и страницами по 1.5 MB | всплесками | 75 GB веса страниц | 20-30 GB после кэширования |
Из таблицы следуют два вывода. Первый: обычный игровой сервер - нагрузка в единицы мегабит, и квота на передачу, названная в терабайтах, к нему не относится. Второй: пик важнее суммы: 8 Mbit/s постоянно - это ничто, а те же 8 Mbit/s, пришедшие как двухминутный всплеск в 200 Mbit/s, - уже другой разговор, и именно эта форма интересует хостеров.
Нагрузки, которые действительно гоняют трафик#
Вот список, дающий настоящие цифры. Если вас в нём нет, перестаньте думать о трафике и посмотрите на CPU или RAM, которые почти наверняка и есть ваше настоящее ограничение.
Раздача загрузок игрокам. Это главное для сообществ на движке Source. Серверы Garry's Mod, Counter-Strike и Team Fortress 2 раздают карты и контент каждому новичку - либо медленной внутриигровой передачей, либо по HTTP через sv_downloadurl. Пакет контента на 350 MB, отданный 200 новым игрокам в день, - это 70 GB в день, чуть больше 2 TB в месяц, с игрового сервера, который иначе расходует 8 Mbit/s. Как сделать это, не вешая всё на игровую машину, описано в статье Workshop-контент и FastDL.
Пакеты ресурсов и сборки модов. Ключ resource-pack в server.properties в Minecraft - это URL, и файл отдаёт то, что стоит по этому адресу. Направьте его на свой сервер, и пакет в 60 MB, скачанный 500 людьми, - это 30 GB, за которые платите вы. Направьте его на объектное хранилище или CDN, и это уже чужая забота. То же относится к раздаче сборок модов для лаунчера. Ключи и требование SHA-1 описаны в статье MOTD, иконки и пакеты ресурсов.
Внешние резервные копии. Сервер на 40 GB, целиком копируемый с машины каждую ночь, - это 1.2 TB исходящего трафика в месяц, самая большая строка вашего трафика, которая не даёт ничего, что кто-либо увидел бы. Дедуплицирующие инструменты вроде restic или borg отправляют первую копию целиком, а затем только изменённые блоки, что обычно снижает ночной прогон до нескольких гигабайт. О другой половине этой проблемы - в статье резервные копии, из которых действительно восстанавливаются.
Видео и аудио. Единственная нагрузка, где основной ресурс - трафик. Один поток 1080p на 5 Mbit/s, умноженный на двадцать одновременных зрителей, - это 100 Mbit/s, больше, чем все игровые серверы этой статьи вместе взятые. Если вы собираетесь этим заниматься, скажите об этом до покупки, а не после.
Обход краулерами. Сайт с большим каталогом товаров и без ограничения частоты запросов может отдавать больше байтов скраперам и ИИ-краулерам, чем людям. Проверьте журнал доступа по user agent, прежде чем считать трафик настоящим. Разумные меры защиты описаны в статье лимиты запросов и злоупотребления.
Безлимит, unmetered и fair use простыми словами#
Unmetered означает, что мы не выставляем счёт за гигабайты. Это не значит, что один сервер вправе бесконечно забивать общий канал, потому что канал общий, и на другом его конце чей-то мир Valheim. Это и есть вся политика, и её стоит изложить полностью, потому что в отрасли обычно этого не делают.
Что это означает на практике:
- Игровой сервер, приложение, бот или сайт, занятые обычной работой, никогда не подойдут к разговору о трафике. Не подбирайте тариф под трафик.
- Если вы собираетесь раздавать большие файлы в больших объёмах, запускать медиасервис или каждый час отправлять полные резервные копии наружу, сообщите заранее. Обычно найдётся место, где это никому не мешает, и договориться об этом до старта - пятиминутный разговор, а не тикет о том, что ваш сервер тормозит.
- Замечают именно продолжительное насыщение, а не месячный итог. Десять терабайт, размазанные по месяцу, незаметны. Два терабайта за один день на пределе канала - нет.
Сравните это с другими формулировками, которые вы встретите. «Неограниченный трафик» с оговоркой о «допустимом использовании» обычно значит то же самое и говорит об этом меньше. От хостера вам нужна цифра или предложение, а не прилагательное. При сравнении задайте два вопроса: есть ли плата за гигабайт и что будет, если я целый день держу высокую скорость. Остальной перечень - в статье как выбрать хостинг игровых серверов.
Трафик атаки - это трафик, о котором вы не просили#
Самое крупное событие по трафику, которое видит большинство серверов, вызвано не владельцем. Объёмный флуд - это трафик, адресованный вам и созданный кем-то другим, он приходит, хотите вы этого или нет. Изнутри машины его не выключить, и ваш подсчёт «своего» использования его не включает.
Что реально в фильтрации: фильтрация выше по сети отсекает очевидный объёмный флуд, отражённый и искажённый трафик до того, как он дойдёт до оборудования. Что не реально - намёк в большинстве рекламы хостинга, будто это делает атаки решённой проблемой. Атаки, похожие на настоящих игроков, не фильтруются, потому что на сетевом уровне их нельзя отличить, не отбросив заодно и настоящих игроков. Хостер, обещающий отсутствие простоев при любой атаке, продаёт вам предложение, а не услугу. Механика разобрана в статьях что мы на самом деле делаем с атаками и DDoS-атаки на игровые серверы простыми словами.
Одним вы всё же управляете: тем, станет ли ваш сервер источником чужого флуда. Query-порты, отвечающие на маленький запрос намного большим ответом, пригодны как отражатели, и поэтому в протоколе запросов к серверу движка Source появился шаг с challenge. Если query-порт генерирует исходящий трафик, дико несоразмерный числу игроков онлайн, происходит именно это. Держите серверное ПО обновлённым и не открывайте query- или RCON-порт шире, чем нужно, - безопасный RCON короткая статья, и она того стоит.
Измерение того, что вы на самом деле используете#
Гадать не нужно. На машине, которую вы контролируете, vnstat даёт самый полезный ответ за наименьшие усилия, потому что хранит историю:
$ apt install vnstat$ vnstat -i eth0 -d # by day$ vnstat -i eth0 -m # by month$ vnstat -i eth0 -l # liveЧтобы прямо сейчас посмотреть, кто его потребляет:
$ iftop -i eth0 -B # per-connection, in bytes$ nload eth0 # a simple in/out graph$ ip -s link show eth0 # cumulative counters since bootДля веб-приложения честная цифра находится в журнале доступа, а не в счётчике интерфейса, потому что она исключает всё, что обратный прокси отдал из кэша. Добавьте число байтов в формат журнала и просуммируйте:
log_format bytes '$remote_addr $status $body_bytes_sent "$request"';access_log /var/log/nginx/access.log bytes;$ awk '{ sum += $3 } END { print sum/1024/1024/1024, "GB" }' \ /var/log/nginx/access.logНа хостинге с панелью графика трафика вы не найдёте, потому что консоль показывает память, CPU и диск относительно лимитов, а не трафик. Это настоящий пробел, и об этом стоит сказать: если вам нужны ежемесячные цифры по трафику, измеряйте их внутри сервера через vnstat или по журналам приложения. Что говорят графики, которые вы всё же получаете, объяснено в статье как читать график нагрузки сервера.
Как сократить трафик, не урезая возможности#
Если вы действительно гоняете много байтов, исправления дёшевы, и ни одно не требует тарифа побольше.
- Вынесите загрузки с игрового сервера. Положите контент FastDL, пакеты ресурсов и сборки модов в объектное хранилище или за CDN. Тогда игровой сервер отдаёт URL, а не файл, и трафик перестаёт быть вашим. Это самый большой выигрыш для сообщества на Source.
- Сжимайте то, что отдаёте. Gzip или Brotli на текстовых ответах обычно сокращают HTML, CSS и JavaScript на 70-80 процентов. Это одна директива, и она действует для каждого посетителя.
- Кэшируйте надолго файлы с хэшем в имени.
Cache-Control: public, max-age=31536000, immutableна файле, в имени которого стоит хэш содержимого, означает, что вернувшийся посетитель скачает его один раз навсегда. Весь набор, включая то, почему неправильно заданныйETagможет всё это отменить, разобран в статье заголовки HTTP-кэширования простыми словами. - Используйте дедуплицирующие резервные копии. Первый прогон полный, каждый следующий - только разница. Обычно это снижает ночную копию с десятков гигабайт до сотен мегабайт.
- Настройте собственные сетевые параметры игры.
network-compression-thresholdвserver.propertiesMinecraft по умолчанию равен256байт, это разумный обмен CPU на трафик; увеличение отправляет больше байтов и тратит меньше CPU, а-1отключает сжатие совсем и разумно только в локальной сети.view-distanceиsimulation-distanceсокращают и CPU, и трафик разом. - Отдавайте изображения в том размере, в котором показываете. Самая частая причина тяжёлой страницы - фотография в 3000 пикселей в слоте на 400.
Трафик - это не задержка, кроме случаев, когда это она#
Самая частая путаница во всей теме: увеличение пропускной способности не уменьшает пинг. У гигабитного канала и канала в сто мегабит до одного и того же места одинаковая задержка распространения, и игре, которой нужно 15 KB/s на игрока, не поможет запас в десять раз больше того, что она использует. Если игроки жалуются на лаг, ответ почти никогда не в трафике. Это расстояние, плохой маршрут, джиттер, потеря пакетов или сервер, упирающийся в CPU. Как их различить, рассказано в статье задержка, джиттер и потеря пакетов.
Исключение настоящее, и о нём стоит знать. Когда канал действительно насыщен, пакеты стоят в очереди, а очередь - это задержка. Сервер, выполняющий полную резервную копию через тот же интерфейс, которым пользуются игроки, покажет рост пинга на всё время копирования - не потому, что трафика мало, а потому, что очередь перед интерфейсом заполнена. Поэтому копии стоит делать в четыре утра, и поэтому ограничение скорости исходящего задания иногда добрее, чем дать ему закончиться быстрее:
$ rsync -a --bwlimit=10000 /srv/worlds/ backup@198.51.100.5:/srv/worlds/--bwlimit задаётся в килобайтах в секунду, поэтому 10000 ограничивает эту передачу примерно 80 Mbit/s и оставляет остальную часть канала тем, кто играет.
FAQ#
Сколько трафика использует сервер Minecraft на игрока?
Примерно 5-20 KB/s в установившемся режиме, то есть около 2 Mbit/s для занятого сервера на двадцать игроков. При входах и телепортациях на несколько секунд, пока идут чанки, значения намного выше. Больший view-distance повышает и установившуюся скорость, и всплеск.
Правда ли, что unmetered трафик безлимитный?
Это значит, что вам не выставляют счёт за гигабайты. Это не значит, что один сервер вправе днями забивать общий канал. На практике ничто, похожее на игровой сервер, бота, API или сайт, до этой черты не дойдёт, а нагрузки, которые доходят, - массовая раздача файлов, потоковое видео - стоят разговора до старта.
Даст ли мне тариф побольше больше трафика?
Не в полезном смысле, и это почти никогда не то, что вам было нужно. Тарифы продаются по памяти, диску и доле CPU. Если сервер кажется медленным, ограничение почти всегда в одном из этих трёх или в сетевом пути между игроком и машиной, а не в объёме данных, которые вам разрешено передавать.
Как узнать, сколько трафика я использовал?
Измерьте внутри сервера: vnstat -m для месячного итога на машине под вашим контролем или сложите $body_bytes_sent из журнала доступа веб-сервера для приложения. Графики панели показывают память, CPU и диск, а не трафик, так что на этот вопрос они не ответят.
Считается ли DDoS-атака в моё использование?
Нет, и странно было бы вести сервис иначе. Трафик атаки создан кем-то другим и адресован вам. Фильтрация выше по сети отсекает очевидный объёмный тип до того, как он дойдёт до машины; флуд, имитирующий трафик настоящих игроков, - задача сложнее, и честные хостеры об этом говорят.
Как дешевле всего раздать сборку модов на 500 MB?
Не с игрового сервера. Положите её в объектное хранилище или за CDN и дайте игрокам URL. Так повторяющийся терабайт становится чужим счётом за трафик, обычно на несколько долларов, и к тому же игрок скачивает быстрее.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.