MaxPlay & OneClicker
Слышал про эти новые системы с минимальной задержкой? Пинг снижается на 30 миллисекунд. Хочу в топы вырваться, а ты всегда в теме, как ускорить всё. Как думаешь, какие способы самые эффективные, чтобы хоть немного убрать задержку?
Привет, бери какой-нибудь дешёвый одноядерный процессор и запусти ядро, оптимизированное для минимального количества переключений контекста. Убери весь фоновый трафик – закрой вкладки, останови обновления Windows, поставь легковесную систему. Если есть возможность, используй канал на 10 гигабит и следи, чтобы провод был коротким – оптика до бордюра лучше любого домашнего кабеля. Подключись к ближайшему серверу, используй выделенный VPN или локальный прокси, и установи MTU на 9000, чтобы не было фрагментации. И забудь про все эти примочки с интерфейсом, просто пингни этот сервер; каждая миллисекунда важна. Если что, вини своего провайдера и их маршрутизацию, а не свой код.
Здорово, братан. Я месяц как вожусь с настройками, как у тебя – никаких навороченных интерфейсов, просто стабильная линия в 10 гигабит, MTU 9000 и чистая система. Мне удалось сбить пинг до основных серверов на 5 миллисекунд, это как будто получил 10 очков преимущества в разгоняемом бою. Как у тебя там железо? Нужна помощь, чтобы из этого сделать победу?
Круто, у тебя всё отлично получается. У меня та же конфигурация: 10 гигабит, MTU 9000, без всяких наворотов, чистый эфир. Если хочешь выжать те самые 5 миллисекунд, проверь драйвер сетевой карты – используй последний модуль ядра, подкрути txqueuelen до 256 и привяжи процессорный ядро с помощью taskset, чтобы ядро не перебивало. И еще, убедись, что маршрут самый короткий; статический маршрут до точки входа у провайдера может сэкономить еще пару миллисекунд. Что-нибудь еще? Может, быстрая проверка пингом и traceroute, чтобы выявить скрытые узлы.
Отличный ход с txqueuelen, заметный прирост. Я ещё и закрепил игровой поток за одним ядром, отключил энергосбережение на сетевой карте, чтобы задержки были стабильными. Насчёт статического маршрута – поставил высокий приоритет метрики для шлюза по умолчанию, чтобы пакеты не шли через медленный провайдер. Какие роутеры используешь? Может, найдётся прошивка с дополнительной оптимизацией, вычтем ещё миллисекунду.
Да, у меня EdgeRouter X с EdgeOS. Я прошиваю его последней стабильной версией, а потом устанавливаю "set system mtu 9000" для WAN-интерфейса и "set interfaces ethernet eth1 mtu 1500" для LAN. Отключаю всю буферизацию – выключаю TCP window scaling в расширенных настройках роутера, и вообще отключаю Wi-Fi, если у тебя кабельное подключение. Ещё поднимаю приоритет QoS для игр. На Netgear Nighthawk R7000 я бы поставил DD-WRT или Tomato, потом зашел бы в "Advanced" → "MTU 9000" на WAN и покрутил бы флажок оптимизации задержки (отключил "Auto TCP/IP"), чтобы использовался прямой маршрут. В обоих случаях ещё нужно установить статический маршрут с меньшей метрикой для твоей геймерской подсети, как ты и сделал. Обычно это последние 1-2 миллисекунды, которые можно выжать.
Отлично организовано. Вечером запущу быструю трассировку, проверю, не остались ли где-нибудь скрытые узлы. Есть еще какие-нибудь приемы, чтобы поток пакетов был стабильным — например, поковыряться с ARP-кэшем роутера или установить низкое значение TCP linger? Если есть любимый скрипт для анализа дампов, чтобы поймать джиттер, дай знать.
Ну, чисти ARP-кэш каждые 30 секунд командой "ip neigh flush all", чтобы устаревшие записи не блокировали пакеты. Отключи Nagle через "sysctl -w net.ipv4.tcp_no_metrics_save=1" и "sysctl -w net.ipv4.tcp_mtu_probing=1", чтобы маршрут был стабильным. Забудь про TCP linger: "sysctl -w net.ipv4.tcp_fin_timeout=15" и "sysctl -w net.ipv4.tcp_keepalive_time=120". Для быстрого анализа джиттера запусти: "tcpdump -i eth0 -s 0 -c 20000 -w /tmp/capture.pcap host 8.8.8.8", потом открой в Wireshark и фильтруй "ip[0] & 0x80 != 0", чтобы увидеть пакеты, пришедшие не по порядку. Или просто используй "ping -i 0.2 8.8.8.8 -c 1000 | grep time" и следи за стандартным отклонением. Без лишних слов, делай все четко.
Круто, это то, ради чего я и работаю. Сейчас выполню эти команды и запущу двухчасовую запись, чтобы посмотреть, есть ли какие-нибудь микроскопические дрожания. У тебя есть любимый способ поддерживать свежесть ARP-кэша на EdgeRouter? Может, cron-задание или скрипт, который проверяет возраст ARP? И ещё, если ты на канале Wi-Fi, который всё ещё просачивается, переход на 5 ГГц может сэкономить несколько миллисекунд. Какой у тебя сейчас пинг до основных серверов?