Часовой пояс: UTC + 3 часа




Куратор(ы):   eLfiK   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4400 • Страница 220 из 220<  1 ... 216  217  218  219  220
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Member
Статус: Не в сети
Регистрация: 12.10.2016
1. Ликбез по прерываниям.
Все прерывания делятся по следующим приоритетам:
1 место - работает на уровне кольцо -2
прерывания SMI (system management interrupt — прерывание системного управления), которое возникает:
-по сигналу от чипсета или периферии на материнской плате
-программный SMI, посланный системным ПО через порт ввода-вывода
-запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM.
2 место - гипервизор, который работает в кольце -1
3 место - ядро операционной системы - работает в кольце 0
4 место - пользовательский уровень - работает в кольце 3

2. Ссылки.

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), поэтому любое прерывание на нашем ядре прервет нашу программу.


Программы для оценки прерываний:
ETW xperf WPA - родной софт от microsoft
Latency monitor https://www.resplendence.com/latencymon
DPC latency https://www.wagnardsoft.com/forums/viewtopic.php?t=5265


Настройка прерываний


Борьба с прерываниями.
Бороться надо двумя путями.
Первый путь - уменьшить само количество прерываний=их частоту.
Частота прерываний за 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 минуты после загрузки системы.
Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.


Презентация NVIDIA (на англ.) о проблемах статтеров, фризов и лагов (терминология, описание и причины возникновения)


Последний раз редактировалось anta777 16.07.2025 21:44, всего редактировалось 40 раз(а).
Начну редактировать первое сообщение и возьмусь за эту тему.



Партнер
 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 17.05.2021
Откуда: Zanzibar
Фото: 6
anta777 писал(а):
Поднять, а не снизить время для системного таймера до 15,625 мс!
мне тоже этот пункт режет глаз. Наверно следует обозначить в шапке, что производительный режим пк подразумевает постоянные и частые прерывания, соответственно
anta777 писал(а):
Борьба с прерываниями
это борьба с производительностью. А это не совсем то, зачем мы здесь.

_________________
Asus h510m | 10400F | 2666cl13 | 6700XT RD | Be quiet SP 600 | Samsung 980 Pro 512 | FHD&240Hz
Pretty good, huh ?


 

Moderator
Статус: Не в сети
Регистрация: 10.06.2011
Ты читай полностью шапку, а не выборочно.

_________________
TableDRAM(simple+обычная) bit.ly/3rTIBLv bit.ly/32WnkTU
Tm5(ddr4/5) bit.ly/2Oe8R00 bit.ly/2H9jIZH bit.ly/2MUvl6n bit.ly/3wedj8U bit.ly/3STH2wx


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 17.05.2021
Откуда: Zanzibar
Фото: 6
anta777 имхо шапка перегружена инфой, неструктурирована, не раставлены акценты и приоритеты, оттого ваш дружеский
anta777 писал(а):
читай полностью шапку
сходу пугает. Если не трудно, ткните меня носом в конкретный пункт по нашему вопросу.

_________________
Asus h510m | 10400F | 2666cl13 | 6700XT RD | Be quiet SP 600 | Samsung 980 Pro 512 | FHD&240Hz
Pretty good, huh ?


 

Moderator
Статус: Не в сети
Регистрация: 10.06.2011
Вот
Первое и самое главное.
Установка максимально облегченной и очищенной системы.
Если хватит 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"

_________________
TableDRAM(simple+обычная) bit.ly/3rTIBLv bit.ly/32WnkTU
Tm5(ddr4/5) bit.ly/2Oe8R00 bit.ly/2H9jIZH bit.ly/2MUvl6n bit.ly/3wedj8U bit.ly/3STH2wx


 

Member
Статус: Не в сети
Регистрация: 15.09.2008
Фото: 0
anta777
Зачем всё это нужно, если запуск практически любого мультимедийного приложения и так переключает таймер с 15.625 на 1мс? Это прекрасно видно в реалтайме при запущенном ISLC.

_________________
8ulleTin


 

Moderator
Статус: Не в сети
Регистрация: 10.06.2011
Далеко не всегда.

_________________
TableDRAM(simple+обычная) bit.ly/3rTIBLv bit.ly/32WnkTU
Tm5(ddr4/5) bit.ly/2Oe8R00 bit.ly/2H9jIZH bit.ly/2MUvl6n bit.ly/3wedj8U bit.ly/3STH2wx


 

Member
Статус: Не в сети
Регистрация: 13.11.2021
Борьба с прерываниями за счет увеличения задержки системы это абсурд... Для каких задач? Данные методы снизят производительность системы и вы не получите никакой пользы в игровых и рабочих задачах.
Времена твикинга на Windows уже давно прошли... Сейчас тюнинг актуален только на линуксе, но то что здесь в теме описано это ШИЗА, в профессиональных дата центрах где важен минимальные значения DPC latency итд совсем другие методы используются...


 

Member
Статус: Не в сети
Регистрация: 15.09.2008
Фото: 0
Ну вот конкретно в моём случае всё решает вручную модифицированный профиль электропитания.
#77

_________________
8ulleTin


 

Member
Статус: Не в сети
Регистрация: 29.03.2006
Откуда: Germany
Фото: 8
mike-lesnik
Это при без действии?
Скажите это нормально при запущенной игре?Если нет,то куда копать?
Вложение:
latencymon.png
latencymon.png [ 69.75 КБ | Просмотров: 2776 ]

При бездействии всё зелёное.

_________________
asus z170pro,i7 6700k,G.Skill TridentZ RGB F4-3600C16 2X8GB,1080TI FE ,M2:250GB+500GB,HDD:320+500GB,enermax 620w


 

Member
Статус: Не в сети
Регистрация: 15.09.2008
Фото: 0
and00
and00 писал(а):
Это при без действии?

Сёрфинг в интернете при нескольких открытых вкладках баузера, одна с ютубом.

and00 писал(а):
Скажите это нормально при запущенной игре?

По идее нет, но может быть от игры ещё зависит, тут не уверен...

and00 писал(а):
куда копать?

Я у себя копнул в сторону электропитания, открыл скрытые по умолчанию опции программой PowerSettingsExplorer и повысил значения как на скриншоте.

Вот разница при игре в пабг:
#77

_________________
8ulleTin


 

Member
Статус: Не в сети
Регистрация: 08.11.2010
Откуда: Ufa city...
Знающие люди,а как зафиксировать таймер на 15,625 мс,а не 1?! :?:

_________________
ATI 9550->ATI 3650->Radeon 5670->GF 9600->GF 9800GTX+->GF GTS250->GF 460GTX->Radeon 5850->GTX 760->GTX 1060..


 

Member
Статус: Не в сети
Регистрация: 15.09.2008
Фото: 0
FanaT с помощью Intelligent standby list cleaner вроде бы можно фиксировать определённое значение.

_________________
8ulleTin


 

Member
Статус: Не в сети
Регистрация: 17.02.2019
Фото: 0
Хотелось бы узнать, что можно сделать для стабилизации на более низком уровне? За неделю до кризиса памяти собрал еще одну сборку на B650M-HDV/M.2+7500F+4060, нужен был ПК для стриминга, но чисто технически понимаю, что происходит с ним что-то не то. То WDF1000Sys, то нвидиа драйвер, то еще какая-то ерунда на взлет идут.

Вложение:
Снимок экрана 2026-01-07 115656.png
Снимок экрана 2026-01-07 115656.png [ 44.77 КБ | Просмотров: 1220 ]
Как будто проблем нет, но latencymon отчаянно может показывать спайки по с резкими взлетами и падениями, а также почему-то ошибки в страницах которые указывают на защитник Windows (?). Иногда из за этого во время стрима происходят странные замирания, сеть в порядке, точно не сетевая сторона. Т.к если стримить с основного ПК, то проблем нет, буфферизации нет, картинка стабильная. Думал на плату видеозахвата, так она тоже в порядке. Я вот думаю, что это может быть и как диагностировать точно да решить? В первую очередь хотелось бы разобраться с этой ошибкой, которая ниже, хавает ошибки страниц с защитника.

REPORTED HARD PAGEFAULTS
_________________________________________________________________________________________________________
Hard pagefaults are events that get triggered by making use of virtual memory that is not resident in RAM but backed by a memory mapped file on disk. The process of resolving the hard pagefault requires reading in the memory from disk while the process is interrupted and blocked from execution.

NOTE: some processes were hit by hard pagefaults. If these were programs producing audio, they are likely to interrupt the audio stream resulting in dropouts, clicks and pops. Check the Processes tab to see which programs were hit.

Process with highest pagefault count: msmpeng.exe

