Вопрос или проблема
Это вопрос-продолжение к вопросам о conhost.exe и csrss.exe
В данный момент я использую компьютер с Windows 7 x64 и относительно мощной видеокартой (GTX 970 4 ГБ). Windows Aero включен. Я использую Process Explorer для изучения этого случая.
У меня запущены два процесса csrss.exe
, оба с правами SYSTEM, один в сеансе 0, другой в сеансе 1. У меня есть файлы csrss.exe
как в правильных директориях. Используя Process Explorer, я вижу, что моя видеокарта используется только процессом csrss.exe
. Процесс csrss.exe
в сеансе 1 использует видеокарту. При более тщательном исследовании потоков процесса были обнаружены следующие .dll
файлы:
Cdd.dll
Winsrv.dll
Csrsrv.dll
Cdd.dll – канонический драйвер отображения особенно важен здесь, как объясняется ниже в некоторых полезных комментариях, которые мне предоставил добрый пользователь.
В DWM вызовы GDI перенаправляются на использование канонического драйвера отображения (cdd.dll), программного рендерера.
Так что, возможно, csrss.exe
действительно перенаправляет вызовы на cdd.dll
. Это дополнительно подтверждается, если вернуться к первой статье в Википедии: вместо того, чтобы выдавать системный вызов, библиотеки Win32 (kernel32.dll, user32.dll, gdi32.dll) отправляют межпроцессный вызов в процесс CSRSS, который выполняет большую часть фактической работы, не ставя под угрозу ядро. Таким образом, вызовы приложения к gdi32.dll
(которые будут касаться всего, что отображает какой-либо графический компонент Windows, например, кнопки, ползунки, текст и т. д.) попадают в csrss.exe
через IPC, который затем перенаправляет их на cdd.dll
.
Таким образом, dwm.exe
, который я предположил, будет использовать видеокарту, на самом деле каким-то образом отображается через csrss.exe
.
Таким образом, это хотя бы частично объясняет ситуацию. Когда я нахожусь на рабочем столе, использование GPU составляет > 0.01%. Однако, если я взаимодействую с определёнными элементами интерфейса программы, например, при наведении на графики GPU, чтобы вызвать подобные оконным интерфейсам элементы, или наведении на части интерфейса Steam (Steamworks – это клиент DRM для видеоигр), использование GPU для csrss.exe
повышается, может быть на несколько процентов, и в зависимости от происходящего, например, при быстром наведении на графики Process Explorer, оно может достигать 15-20%.
Я выделил процесс csrss.exe
и нажал Ctrl+H. Я нашёл потоки, связанные с procexp64.exe
, steamwebhelper.exe
(отображает веб-API для steam.exe
, который также находится под этим csrss.exe
), explorer.exe
, dwm.exe
и всё, что казалось, могло бы создавать оконные/стоковые элементы интерфейса.
Я попробовал безопасный режим и создание новой стандартной учетной записи пользователя, но всё равно наблюдал то же самое активность.
Мой вопрос заключается в том, является ли эта активность нормальной? Csrss.exe, похоже, увеличивает свой дельта-цикл при движении мыши, и когда я навожу курсор на подобный интерфейс. Является ли причиной использование курсора над определёнными элементами Aero или программами вроде Steam, которые могут использовать определённые элементы Windows, повышение использования GPU под csrss.exe
, поскольку именно этот процесс вызывает cdd.dll
? Как я уже сказал, в режиме бездействия использование GPU незначительно, что, я думаю, подтверждает отсутствие злонамеренной активности. Я не испытываю проблем с производительностью при запуске высококлассных игр с включенным Aero, но мне интересно, является ли это нормальной активностью для мощного компьютера.
Должен ли csrss.exe
использовать GPU таким образом, когда вызываются такие вещи как cdd.dll
и winsrv.dll
?
Характеристики:
- I5 3570k
- GTX 970 4 ГБ
- 8 ГБ ОЗУ
- Windows 7, 64 бита
У меня только что возникла такая же проблема. Я собирался завершить процесс csrss.exe
, но затем заметил одну вещь в Диспетчере задач. Часть видеокодировщика GPU была в использовании.
Так что проблема была в том, что мой AMD Radeon Crimson ReLive выполнял нечто под названием ‘Мгновенное воспроизведение’, в котором игровой процесс последних нескольких минут постоянно записывается. Хотя я отключил ‘Запись рабочего стола’ в настройках, он всё равно продолжал запись. Так что это оказалась просто ошибка, которая использовала GPU.
Кратко:
Отключите Мгновенное воспроизведение. Как отключить это? Это зависит от того, какое программное обеспечение для записи/стриминга установлено на вашем ПК. Просто найдите в Google.
Замечание:
Если отключение Мгновенного воспроизведения не решает проблему, или оно уже ОФФ, или у вас нет программного обеспечения для стриминга, возможно, ваш компьютер инфицирован вирусом или чем-то подобным.
Ответ или решение
Пояснение о работе CSRSS.EXE с GPU
В данной статье мы рассмотрим работу процесса csrss.exe
в контексте его взаимодействия с графическим процессором (GPU) на примере системы Windows 7 x64 с установленной видеокартой GTX 970 на 4 ГБ памяти. Мы проанализируем, как этот процесс использует графику, какие библиотеки влияют на его поведение и, наконец, рассмотрим, является ли такое поведение нормой.
Кто такой CSRSS.EXE?
CSRSS.EXE
(Client/Server Runtime Subsystem) – это критически важный процесс в операционной системе Windows, ориентированный на управление сеансами и взаимодействие с графическим интерфейсом. Он отвечает за управление окнами и GDI (Graphics Device Interface) вызовами, а также за их обработку через межпроцессное взаимодействие (IPC) с другими процессами, такими как explorer.exe
и dwm.exe
(Desktop Window Manager).
В вашей системе функционирует два экземпляра csrss.exe
, работающие в разных сеансах: один в сеансе 0, другой в сеансе 1. Это вполне нормально для Windows, где каждому пользователю отводится свой сеанс.
Взаимодействие с GPU
Обратим внимание на библиотеки, загруженные в csrss.exe
, такие как cdd.dll
, winsrv.dll
и csrsrv.dll
. Это важно, так как cdd.dll
(Canonical Display Driver) отвечает за переадресацию вызовов GDI к программному рендереру.
- GDI и cdd.dll: Все вызовы, связанные с графикой в Windows, проходят через GDI. Вместо выполнения системных вызовов, Windows библиотеки (например,
kernel32.dll
,user32.dll
,gdi32.dll
) отправляют IPC запросы вcsrss.exe
, который обрабатывает их и передает дальше черезcdd.dll
. Это объясняет, почему вы видите использование GPU именно подcsrss.exe
, особенно когда вы взаимодействуете с графическими элементами интерфейса.
Повышенное использование GPU
Вы отметили, что использование GPU csrss.exe
возрастает при взаимодействии с интерфейсом, например, при наведении курсора на элементы. Это вполне нормально; процессоры могут потреблять дополнительные ресурсы при обновлении графики или перерисовке интерфейса.
- При взаимодействии с элементами интерфейса, такими как панели задач или окон, Windows вызывает дополнительные графические команды, которые обрабатываются через
csrss.exe
иcdd.dll
. Это создает временное увеличение загрузки GPU, что вполне ожидаемо.
Параметры производительности
Ваш шум в производительности, связанный с csrss.exe
, не вызывает опасений, особенно при отсутствии значительных задержек или других проблем. Если вы не замечаете проблем при запуске игровых приложений и ваша система стабильно работает с Aero активированным, то это поведение является нормальным.
Проблемы и их разрешение
В вашем случае стоит учитывать возможные проблемы, как это было указано в комментарии к вашему вопросу. Например, активные функции записи из программного обеспечения могут приводить к дополнительной нагрузке на GPU даже без видимых причин. Если вы столкнетесь с аналогичными проблемами в будущем, рассмотрите возможность отключения функций, подобно "Instant Replay", которые могут незаметно использовать ресурсы.
Заключение
Суммируя, использование csrss.exe
для управления графическими вызовами и взаимодействия с GPU является нормальным явлением для Windows 7 x64 с активированным Aero. Вы наблюдаетесь поведение, соответствующее работе системы, с учетом её архитектуры и особенностей обработки графики. Если вы не испытываете изменений в производительности своих приложений, можете быть уверены, что эта активность не свидетельствует о наличии вредоносного ПО.