Все прерывания делятся по следующим приоритетам: 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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Вообщем вроде нашел где искать файл подкачки- Компьютер-свойства-дополнительно Короче там у меня стоит 5 гигов на всех дисках, это нормально? Или нужно поставить принудительно на определенный диск и гигов 10?
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Eddisson178 писал(а):
Или нужно
Не нужно-он есть и его достаточно. Ищите проблему фризов с периодичностью 40 мин в системе/софте- посмотрите логи виндовс и установленных приложений в этот промежуток времени,когда происходит фриз-что запускается или что отвлекает систему. проверьте целостность ос sfc /scannow-в cmd от администратора. Проанализируйте автозагрузку на предмет сбойного софта,и исключите трояны,майнеры-любое вредоносное По.
Нету ничего не помогло Как под фризивало так и продолжает. Походу это DPC latency У меня есть найсхеш, но я его выключаю и все равно фризит раз в 30-40 минут. На прошлой карте gtx 980 такого не было, наверное продам 1080Ti и куплю Вегу
ps: Те у кого были проблемы с DPC latency как вы его вылечили?
Народ а может такое быть что у меня биос не корректно определяет оба жестких диска? и типа из за этого фризы Кто знает как проверить правильно ли установлены и определены биосом мои SSD?
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
Eddisson178 писал(а):
Народ а может такое быть что у меня биос не корректно определяет оба жестких диска? и типа из за этого фризы Кто знает как проверить правильно ли установлены и определены биосом мои SSD?
Определять диски биос может лишь как есть и как ему пользователь разрешения (опции) настроил. Возможно вы вместо нужных AHCI или Raid включили ему старый Legacy или т.п. - тогда да, может. Но это должно отражаться на общей скорости постоянно, а не раз в "пятилетку".
TSC! Russia member
Статус: Не в сети Регистрация: 31.08.2005 Откуда: Петербург Фото: 0
Eddisson178 писал(а):
Народ а может такое быть что у меня биос не корректно определяет оба жестких диска? и типа из за этого фризы Кто знает как проверить правильно ли установлены и определены биосом мои SSD?
Это довольно редкое событие. Аппаратные ошибки, известные "ширнармассам" были только два раза - Asus облажалась с серией плат P5K на P35+ICH9R, WD и Samsung на них фризили, Hitachi и Seagate работали нормально. И баг с чипсетом уже от Интел в чипсетах шестой серии.
_________________ www.btbooks.ru, www.forums.btbooks.ru - официальный русскоязычный фансайт Battletech
Раз в 40-50 минут может антивирус стучаться в систему. Еще можно проверить не висит ли с видеокартой еще что-то на одном прерывании. Если памяти 32гига, подкачку надо выключать, иначе система будет автоматом резервировать под своп половину жесткого диска
Leonatorkostik1966beta у меня 2 проблемы: Первая это каждый раз когда у меня игра перезагружаеться в связи со смертью героя или просто идет загрузка уровня, то первые 5 секунд просто дичайшие фризы Даже когда включаю комп то первые пару сек фризит. На прошлой системе с gtx 980+i7 4790k +16 Ram + дешевый HDD такого точно не было. И вторая проблема это просто раз в 20 минут рандомные фризы в call of duty Infinite warfare, Titanfall 2 , Dark souls 3 остальные игры не пробовал пока. Мне кажеться все эти проблемы и есть DPS Latency. Уже отчаился и всерьез надумываю продать 1080Ti и взять Вегу 64 как только появиться
ps: Отключал файл подкачки не помогло, более того стало хуже особенно в call of duty Infinite warfare
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Eddisson178 писал(а):
Мне кажеться все эти проблемы и есть DPS Latency. Уже отчаился и всерьез надумываю продать 1080Ti и взять Вегу 64 как только появиться
ps: Отключал файл подкачки не помогло, более того стало хуже особенно в call of duty Infinite warfare
Подкачку нельзя отключать,да-же если у вас сервер или кластер рабочий на 128 гб или выше. Для служебки он нужен,для многих приложений то-же. Dpc?- Нет тут что-то другое, Проверяйте карту в другой системе,Пк магазинная сборка или кто-то вам собирал-косяки возможны. Что с Бп?-качество напряжений. 1080 ti какая,заводской разгон? Что со здоровьем Жд-не сыпится?? Память если до 1600-2000 опустить фризы меньше?
980ti то-же стоит ?, если да то вытаскиваем из слота и проверяем.
Господа, позвольте вопрос. На сколько же часто встречается эта проблема High DPC Latency? На сколько она актуальна? Потому как оценить по форуму сложно. С одной стороны, если у рядового пользователя всё стабильно работает, он на форум и не пойдет об этом писать. С другой стороны, проблема специфична, и пользователь может грешить на любое звено в ПК.
Advanced member
Статус: Не в сети Регистрация: 29.03.2017
kiberman Пользовался системой 2 года без ФП если для выделения памяти хватает адресного пространства, то никаких проблем не возникает. Ровно 1 приложение отказалось без ФП работать, зато заработало если выставить даже минимальный объём, скорее всего просто выставили проверку на включено ли оно и всё. Организация памяти устроена таким образом: Windows рулит памятью используя виртуальное адресное пространство в которое входит оперативная память и файл подкачки, если вы выключите файл подкачки то это виртуальное адресное пространство станет меньше - всё. Что, где и когда выгружать в ФП решает именно диспетчер памяти винды, а не приложения. Для подавляющего большинства приложений никаких дополнительных условий не существует и они вообще никак не взаимодействуют с этим делом, они взаимодействуют с диспетчером памяти винды. Если приложение не запускается или падает из за недостатка памяти, то обычно это значит, что ОС не смогла выделить этому приложению достаточно памяти. Обратите внимание, что выделение и реально задействованная память это разные вещи, выделить то оно может просить 2ГБ, а использовать только 1ГБ. ФП полезен именно в случае когда у вас множество выделенной памяти никак не используется (а это почти всегда) и диспетчер памяти организует память так, что весь простой будет висеть в ФП, потом память к которой меньше всего обращений, а потом при острой нехватке туда свалятся и активные приложения. Абсолютное большинство приложений не умеет даже в приоритезацию своего процесса, а то что есть приоритеты I\O и памяти многие вообще понятия не имеют, а это далеко не взаимодействие с реальной памятью, это просто указание диспетчеру памяти винды приоритета что с этими данными делать. Astartis Дофига часто, но далеко не всегда это проблема с драйвером Nvidia. Простой способ вызвать эту проблему врубить множество торрентов с кучей соединений и например Касперский с сетевым экраном. Ещё проблемы DPC могут возникать из за кривых драйверов и их взаимодействия, проблемы с железом, кривых рук и прочего. А самое главное, что подавляющее большинство пользователей даже не знает об этой проблеме и даже не подозревает о её существовании как таковой.
Заблокирован Статус: Не в сети Регистрация: 06.05.2016
Agiliter писал(а):
kiberman Пользовался системой 2 года без ФП если для выделения памяти хватает адресного пространства, то никаких проблем не возникает. Ровно 1 приложение отказалось без ФП работать, зато заработало если выставить даже минимальный объём, скорее всего просто выставили проверку на включено ли оно и всё.
Что тогда там GTA Online жрет, если ФП не нужен, 16гб ОЗУ и 9гб ФП -
Вложение:
111.png [ 1.71 МБ | Просмотров: 1767 ]
Просто 9.8 гб сожрала и 12 гб файла подкачки! А если отключить ФП, то через 10 минут игры вылетает сообщение о нехватки памяти) А если на втором мониторе браузер открыть и еще пару программ, то и все 16Гб выжрет и вообще кританёт
ФП не нужен, кудах-тах-тах 🐔🐔
Вложение:
01203023.png [ 23.16 КБ | Просмотров: 1738 ]
Добавлено спустя 4 минуты 8 секунд:
kiberman писал(а):
Подкачку нельзя отключать,да-же если у вас сервер или кластер рабочий на 128 гб или выше. Для служебки он нужен,для многих приложений то-же.
Абослютли! Знакомый монтажом видео со свадьб и праздников занимается, рендерит в сонивегасе, у него экстрим i7-10 ядер и 64гб памяти, может уже больше, так без ФП вылетает окно о нехватки памяти, и весь проект просто крашится, если не забэкаплен.
_________________ синтетические соли помогают нам при боли 😈
Advanced member
Статус: Не в сети Регистрация: 29.03.2017
Я опровергал утверждение, что файл подкачки нужен. Нет в нём жизненной необходимости, ЕСЛИ ВАМ ХВАТАЕТ памяти для работы без него. Вы же приводите пример когда памяти не хватает, забавно. В целом это полезная штука и прежде чем его отключать нужно чётко понимать зачем вы это делаете. Ну и главное вы ни слова не написали по теме. Каким образом отключение фп может вызвать проблемы указанные в теме? Вот теоретически использование файла подкачки на диске который работает с ошибками может вызвать подобную проблему. Хотя я и не буду это утверждать, так в последний раз когда я с таким явлением сталкивался у меня просто система намертво висла.
Member
Статус: Не в сети Регистрация: 09.06.2005 Фото: 45
Eddisson178 писал(а):
ps: Те у кого были проблемы с DPC latency как вы его вылечили?
никак, сегодня первая тишка приедет на замену 1060, поглядим че с будет со звуком на ней и действительно ли это родовое проклятье паскаля. Agiliter +1 полгода как воткнул 24 гига и отключил ФП, траблов вообще не возниает ни в одной игре, даже на 3х гиговой карте в ларе максимальные текстуры ставил и ей хватало. ГТА не пробовал, возможно у них спецефичный кривой движок
Заблокирован Статус: Не в сети Регистрация: 06.05.2016
SINgle84 писал(а):
Agiliter +1 полгода как воткнул 24 гига и отключил ФП, траблов вообще не возниает ни в одной игре, даже на 3х гиговой карте в ларе максимальные текстуры ставил и ей хватало. ГТА не пробовал, возможно у них спецефичный кривой движок
Вложение:
0-22.png [ 18.29 КБ | Просмотров: 1649 ]
Полгода назад ты воткнул, а с какой видеокартой ты играл в каком разрешении и на каких настройках? Ультра и высокое разрешение выжирают оперативку во всех ААА-играх почти. Если на средне-высоких играть в 30FPS то и 8GB хватит оперативки. Это же совокупность факторов различных) Так же версия Windows играет роль (10-ка жрет всё что сунут), сколько программ в autorun и в фоне, и проч.-проч...
Agiliter писал(а):
Я опровергал утверждение, что файл подкачки нужен. Нет в нём жизненной необходимости, ЕСЛИ ВАМ ХВАТАЕТ памяти для работы без него.
Windows пофиг хватает тебе или не хватает, он должен быть включен для полноценной работоспособности системы. Вот и всё
_________________ синтетические соли помогают нам при боли 😈
Сейчас этот форум просматривают: BloodRey, imosjv и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения