Так что в последнее время я замечаю чрезвычайно высокое использование памяти. Только с 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.ТВ. Но опять же, это успешно, и я не понимаю, почему запрос ввода-вывода будет выдан, но не завершен. Видео заканчивает запись, как только я выхожу из игры.
РЕДАКТИРОВАТЬ 03/03/18 # 2: Я использовал typeperf "Memory\Pool Nonpaged Bytes" -si 20 -o npptracker.csv
а затем составил результаты, как предложено @HelpingHand. Я также аннотировал график всеми событиями, чтобы вы могли видеть, какое действие соответствует байтам с невыгружаемым содержимым, прыгающим вверх или вниз. Вот график. На нем вы можете увидеть несколько вещей, которые вы не узнаете:
- PUBG - сокращение от PlayerUnknown BattleGrounds, это видеоигра, в которую я недавно играл
- Пьесы.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
. Я забыл поместить это на график времени. Вот изображение результата.