Total number of hard pagefaults 45
Hard pagefault count of hardest hit process: 38
Number of processes hit: 4


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 17.05.2021
Откуда: Zanzibar
Фото: 6
MurkLyaMurk писал(а):
latencymon отчаянно может показывать спайки по с резкими взлетами и падениями
latmon сам не айс по компактности, и делать выводы по одной проге не комильфо. Попробуй мерять другой линейкой, например dpclatency *от автора DDU, она легче, проще и удобнее на оставить в фоне, сама отфильтрует куда смотреть :
допуски dpclatency (µs)
Вложение:
Снимок экрана 2026-01-07 175404.jpg
Снимок экрана 2026-01-07 175404.jpg [ 38.4 КБ | Просмотров: 1171 ]
тест 1 час серфинга
Вложение:
Снимок экрана 2026-01-07 230857.jpg
Снимок экрана 2026-01-07 230857.jpg [ 128.14 КБ | Просмотров: 1123 ]
интерпретация (gpt5.2)
Вложение:
FireShot Capture 005 - ПК2 - [chatgpt.com].png
FireShot Capture 005 - ПК2 - [chatgpt.com].png [ 172.99 КБ | Просмотров: 1123 ]
Вложение:
FireShot Capture 006 - ПК2 - [chatgpt.com].png
FireShot Capture 006 - ПК2 - [chatgpt.com].png [ 249.1 КБ | Просмотров: 1123 ]
интерпретация (личная)
помню еще в старой latencymeter зеленой зоной считались прерывания до 1ms и желтой до 2ms, я по старинке беру это за норму для своих обычных рабочих сценариев - серфинг, игры и прочий повседнев. Без этой статы в работе разница незаметна, одиночные редкие алярмы не в счет ибо рабочий шум, об этом и шапке упоминается, что обращать внимание следует на частоту а не на макс значение прерываний. Диагностику советую проводить сначала этой прогой, час в серфинге, два под игровой/рабочей нагрузкой. Latencymon для глубокого анализа при явных проблемах. Замеры по паре минут в простое, сразу после ребута и без рабочей нагрузки считаю практически бесполезными, ака охота за попугаями в бенчмарках. Все это имхо.
лечение tcpip
раньше я уже копал tcpip настройками wifi адаптера и вроде помогло в <0.6ms, но сейчас ИИ + dpclatency со своим Event Type задали мне другое направление - "входное" качество интернета от провайдера или роутера. Короч на пробу подключился к другому опсосу на втором роутере и получил <0.2ms за час активного серфинга, ничего не меняя в системе :
Вложение:
Снимок экрана 2026-01-08 232138.jpg
Снимок экрана 2026-01-08 232138.jpg [ 102.59 КБ | Просмотров: 1076 ]

_________________
Asus h510m | 10400F | 2666cl13 | 6700XT RD | Be quiet SP 600 | Samsung 980 Pro 512 | FHD&240Hz
Pretty good, huh ?


 

Member
Статус: Не в сети
Регистрация: 17.02.2019
Фото: 0
disabledynamictick сейчас стоит прописывать или нет? По сути же вреда никакого не даст команда, а только плюсы.

P.S выше проблему решил заменой кабеля HDMI :D


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 17.05.2021
Откуда: Zanzibar
Фото: 6
MurkLyaMurk писал(а):
только плюсы
на уровне плацебо по ощущениям. В цифрах бенчмарков вроде и есть разница в полтора попугая, но не факт что это польза на повседнев + некоторые бенчмарки помечали результат как невалидный. В целях стабильности и чтобы не оставлять подозреваемых за спиной после этих ковыряний в таймерах, я давно выбрал сток и
WhiteRatify писал(а):
Откат на сохранку до всех манипуляций показывает чистый bcdedit без clock/tick значений и таймер TSC со временем в 0,496ms

_________________
Asus h510m | 10400F | 2666cl13 | 6700XT RD | Be quiet SP 600 | Samsung 980 Pro 512 | FHD&240Hz
Pretty good, huh ?


 

Member
Статус: Не в сети
Регистрация: 17.02.2019
Фото: 0
WhiteRatify ну куратор темы советует такие вещи, я не знаю насколько они реальные.

Прерывания в Windows, их виды, способы уменьшения. #18470914


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 17.05.2021
Откуда: Zanzibar
Фото: 6
MurkLyaMurk мы как то уже спорили с ним этот счет. Для себя я понял, что позиция куратора - максимально соответствовать названию темы - уменьшение прерываний, и в своих советах он исходит из этого тезиса, а не из того что нам действительно нужно. Эт только мы сами решаем и даже не всегда знаем что нам хорошо а что плохо, пока не попробуем. По мне работа пк это куча прерываний, уменьшение прерываний - уменьшение работы, и замеры прерываний
Лангольер писал(а):
в состоянии простоя системы т.е. без дисковой, сетевой активности, и любой другой, с выключенным ав и приложениями в трее и автозагрузке,
вызваны необходимостью выявить аномалии и баги, а не целью задушить все процессы в системе для красивой статы. Нужно в баланс а не в крайности, типа того.

_________________
Asus h510m | 10400F | 2666cl13 | 6700XT RD | Be quiet SP 600 | Samsung 980 Pro 512 | FHD&240Hz
Pretty good, huh ?


 

Member
Статус: Не в сети
Регистрация: 17.02.2019
Фото: 0
WhiteRatify Ну я потестил все эти команды, короче чушь полная, никакой разницы нет на фрейтайм.


 

Member
Предупреждение 
Статус: Не в сети
Регистрация: 10.01.2013
Откуда: Баку
Всё нахер, (голосом Гаврилова) "Рядовой Свенсон стрельбу закончил, сэр" :D
LatencyMon
#77

Всего лишь один день насилия над собой и компуктером:)

Добавлено спустя 22 минуты 46 секунд:
Секрет успеха :D
#77


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4400 • Страница 220 из 220<  1 ... 216  217  218  219  220
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Leo_Yuriy, silach84 и гости: 5


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

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan