Утечка памяти в Windows 10 — теги (poolmon) FMic и Irp — невыгружаемый пул на 5,7 ГБ
Так что в последнее время я замечаю чрезвычайно высокое использование памяти. Только с Chrome с 20 открытыми вкладками я получаю 13,5 / 16 ГБ используемой памяти. Диспетчер задач сообщает, что Chrome использует только около 3 ГБ памяти. Все остальные процессы, о которых сообщается в диспетчере задач, вместе составляют менее 1 ГБ дополнительной памяти, так как большинство из них используют от 10 до 50 МБ.
Я использовал RamMap для получения более подробной информации и обнаружил, что пул невыгружаемых страниц чрезвычайно высок — 5,7 ГБ. Вот изображение RamMap .
Я использовал poolmon и обнаружил, что две вещи занимают огромное количество невыгружаемого пула. Вот изображение Poolmon .
В соответствии с поиском по тегам Google и этим списком, вот для чего предназначены эти 2 тега :
- FMic — fltmgr.sys — структура IRP_CTRL
- Irp — неизвестно — Io, пакеты IRP
Но теперь я зашел в тупик. Я видел другие подобные вопросы, но ни один из них не касается этих тегов. Проблема других людей обычно исходит от водителя, и они могут просто обновить его. Но в этом случае я не знаю, как это исправить.
Я нашел файл fltMgr.sys в C: Windows System32 drivers, но, похоже, это дело Microsoft. В разделе « Свойства» -> «Сведения» его имя — «Операционная система Microsoft Windows», а описание файла — «Диспетчер фильтров файловой системы Microsoft». т.е. это не просто драйвер, который я могу обновить.
Что касается тега Irp, я понятия не имею.
Какие-либо предложения? Где я могу взять это отсюда и что я могу сделать?
РЕДАКТИРОВАТЬ 03/03/18 : Я не владею NIC Killer.
Я использовал xperf для записи, и я дошел до этого . Не совсем уверен, куда идти отсюда, или я мог бы загрузить файл .etl, хотя он довольно большой, поэтому не уверен, куда. Дайте мне знать, если загрузка будет полезна.
Это может быть через 40 минут после перезагрузки и уже имеет 517 МБ невыгружаемого пула.
РЕДАКТИРОВАТЬ 03/03/18 # 1 : пул невыгружаемого в настоящее время в 1 ГБ после дня. Кажется, он увеличивается со скоростью
1 ГБ в день. Выход fltmc можно найти здесь .
Что касается Irp — я не пользуюсь антивирусами или программами резервного копирования, если не считать Защитника Windows. Однако я использую символическую ссылку с моего диска C: (SSD) на мой диск F: (HDD) для папок кеша Google Chrome и Skype, так как они вызывали запись 20 ГБ в день на диск, который я не хотел на мой SSD. Этот кэш работает нормально и записывается на мой жесткий диск просто отлично, хотя я не думаю, что это приведет к сбою ввода-вывода.
У меня также есть массив Raid 0 из 2 жестких дисков (по 1 ТБ каждый), созданный через встроенные пространства хранения Windows, а не через BIOS или что-то подобное. Я не думаю, что это также может иметь какое-то отношение к IRP ?
Наконец, я также записываю свой игровой процесс, когда играю в видеоигры. Он автоматически запускается в фоновом режиме, как только я запускаю игру, используя клиент под названием Plays.TV. Но опять же, это успешно, и я не понимаю, почему запрос ввода-вывода будет выдан, но не завершен. Видео заканчивает запись, как только я выхожу из игры.
РЕДАКТИРОВАТЬ 03/03/18 # 2 : Я использовал, typeperf «MemoryPool Nonpaged Bytes» -si 20 -o npptracker.csv а затем представил результаты в соответствии с предложением @HelpingHand. Я также аннотировал график всеми событиями, чтобы вы могли видеть, какое действие соответствует байтам с невыгружаемым содержимым, прыгающим вверх или вниз. Вот график. На нем вы можете увидеть несколько вещей, которые вы не узнаете:
- PUBG — сокращение от PlayerUnknown BattleGrounds, это видеоигра, в которую я недавно играл
- Plays.TV — клиент для записи видео, который автоматически начинает запись, как только я вхожу в игру, и останавливает запись, когда я ее покидаю. Он также записывает метаданные для некоторых игр и размещает их на временной шкале видео в качестве маркера, например, я буду видеть маркеры на временной шкале в моменты, когда я кого-то убивал. Эти метаданные записываются в файл .framelets .
- Twitch.tv — сайт для потоковой передачи
- Бот для браузерной игры — просто бот, который выполняет HTML-запросы. Он длится от 30 до 60 минут за раз, и я уверен, что это не даст результатов.
Как вы можете видеть на графике, я использовал Xperf с помощью следующей команды около 7 минут: Xperf -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree+PoolAllocSession+PoolFreeSession -BufferSize 1024 -MinBuffers 256 -MaxBuffers 256 -MaxFile 1024 -FileMode Circular
Это произвело 1GB файл .etl, который я заархивировал и загрузил здесь (80 МБ) .
Наконец, я poolmon снова использовал через 2-3 минуты после того, как остановился xperf . Я забыл поместить это на график времени. Вот изображение результата.
Причины ошибки
Данная проблема качует еще с Windows Server 2008 R2, а может быть и раньше. Ниже я попытаюсь рассказать, что может быть полезным. Когда я увидел данную ошибку подключения к терминальному серверу, то первым делом я полез в консоль управления RDS фермой. Если вы не помните, то делается это из оснастки «Диспетчер серверов».
Мне было интересно, нет ли случайно на текущий момент у пользователя активной сессией, помните, такое уже было, когда мы видели ошибку «Задача, которую вы пытаетесь выполнить, не может быть завершена». Там в диспетчере задача висел зависший профиль пользователя в виде (4).
Как подробно выкидывать сессии с именем (4) я уже рассказывал
Попав в настройки коллекции служб удаленных рабочих столов, я произвел фильтрацию по активным сессиям и обнаружил нужного пользователя.
Я попытался выкинуть пользователя, сделав ему (Выйти — Log Off). Это не дало эффекта, сессия все так же висела, сделать «Отключиться (Disconnect)» так же не привело ни к каким действиям. Так же вы можете использовать для принудительного разлогирования учетной записи (4) утилиты qwinsta, tasklist, reset session и Stop-TSSession.
- Как завершить сессию пользователя на терминальном сервере
- На терминальном сервере висит выход из системы
Дай думаю тогда зайду на сам узел сеансов удаленных рабочих столов (Session Host). Кто не помнит, как подключаться к нужному хосту сервера терминалов, прошу посетить ссылку слева.
Зайдя на Session Host, я пользовательскую сессию просто не обнаружил в диспетчере задач Windows, значит в настройках коллекции есть, а тут нет, и выкинуть ее не получается. Перезапуск оснастки «Диспетчер серверов», так же не дал результата.
Помня золотое правило Microsoft, семь бед, один ресет, я решил данный хост вечером перезагрузить, когда уже все закончат работу. Чтобы это правильно сделать, нужно закрыть новые подключения к нему, чтобы новые пользователи не могли к нему подключиться. Делается это из настроек коллекции RDS фермы. Выбираете в списке «Серверы узлов (Host Servers)», щелкните по нему правым кликом и выберите пункт «Не разрешать новые подключения (Do not allow new connections)». В итоге на против вашего узла сеансов удаленных рабочих столов, сменится статус с «Истина (True)» на «Ложь (False)». Что будет означать, невозможность новых подключений.
Сделал я это и забыл, стал ждать вечера, чтобы перезагрузить сервер. Проходит минут 10 и что я вижу, что пользователь пропал из активных подключений в оснастке управления коллекциями терминальных серверов. Я попросил его попробовать подключиться к терминалу, и все успешно было выполнено. Видимо какой-то был глюк в связке посредника подключений (connection broker) и узлом подключения, который не правильно отдавал информацию, о сессиях.
Как не допустить перегрузки ОП
Чтобы не допустить в будущем повторного появления проблем с ОП, придерживайтесь следующих правил:
- как только надобность в программе пропадает, закрывайте её. Чем меньше запущено приложений, тем меньше нагрузка на ОП;
- не устанавливайте лишние программы. В выключенном состоянии приложения не занимают ОП, но они могут запускать фоновые процессы, о которых вы не будете знать, но на объёме ОП это скажется;
- проверяйте хотя бы раз в месяц компьютер на вирусы;
- используйте функцию автоматической очистки ОП, предоставляемую многими сторонними программами.
Оперативная память отвечает за хранение задач и часто используемых файлов. Если она слишком загружена, компьютер начинает зависать. Освободить её можно, закрыв лишние программы, очистив автозагрузку, удалив вирусы, перезапустив проводник и прибегнув к помощи сторонних приложений.
Денис Долгополов
Внимательный пользователь Windows 10 наверняка заметил, что с недавних пор ОС стала потреблять слишком много оперативной памяти. При открытии пакета программ (например, браузера, MS Word, Adobe Photoshop и др.) утечка памяти может составлять аж несколько гигабайт. Впрочем, через Диспетчер задач виновника легко вычислить — это процесс System, который с выходом инсайдерской сборки 10525 стал весьма «прожорлив». Пугаться и что-либо предпринимать не стоит, сие не проблема, а улучшение в механизме управления памятью, которое повышает производительность приложений. О чем на страницах официального блога рассказал Гейб Аул (Gabe Aul) в статье «Анонс Windows 10 Insider Preview Build 10525».
Он пишет, цитирую: «В Windows 10 мы интегрировали новый режим сжатия для хранения в ОЗУ архивированных данных. Таким образом, неиспользуемые данные сжимаются, а не записываются на винчестер. Что позволяет системе поддерживать большее количество приложений единовременно, а также обеспечивает более высокую отзывчивость «десятки». Это видно в Диспетчере задач и потому процесс System потребляет памяти больше, чем в предыдущих выпусках Windows».
Другими словами, в Windows 8 и 7 при отсутствии свободной памяти «операционка» автоматически перемещает данные запущенных программ в файл подкачки, находящийся на жестком диске и играющий роль виртуальной памяти. А поскольку скорость чтения данных с диска гораздо ниже таковой у оперативной памяти (RAM или Random Access Memory), это приводит к заметному снижению отзывчивости приложений, чьи данные размещены в файле подкачки. В Windows 10 ситуация обратная, т.е. новый режим ощутимо увеличивает быстродействие системы и установленного программного обеспечения.
Единственное, с чем придется смириться пользователям не самых последних моделей ноутбуков (десктопов) – разовая покупка дополнительной планки памяти от 4 Гб.
Дмитрий Евдокимовwww.TestSoft.su
Утечка памяти является смещениями ресурса в компьютерной программе из — за ошибки распределения памяти. Это происходит, когда нераспространяемое место хранения RAM остается неизданным. Утечка памяти не следует путать с утечкой пространства, которая относится к программе, использующей больше ОЗУ, чем необходимо. Говорят, что утечка памяти в системе Windows 10/8/7 произошла, когда память просто недоступна, несмотря на то, что она не используется.
Разрешение для симптома 3
Чтобы устранить проблему, настройте проверку подлинности и шифрование.
Чтобы настроить проверку подлинности и шифрование для подключения, выполните следующие действия:
-
На хост-сервере сеанса RD откройте конфигурацию хост-сервера удаленного рабочего стола. Чтобы открыть конфигурацию хост-хозяйской сессии удаленного рабочего стола, нажмите кнопку Начните, указать на административные средства, указать на удаленные службы настольных компьютеров, а затем нажмите кнопку Удаленное конфигурация хозяйской сессии рабочего стола.
-
В «Подключениях» щелкните правой кнопкой мыши имя подключения и нажмите кнопку Свойства.
-
В диалоговом окне Свойства для подключения на вкладке General в уровне Безопасности выберите метод безопасности.
-
На уровне шифрования щелкните нужный уровень. Вы можете выбрать low, Client Compatible, High или FIPS Compliant. См. шаг 4 выше для Windows Server 2003 для параметров уровня безопасности и шифрования.
Примечание
- Для выполнения данной процедуры необходимо входить в группу «Администраторы» на локальном компьютере или получить соответствующие полномочия путем делегирования. Если компьютер присоединен к домену, эту процедуру могут выполнять члены группы «Администраторы домена». По соображениям безопасности рекомендуется использовать команду «Запуск от имени».
- Чтобы открыть конфигурацию служб удаленного рабочего стола, нажмите кнопку Начните, щелкните Панель управления, дважды щелкните административные средства, а затем дважды щелкните конфигурацию служб удаленного рабочего стола.
- Любые параметры уровня шифрования, настроенные в групповой политике, переопределяют конфигурацию, заданную с помощью средства конфигурации служб удаленного рабочего стола. Кроме того, если включить системную криптографию: используйте алгоритмы, совместимые с FIPS, для шифрования, хаширования и подписания параметра групповой политики, этот параметр переопределит параметр Групповой политики шифрования клиентского подключения.
- При изменении уровня шифрования новый уровень шифрования вступает в силу при следующем входе пользователя. Если требуется несколько уровней шифрования на одном сервере, установите несколько сетевых адаптеров и настройте каждый адаптер отдельно.
- Чтобы убедиться, что сертификат имеет соответствующий закрытый ключ, в конфигурации служб удаленного рабочего стола щелкните правой кнопкой мыши подключение, для которого необходимо просмотреть сертификат, щелкните вкладку Общие, нажмите кнопку Изменить, щелкните сертификат, который необходимо просмотреть, а затем нажмите кнопку Просмотреть сертификат . В нижней части вкладки «Общие» должен отображаться закрытый ключ, соответствующий этому сертификату. Эти сведения также можно просмотреть с помощью оснастки Сертификаты.
- Параметр FIPS, совместимый с FIPS (система криптографии: использование алгоритмов, совместимых с FIPS, для шифрования, хаширования и подписи в групповой политике или параметре fiPS Compliant в конфигурации серверов удаленного рабочего стола) шифрует и расшифровывает данные, отправленные от клиента на сервер и с сервера к клиенту, с помощью алгоритмов шифрования 140-1 Федерального стандарта обработки информации (FIPS) 140-1, с помощью криптографических модулей Майкрософт. Дополнительные сведения см. в технической справке Windows Server 2003.
- Высокий параметр шифрует данные, отосланные от клиента на сервер и с сервера к клиенту с помощью сильного 128-битного шифрования.
- Параметр Client Compatible шифрует данные, отосланные между клиентом и сервером, с максимальной силой ключа, поддерживаемой клиентом.
- Параметр Low шифрует данные, отосланные от клиента на сервер с помощью 56-битного шифрования.
Дополнительный шаг по устранению неполадок: включить журналы событий CAPI2
Чтобы устранить эту проблему, вйдите в журналы событий CAPI2 на клиентских и серверных компьютерах. Эта команда показана на следующем скриншоте.
Альтернативные способы увеличения ОЗУ
В тех случаях, когда приобрести новые модули ОЗУ не предоставляется возможности, а владелец ПК нуждается в увеличении производительности, следует ознакомиться с альтернативными способами, позволяющими понять, как повысить оперативную память
Повышение производительности при помощи флешки
Известнейшая компания Microsoft, предоставляющая интереснейшие ресурсы в сфере компьютерных технологий, предоставила пользователям уникальную разработку, позволяющую производить увеличение оперативной памяти при помощи флешки. Эта технология носит название ReadyBoost.
Принцип работы этой технологии несложно понять. Флешка хранит созданный файл, который достаточно быстро выполняет кеширование тех программ, которые наиболее часто находятся в использовании.
Это не единственное преимущество использования флешки. USB-накопитель наделён высочайшей скоростью обработки и записи информации, за счёт этого и происходит увеличение производительности.
Также быстродействие обеспечивается ещё за счёт того, что система не нуждается в продолжительном поиске требуемых для исполнения файлов на всём пространстве жёсткого диска, поскольку все нужные файлы сосредотачиваются на внешнем носителе.
Избрав именно этот метод, позволяющий увеличить быстродействие ПК, пользователь должен приобрести флешку с нужными параметрами, иначе все попытки будут просто безуспешны. Флешка должна иметь минимум 256 Мб свободного пространства, скорость записи должна соответствовать 1,75 Мбит/с, а чтения — 2,5 Мбит/с.
После того как все важные инструменты будут в наличии у пользователя, можно переходить к процессу, позволяющему увеличить объём кеша и ускорить производительность ПК.
Вставив флешку в USB-разъём, следует дождаться её полной загрузки, после чего кликнуть правой кнопкой мыши, вызывая контекстное меню. Далее следует перейти в «Свойства», после чего в «ReadyBoost». На этой вкладке следует установить галочку, подтверждая желание воспользоваться технологией ReadyBoost, также следует в ручном режиме выставить показатель желаемого объёма кеша. Остаётся нажать «Ок», и дождаться завершения процесса.
Пользователь ПК должен помнить, что флешку, к которой была применена технология ReadyBoost, просто так вынимать из компьютера нельзя. Чтобы извлечь USB-накопитель, вначале следует отключить ранее запущенную технологию ReadyBoost.
Изменение настроек BIOS
Ещё одним способом, позволяющим увеличить оперативную память на компьютере, является оверклокинг. Воспользовавшись таким способом, пользователю удаётся разогнать ОЗУ. Чтобы достичь этого, пользователь должен внести изменения в настройки BIOS, повышая частотность и напряжение.
При правильном внесении изменений, производительность компьютера может быть увеличена практически на 10%
Однако при этом важно понимать, что при допущении ошибок, пользователь рискует вывести из строя не только ОЗУ, но и другие комплектующие. В связи с этим, большинство опытных пользователей рекомендует для осуществления качественного и грамотного разгона, увеличения производительности, отдать компьютер настоящему профессионалу, который до мельчайших подробностей знаком с техникой проведения оверклокинга. Если же всё-таки пользователь желает сам усовершенствовать компьютер, осуществляя оверклокинг, следует первоначально зайти в BIOS
Для этого, в момент загрузки ОС следует нажать одну из кнопок: «Delete», «F2» или «F8»
Если же всё-таки пользователь желает сам усовершенствовать компьютер, осуществляя оверклокинг, следует первоначально зайти в BIOS. Для этого, в момент загрузки ОС следует нажать одну из кнопок: «Delete», «F2» или «F8».
После того, как был осуществлён успешный вход в BIOS, пользователь должен перейти в Video Ram или Shared Memory. Там на строке DRAM Read Timing следует уменьшить количество циклов (таймингов). Специалисты утверждают, что чем меньше таймингов, тем производительность ПК лучше. Однако чрезмерное понижение может привести к негативным последствиям.
В завершение, чтобы настройки были успешно сохранены, следует нажать «F10», после чего компьютер перезагрузится, и изменения вступят в силу.
Итак, желая добавить оперативную память на компьютере, пользователь должен иметь не только веские основания для этого, но и необходимые комплектующие, а также изучить имеющиеся рекомендации и овладеть нужными навыками. Совершенствовать свои технические возможности похвально, но под категорическим запретом находится экспериментальная «самодеятельность» при полном отсутствии необходимых знаний.
Исправление утечки памяти и заполнения невыгружаемого пула при работе в сети
Наиболее распространенной ситуацией является, когда невыгружаемый пул RAM заполняется при работе в Интернете. Например, легко заметить, как он растет при скачивании большого файла и после этого не очищается.
Если описанное — ваш случай, то исправить ситуацию и очистить невыгружаемый пул памяти можно следующим образом.
- Зайдите в редактор реестра (нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter).
- Перейдите к разделу HKEY_LOCAL_MACHINE SYSTEM ControlSet001 Services Ndu
- Дважды нажмите по параметру с именем «Start» в правой части редактора реестра и задайте значение 4 для него, для отключения монитора использования сети.
- Закройте редактор реестра.
Добавить в заметки чтобы посмотреть позже?
По завершении, перезагрузите компьютер и проверьте, была ли исправлена проблема. Как правило, если дело действительно в драйверах сетевой карты, невыгружаемый пул больше не растет больше своих обычных значений.
Автор рекомендует прочесть:
Если шаги, описанные выше, не помогли, попробуйте следующее:
- Если драйвер сетевой карты и (или) беспроводного адаптера был установлен с официального сайта производителя, попробуйте удалить его и дать установить стандартные драйверы.
- Если драйвер был автоматически установлен Windows или был предустановлен производителем (и система после этого не менялась), попробуйте скачать и установить последнюю версию драйвера с официального сайта производителя ноутбука или материнской платы (если это ПК).
Заполняемый невыгружаемый пул оперативной памяти в не всегда бывает вызван драйверами именно сетевой карты (хотя чаще всего) и если действия с драйверами сетевых адаптеров и NDU не приносят результата, можно прибегнуть к следующим шагам:
- всех оригинальных драйверов от производителя на ваше оборудование (особенно если на данный момент времени у вас установлены драйверы, автоматически установленные ).
- Использование утилиты Poolmon из состава Microsoft WDK для определения драйвера, вызывающего утечку памяти.
Диагностика утечки памяти в пуле
Проведем диагностику утечки памяти в пулах. Утечка генерируется программой Notmyfault из пакета Sysinternals.
Выполните следующие действия:
- Запустите программу Notmyfault.exe для разрядности вашей ОС.
- Notmyfault.exe загружает драйвер устройства Myfault.sys и выводит диалоговое окно Not Му Fault с выбранной вкладкой Crash. Щелкните на вкладке Leak. Введите в поле Leak/second значение 1000 Кбайт.
- Щелкните на кнопке Leak Paged. Программа начинает отправлять драйверу Myfault запросы на выделение памяти из выгружаемого пула.
Пока в пуле существует утечка, откройте Диспетчер задач, перейдите на вкладку «Быстродействие» (Performance) и выберите категорию «Память» (Memory)
Обратите внимание: значение «Выгружаемый пул» (Paged Pool) постепенно растет.
Чтобы определить, с каким тегом пулов связана утечка, запустите программу Poolmon и нажмите клавишу “В“, чтобы отсортировать информацию по количеству байтов.
Клавишей Р настройте, чтобы в Poolmon отображался только выгружаемый пул. Обратите внимание: тег пула Leak поднимается в начало списка
Также Poolmon помечает изменения в выделенной памяти подсветкой изменяемых строк:
- Щелкните на кнопке Stop Paged, чтобы не исчерпать выгружаемый пул в вашей системе.
- Запустите программу Strings (из пакета Sysinternals), чтобы найти исполняемые файлы драйверов с тегом пула Leak.
>strings64.exe %SystemRoot%\system32\drivers\*.sys | findstr Leak
В результате поиска должен быть найден файл Myfault.sys, тем самым подтверждается что этот драйвер был виноват в утечке памяти.
Таким образом, если вы видите, что какой-то из пулов начал расти. То теперь вы знаете как отследить какой из драйверов потребляет слишком много памяти.
Сводка
Имя статьи
Пулы системной памяти
Описание
Вы уже должны немного представлять что такое пулы системной памяти
В этой статье обратим на них более пристальное внимание
Методы решения ошибки входа по RDP
И так, если вы все же словили ошибку «The task you are trying to do can’t be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log», то не спешите расстраивается, она сто процентов решается, все только измеряется конечным результатом. В моем случае, виртуальная машина использовалась для разработки, поэтому ее использовали несколько человек.
Если у вас есть физический, консольный или удаленный доступ к серверу, то зайдите на него и попробуйте разлогинить, того пользователя, кто испытывает трудности при входе. Для этого вы заходите в диспетчер задач, переходите на вкладку пользователи, где находите нужного вам. Выбираете его, щелкаете правым кликом и делаете «Выход из системы (Log off)». В большинстве случаев, этого достаточно, но не в моем. В диспетчере задач, я обнаружил странного пользователя с именем (4) или (5). У данного пользователя с ником (4) или (5), было открыто 4 процесса:
- Client Server Runtime Process
- Desktop Windows Manager
- Windows Logon Application
- Windows Logon User Interface
Мои попытки разлогинить его из диспетчера зада, оказались бесполезными. Я такое встречал уже, и видел когда было много таких пользователей (4), все решалось перезагрузкой сервера, лечилось на 100%, но в моем случае так как сервер использовался многими сотрудниками, то его трогать было нельзя, ищем другие варианты.
Если перезагрузить ваш сервер не представляется возможным, то попробуйте выполнить вот такие действия. Я буду показывать их на Windows Server 2016, но они применимы и для других версии ОС Windows. Откройте командную строку cmd от имени администратора. Введите вот такую команду:
query session
Она покажет всех залогиненных пользователей в терминальном сервере, обратите внимание, что тут так же есть пользователь (4), нас в данной выдаче интересует поле ID, это идентификатор пользователя. Он нам потребуется, чтобы грохнуть процесс csrss.exe, для конкретного пользователя
В моем случае ID 48.
Далее в командной строке, выполните команду:
query process /id48 (подробнее https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/query-process)
у вас будут выведены, все процессы, которые запущены из под данного пользователя, нас будет интересовать csrss.exe и его PID.
Далее нужно свериться по диспетчеру задач, с этим PID, для этого на вкладке процессы, щелкните правым кликом по любому из столбцов и добавьте колонку PID.
В появившейся колонке PID,найдите нужный нам, в моем случае, это PID 26980, он соответствует процессу csrss.exe, пробуем его отключить, в диспетчере задач. По идее, это должно помочь устранить ошибку подключения «Задача, которую вы пытаетесь выполнить, не может быть завершена, потому что в настоящее время заняты службы удаленного рабочего стола. Попробуйте повторить попытку, через несколько минут. Остальные пользователи, по прежнему смогут логиниться на сервер».
Убить все процессы можно и через taskkill или rwinsta
Еще можно попытаться убить сессию пользователя командой reset session {<SessionName> | <SessionID>} (Подробнее https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/reset-session)
Если, этот метод вам не помог, то в некоторых случаях, с виртуальными машинами помогает вариант отключения и включения доступа по RDP
Если, это не помогло и перезагрузка невозможна, попробуйте в случае с виртуальной машиной, произвести перезапуск службы удаленных рабочих столов. Надеюсь вам удалось решить проблему подключения «The task you are trying to do can’t be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log» и вы продолжили работу.
Знакомство с утилитой Poolmon
Для анализа пулов можно использовать программу Poolmon (но придется установить WDK Tools). Также доступны разные счетчики производительности.
Запустить утилиту можно так:
>"C:\Program Files (x86)\Windows Kits\10\Tools\x64\poolmon.exe"
Вот так выглядит окно Poolmon:
Клавиша «?» во время выполнения Poolmon вызывает экран со справочной информацией:
Чтобы выйти из справки нажмите “Esc“.
Клавишей «p» можно переключаться на режимы отображения:
- оба пула,
- только выгружаемый,
- только не выгружаемый.
Например, клавишей «p» настройте чтобы выводился только не выгружаемый пул, затем нажмете клавишу «D» для сортировки по столбцу Diff (разность), так вы узнаете, какие структуры наиболее многочисленны в не выгружаемом пуле.
За описаниями тегов пулов, используемых Windows, обращайтесь к файлу Pooltag.txt в подкаталоге Triage каталога, в котором размещается инструментарий отладки для Windows (C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\triage). Также информацию по тегам можно получить утилитой string, показанной чуть ниже.
Столбцы Poolmon:
- Tag — тег указывает на драйвер который использует пул памяти;
- Type — тип пула (выгружаемый или не выгружаемый);
- Allocs — количество всех операций выделения (в скобках изменение с момента последнее обновления программы);
- Diff — разность между количеством выделений и освобождений памяти;
- Bytes — общее количество байтов, потребляемых тегом(в скобках изменение с момента последнее обновления программы);
- Per Alloc — размер одного экземпляра данного тега в байтах.
Что такое Dynamic Fair Share Scheduling (DFSS)?
Так как официального метода вернуть Windows System Resource Manager не существует, а есть лишь костыльные, нам придется работать с тем, что есть. «Динамическое планирование долевого распределения» или как в оригинале «Dynamic Fair Share Scheduling (DFSS)» — это механизм автоматической балансировки и распределения сетевой нагрузки, дисковых, процессорных мощностей между всеми пользовательскими сессиями на RDSH хосте. Все эти три варианта имеют цель предотвратить чрезмерное использование ресурсов одним пользователем и предоставить всем пользователям одинаковые возможности. Однако методы FairShare не гарантируют, что ресурсы не будут исчерпаны, это все еще может иметь место. Если все пользователи используют все ресурсы ЦП, FairShare гарантирует, что все пользователи получат некоторую емкость ЦП, но все же может быть, что все процессоры загружены на 100%, а пользователи испытывают снижение производительности, это нужно учитывать.
Проблема: один из пользователей потребляет 90% и более CPU
Опишу реальный случай с которым вы обязательно столкнетесь, если у вас в компании используются терминальные столы. И так есть RDS ферма построенная на базе Windows Server 2012 R2 до Windows Server 2019. На каждом из RDSH хостов могут одновременно работать свыше 30 пользователей. В среднем они суммарно не потребляют более 30% процессорных мощностей, но когда приходит период отчетности некоторые пользователи начинают нагружать сервера куда интенсивнее. Очень часто можно встретить, что пользователь работающий с Excel, 1С и похожими программами начинает потреблять 80-90% процессорных мощностей, в результате чего начинают страдать остальные пользователи этого RDSH хоста.
Ранее для решения это проблемы в Windows Server 2008 R2 был замечательный компонент диспетчер системных ресурсов (Windows System Resource Manager), но Microsoft его посчитала устаревшим и выпилила из состава компонентов, аж с Windows Server 2012 R2 и выше. Но не думайте, что доблестные разработчики не подумали чем вам восполнить этот пробел, они придумали и включили в состав Windows Server компонент «Динамическое планирование долевого распределения» или как в оригинале «Dynamic Fair Share Scheduling (DFSS)».
Вот так называются три компонента входящие в состав DFSS
хочу отметить, что в отличии от диспетчера системных ресурсов, вы не обнаружите для Dynamic Fair Share Scheduling оснасток и графических консолей, которые вам бы помогли что-то настроить. Тут работает полная автоматика, которая сама все делает и у вас есть только два варианта, включить или выключить компонент
- CPU Fair Share — Динамически распределяет процессорное время между пользовательскими сессиями. Тут будет учитываться их количество и интенсивность использования.
- Network Fair Share — Динамически распределяет полосу пропускания сетевого интерфейса между пользовательскими сессиями. Советую использовать совместно с Qos.
- Disk Fair Share — данная функция защищает ваши диски от очень интенсивного использования одним пользователем, позволяет равномерно балансировать дисковые операции между всеми.