Все прерывания делятся по следующим приоритетам: 1 место - работает на уровне кольцо -2 прерывания SMI (system management interrupt — прерывание системного управления), которое возникает: -по сигналу от чипсета или периферии на материнской плате -программный SMI, посланный системным ПО через порт ввода-вывода -запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM. 2 место - гипервизор, который работает в кольце -1 3 место - ядро операционной системы - работает в кольце 0 4 место - пользовательский уровень - работает в кольце 3
Позднее дополню каждый раздел. Все проблемы у нас связаны с тем, что windows относится к операционным системам с вытесняющей многозадачностью. Вытесняющая многозадачность требует обработки системного прерывания от аппаратного таймера. По истечении кванта времени, отведённого процессу, происходит прерывание и вызывается планировщик процессов. Частота вызова планировщика критична: слишком частый его вызов будет расходовать процессорное время впустую. Единственное, что мы можем изменить - это увеличить время кванта и поменять соотношение квантов времени на активную задачу и задачи в фоне, за это отвечает параметр в реестре Win32PrioritySeparation По умолчанию 0х26 кванты 18:6 = Оптимальный вариант. https://github.com/keoy7am/Win32PrioritySeparationTool При этом само время кванта зависит от системного таймера. При системном таймера 15.625 мс оно будет больше, чем при 1.0 мс. Высчитывается время системного таймера * тики. 1 тик= 3 кванта Для системного таймера 0.5 мс фону тогда буде даваться 0.5мс*6/3 = 1мс из каждых 4 мс. При 1 мс - 2мс из каждых 8мс. При 2 мс - 4мс из каждых 16мс. Для борьбы с фризами оптимально выставить системный таймер 0.5мс.
SMI-прерывания зависят от BIOS/UEFI и оборудования. Отключаем все лишнее, отключаем энергосохранение, скорость вентиляторов фиксируем, это все, что мы можем сделать. В нашем плане энергосохранения выбрать оценка для поднятия частоты вместо 15 мс максимум 5000 мс. Есть программа Intel SMI Latency Checker Для гипервизора - отключаем поддержку виртуальных машин в биосе.
Про прерывания на уровне ядра и пользователя в windows.
В Windows применяется: - для x86 - 32 уровня IRQL от 0 до 31 (в скобках указано числовое значение): High (31) Power fail (30) IPI (29) Clock (28) Profile (27) Диапазон аппаратных прерываний, называемых Devices IRQL, или DIRQL (от 26 до 3) или ISR DPC/DISPATCH (2) APC (1) PASSIVE (0) Это означает, например, что планировщик (работающий на уровне DPC/DISPATCH) может быть прерван аппаратными прерываниями, межпроцессорными прерываниями (IPI) и т. д., но не может быть прерван асинхронными процедурами (APC) и обычными потоками, работающими на уровне PASSIVE. Межпроцессорные прерывания IPI могут быть прерваны сбоем электропитания (прерывание на уровне Power fail), но не могут быть прерваны обычными аппаратными прерываниями от устройств и т. д. - для х64 16 уровней IRQL (от 0 до 15) High/Profile (15) Interprocessor interrupt/Power (14) Clock (13) Synch (12) Device n (11) ......... Device 1 (3) Dispatch/DPC (2) APC (1) Passive/Low (0)
При этом: hardware interrupts 3-15 (3-31) software interrupts 1-2 (1-2) normal thread execution 0 (0)
Наш пользовательский процесс может иметь следующие приоритеты: Idle - 4 Below Normal - 6 Normal -8 Above Normal -10 High -13 Real-Time -24 Внутри процесса мы можем задать приоритет для его потоков: Idle дает итоговый приоритет процесса с потоком 1, кроме real-time, там он его просто снизит до фиксированной 16 Lowest -2 Below Normal -1 Normal 0 Above Normal +1 Highest +2 Time Critical +7
Итоговый приоритет потока - это сумма приоритетов процесса и потока. 31 - максимум Real-Time - от 16 до 31. При этом даже максимальный 31 приоритет не лает нам возможности подняться выше уровня Passive/Low(0), поэтому любое прерывание на нашем ядре прервет нашу программу.
Борьба с прерываниями. Бороться надо двумя путями. Первый путь - уменьшить само количество прерываний=их частоту. Частота прерываний за 1 секунду до 10000 считается еще неплохой. Второй путь - уменьшить длительность прерываний. Есть еще третий путь - освободить от прерываний нужные нам ядра.
Первое и самое главное. Установка максимально облегченной и очищенной системы. Если хватит windows 10, то лучше ставить ее. 23H2 лучше, чем 24Н2. Отключить динамический таймер. Поднять, а не снизить время для системного таймера до 15,625 мс! Если снизим до 0.5 мс, то увеличим количество прерываний. Но тут вступает в действие многозадачность винды. 1/4 времени отдается фоновым процессам. Минимум - это 6 тиков=2 кванта Полностью вырубить все фоновые процессы на винде мы не сможем. Для 120 кадров нам нужно иметь перерыв не больше 1/120=8.(3) мс. Поэтому подходит время для системного таймера только 0.5 мс /1 мс и условно 2 мс , так как 2 мс*2=4 мс. Внести в реестр для глобальной настройки системного таймера (работает только для win 11) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel] "GlobalTimerResolutionRequests"=dword:00000001"
Отключить VSYNC. Включить тройную буферизацию если процессор успевает рендерить, то компенсирует воемя двух кадров: 2*1000 мс / частоту кадров в Гц Краткий список исследований по психофизиологии: Watson (1986): Задержки <5 мс незаметны. Kelly (1979): Порог фликера <2 мс. Burr & Ross (1982): 10% кадра = 100мс/частоту кадров (при движении). Clayton (2018): 1–2% кадров= 1000мс*процент пропуска кадров (10–20 мс/с) незаметно. Carrasco (2011): <5–10 мс при внимании. Hoffman et al. (2017): <3 мс с размытием. Swafford et al. (2016): <4 мс, 2% (20 мс) при редких фризах (реже 1 раза в секунду). Digital Foundry (2025): 0.125 фриза/с=0.125*1000мс/частоту кадров Гц) заметно при частых повторениях.
Для 120 Гц: 1982-0.833мс 2025-1.042мс
Снизить частоту опроса мыши до 125Гц.
Главные правила для таймеров: Таймеры используются для времени (QPC) и для системных прерываний=тиков.
useplatformclock disables TSC and uses the platform source clock instead (HPET or PMT). PMT is used when HPET is disabled in BIOS. useplatformtick disables TSC tick and uses the platform source tick instead (RTC). Does disabledynamictick work when useplatformtick is used? No, it does not do anything since RTC is not a dynamic tick counter.
При этом возможны разные комбинации таймеров.
TSC + TSC without desync: bcdedit /deletevalue useplatformclock - bcdedit /deletevalue useplatformtick (make sure HPET is enabled in BIOS) TSC + RTC: bcdedit /deletevalue useplatformclock - bcdedit /set useplatformtick Yes HPET + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is enabled in BIOS) PMT + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is disabled in BIOS) Частота HPET 14.318180 MHz, в 4 раза выше частоты ACPI PM Timer. RTC устаревший тайминг с частотой от 2-х до 8192 Гц. Использует кварц 32.768 KHz HPET требует больше времени на вызов, чем TSC или PM Timer, но это важно только для системных прерываний. HPET и PM timer находятся в южном мосте. TSC в процессоре. Поэтому вполне допустима комбинация HPET (для времени QPC)+TSC (для тиков).
bcdedit /set useplatformtick no (отключаем RTC и включаем TSC для тиков) bcdedit /set useplatformclock no (отключаем HPET и включаем TSC для времени QPC) bcdedit /set disabledynamictick yes (отключаем динамическое изменение частоты системного таймера - влияет только на тики) bcdedit /set tscsyncpolicy Enhanced (включаем улучшенную синхронизацию TSC-таймера) HPET не следует отключать в биосе и в диспетчере устройств. Посмотреть текущую конфигурацию можно с помощью команды bcdedit /enum
Обсуждение проблем ОС и оборудования: задержка реакции системы (latency), микроcтаттер, инпутлаг, фризы.
Перед тем как задавать вопросы, просьба прочитать FAQ
Осуществлять мониторинг программойLatency Monitorнужно в течение 1 минуты, в состоянии простоя системы т.е. без дисковой, сетевой активности, и любой другой, с выключенным ав и приложениями в трее и автозагрузке, не раньше чем через 2 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Agiliter ну и? Я тоже могу такое показать с играми и udp пакетами в них это никакой связи не имеет практически и полезной нагрузки не несет. Вообще эта тема не очень подходит для обсуждения данной проблемы)
насчет питания - влияние плохого качества электрической сети на задержку, в отношении роутера вполне допускаю, влияние же на комп представляется маловероятным. дело в том что напряжение сети после входа в блок питания (БП) претерпевает несколько преобразований. сначала входное напряжение фильтруется специальным фильтром стоит либо на плате БП, либо отдельный блоком прямо на входном разъеме. Этот фильтр фильтрует импульсные помехи. Далее напряжение выпрямляется и опять фильтруется сглаживающим конденсатором после выпрямителя, далее это постоянное напряжение преобразуется в переменное с высокой частотой порядка 15-50кГц т.е. это в 500-1000 раз больше чем частота в сети 220В Далее это напряжение идет на понижающий трансформатор, где понижается в 15-50раз, после этого выпрямляется и снова фильтруется сглаживающими конденсаторами, причем тут они уже достаточно большой емкости. Ну и еще как правило есть конденсаторы на матери и на платах расширения...
Другое дело что у людей которые использовали внешние фильтры питания, каковым можно считать и преобразователь с чистым синусом на выходе, в результате могла решаться проблема не правильного заземления или вообще его отсутствия. Вот это представляется мне наиболее вероятным и кстати качественное заземление чрезвычайно важно для компа передающего и принимающего сигналы от сторонних устройств.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
iG0Lka писал(а):
результате могла решаться проблема не правильного заземления или вообще его отсутствия.
вот тут спорно, по крайней мере о влиянии заземления на кривой хитрег в сетевых играх. Люди в деревнях живут или в частном секторе, где заземления и в помине нет и у них таких проблем и в помине нет, все четко.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Agiliter писал(а):
то все ваши манипуляции - плацебо
Речь была о потерях пакетов в оптическом терминале, из-за проблем конкретно с его питанием- его бп- с розеткой которая подключена к щитку. А такие вещи имеют место быть- на pda форуме - инженера ростелекома сталкивались с такими случаями. Отсюда и копание в эту степь.
И как сказал OLD Hunter сегодня это не актуально, и ничего не показывает, может быть идеальное прохождение, нет потери пакетов- на всём маршруте, минимальный пинг и малое количество прыжков до сервера, сам сервер мощный с высоким тикрейтом, а в итоге- хитрег никакой- хуже да-же чем на мобильном интернете.
На мобилке с пингом 150- хитрег и то лучше,почти такой как надо.
Advanced member
Статус: Не в сети Регистрация: 29.03.2017
Если аппаратная проблема есть, то она будет фиксироваться любыми пакетами, а не избирательными. Или вы думаете у вас какие-то особенные фотоны по оптике гонять будет? Вы случайно аудиофилией не страдаете заодно?
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Agiliter писал(а):
Вы случайно аудиофилией не страдаете заодно?
Нет не страдаю)))), супер бескислородную медь или спец провода не покупаю-выискивая мельчайшие нюансы, но для аудиоаппаратуры тем не менее, качество питания и проводов- качество пайки и экранирование ,хорошая земля, влияет как на качество воспроизведения так и на запись.
Добавлено спустя 38 секунд:
Agiliter писал(а):
Я вам дал нормальные инструменты для диагностики. То что вы приводите - погода на марсе.
зачем мне ваш инструмент, если это выполняет стандартный tracert и ping ))) - нет у меня ни потерь на всех точках маршрутах ни проблем
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
вот кстати видео топикстартера с наг форума, по ссылке выше. осторожно, ненормативная лексика
видео я так понимаю свежее, от лета этого года. фпс зашкаливает, потерь нет, но и реги нет. И это не проблема сервера, такое везде, и не только в этой игре. Если у тебя такой инет ни о какой соревновательной игре уже не может идти и речи, да даже игра на паблике не принесет удовольствия, т.к играешь не в игру сражаясь с противником, а со своим инетом.
Advanced member
Статус: Не в сети Регистрация: 29.03.2017
kiberman Да и это можно измерить. От того что вы вместо музыки пустите по проводам другой сигнал ничего не поменятся. Характеристики сети можно измерить в любом случае. Как и состояние сети. Без разницы какие пакеты там гонять. Если проблема возникает под нагрузкой, то дайте нагрузку и под ней трассировку делайте. Если проблема со стороны сервера или где-то далеко от вас, то бесполезно пытаться что-то делать у себя. Это как пытаться починить звук соседа крутя у себя микшер...
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Agiliter писал(а):
Если проблема со стороны сервера или где-то далеко от вас, то бесполезно пытаться что-то делать у себя. Это как пытаться починить звук соседа крутя у себя микшер..
Это понятно, проблема вылезла после увеличения количества абонентов
- на adsl 5 мгбит- был идеальный хитрег, просто 1 в 1, был правда пожар в щитке и шахте на этаже ниже потом)))). После 24-26 числа, проверю в другом доме. Если там так-же будет, то или шейпят торренты, а они насколько я знаю перешли на udp.
Вообще игровой и торрент траффик внутри маршрутов провайдера или магистралов, не является же приоритетным траффиком по сути.
Посмотрим ещё до 2022 года Ростелеком планировали техническую модернизацию оборудования.
Добавлено спустя 2 минуты 11 секунд:
OLD Hunter писал(а):
Если у тебя такой инет ни о какой соревновательной игре уже не может идти и речи, да даже игра на паблике не принесет удовольствия, т.к играешь не в игру сражаясь с противником, а со своим инетом.
Да очень похоже, не реагирует совсем или реагирует с задержкой..
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Agiliter писал(а):
Характеристики сети можно измерить в любом случае.
вот именно, характеристики, и уж совсем какие-то жесткие проблемы, вроде большой потери пакетов. А вот огромные задержки(не пинг) и плохую регистрацию с рассинхронами можно увидеть только в игре. А замерить это никак нельзя ибо нет инструментария. Можете прочитать тему на наг там 29 страниц и посмотреть видео выше что происходит обычно на плохом инте для игр, но все тесты которые есть, показывают идеальную картину. Скорости запредельные, потерь 0. Даже мониторинг в игре не показывает проблем. Просто человеку, который не сталкивался с данной проблемой сложно что-то объяснить. Если бы мне лет 10-12 назад рассказывали что-то подобное, я бы не поверил. Т.к. тогда по сети у меня игры(тот же кс) шли лучше чем по локалке с ботами, с ботами фпс проседал, а на живом сервере нет(комп был слабый), а регистрировало тупо все, как если бы это была оффлайн игра. Я тогда и представить не мог что может быть какая-то плохая регистрация или ее отсутсвие, или же невозможность чувствовать и контролировать оружие из-за задержки.
kiberman создай тему по этому поводу, наверно надо тут Локальные сети и Интернет если коротко, тоже на адсл было все ок, и с примерно с 2007 такая херня во всех онлайн играх.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
brot3 писал(а):
создай тему по этому поводу, наверно надо тут Локальные сети и Интернет если коротко, тоже на адсл было все ок, и с примерно с 2007 такая херня во всех онлайн играх.
Попробую после 24-26 числа. Хочу проверить в другом доме-прежде чем создавать что-то.
И собрать какое-то faq, ну хотя бы практическую базу, а то местные "сетевики админы" меня "загрызут"- что это все выдумки- что приведет к срачу и "переливания воды" из "пустого в порожнее".
Нет базы и инструментария, для того что-бы это показать например инженерам кто сидит у провайдера на оборудовании- что это такое-если он сам никогда не играл в сетевые игры.,
Как и сказал OLD Hunter - Объяснить будет сложно человеку который с таким не сталкивался. А так как для провайдера это не доказуемо - и не существенно, то и решать этот вопрос не будут. Пока не будет массового ухудшения у всех.
Ну так это массово, просто не все понимают, что у них так. Думают, что это сетевой код игры говно и тд и тп. А срач будет, поэтому нужна модерка или как там, куратор темы.
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
OLD Hunter писал(а):
Даже мониторинг в игре не показывает проблем.
Я на эту тему уже списывался с ответственным за сетевой код в Сурвариуме. Хоть пакеты и шлются по udp "на деревню дедушке" (в сравнении с tcp), всё равно отслеживать их можно и очень просто: к id пакета в сам пакет добавляется ещё один id с каунтером сколько и чего из игровых сущностей отправляется (например, это пуля 1 из очереди, это пуля 2, затем 3...) и сколько уже было отправлено какое-то время назад (кросс проверка). Сервер анализирует (не обязательно всегда - можно периодами), сколько и вовремя ли было получено и сообщает клиенту о "качестве его связи" в реальных условиях (в идеале - может даже делать подстройку искуственной задержки по среднему). Но! Всего этого не реализовывают, т.к. больше "лишних" вопросов от игроков и проблем это вызывает, чем если спускать проблему на тормозах "в неведении" и разводить руками "ничего не поделать". (заранее извиняюсь, если очень криво пояснил)
Добавлено спустя 5 минут 3 секунды: И про пингование под нагрузкой - выше верно сказано. Опять же: пингуете-то по tcp?...
Advanced member
Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
kiberman писал(а):
по тестам у меня сейчас так
ну вот смотри у тебя buffer bloat на upload какойто нереально огромный (красная скобка на графике)... про то что это такое
kiberman писал(а):
на это я повлиять не могу)))
вообще то можешь. например изменить размер пакета, или изменить настройки сетевой карты. у меня к слову buffer bloat на всех колеблется от 0 до 5мс http://www.dslreports.com/speedtest/56528470 на графике это красные скобки над столбиками. Поройся вот тут может быть найдешь что полезное - https://www.bufferbloat.net/projects/
OLD Hunter писал(а):
вот тут спорно, по крайней мере о влиянии заземления на кривой хитрег в сетевых играх. Люди в деревнях живут или в частном секторе, где заземления и в помине нет и у них таких проблем и в помине нет, все четко.
ничего тут спорного. в деревне и помех может не быть или перекосов по напряжению, как в многоквартирном доме. одно делдо когда сигнал передается между двумя заземлеными устройствами и другое дело когда оба не заземлены или одно заземлено. тогда на сигнал могут пролезать помехи с сети 220В ибудет зависеть уже от способности устройств, тех же роутеров избаялться от них. грубо говоря если есть заземление обоих компов то напряжение между двумя корпусами этих компов будет не больше 1В, а скорее меньше. а вот если заземления нет то напряжение будет колебаться от десятка до сотни вольт и сигнал будет жить на этой "подставке"
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения