что такое additional components в диспетчере задач

Как работать с диспетчером задач в windows, если программы зависают, грузят процессор и оперативную память

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Содержание

Содержание

Во всех версиях операционной системы Windows есть специальный инструмент, с помощью которого можно легко решить практически любую проблему с зависшим приложением. Называется он «Диспетчер задач». Изначально он служил просто для мониторинга активных процессов (запущенных программ, игр) и их закрытия в случаи зависания, но сейчас это инструмент, в котором содержится множество полезной информации для пользователя.

В этой статье мы разберем только самые основные и часто используемые функции диспетчера задач операционной системы Windows 10.

Как запустить Диспетчер задач

Есть несколько способов для запуска диспетчера задач, но мы разберем наиболее простые и актуальные:

При первом открытии диспетчер задач запустится в компактном режиме. В нем будут отображены только запущенные на компьютере программы.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Подобный функционал у диспетчера задач был еще в операционной системе Windows NT 3.1. В данном режиме можно быстро закрыть зависшую или некорректно работающую программу.

Для этого нужно просто кликнуть по ней правой кнопкой мышки и выбрать соответствующий пункт из выпадающего меню, либо просто найти зависшее приложение и нажать кнопку «снять задачу»

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

По мере эволюции операционной системы Windows менялся внешний вид и функционал диспетчера задач. Сейчас это не просто программа для закрытия зависших приложений, это полноценный инструмент по мониторингу, диагностике и даже настройке операционной системы.

Чтобы воспользоваться всеми функциями, нужно перейти в расширенный режим работы. Для этого необходимо нажать «Подробнее».

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Начнем знакомство с панели меню диспетчера задач.

В пункте «меню файла» можно запустить новую задачу, для этого нужно написать название процесса и нажать «ОК».

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Остальные вкладки меню крайне редко используются и отвечают за параметры внешнего вида и отображения диспетчера задач.

А теперь подробно разберем его расширенные возможности.

«Процессы»

Это одна из наиболее часто используемых вкладок в диспетчере задач. В данном меню отображаются все активные процессы на компьютере. Они делятся на приложения и фоновые процессы.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Приложения — это активные программы: игры, браузеры. Все приложения можно безопасно закрывать. Процессы обычно не имеют графической оболочки и работают автономно, например, система синхронизации времени или фоновое обновление для браузера Google Chrome.

В данном меню можно также наблюдать за тем, какую нагрузку на процессор оказывают приложения и процессы, сколько потребляют оперативной памяти, как воздействуют на жесткий диск, сеть и видеокарту.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Можно закрывать зависшие приложения и процессы, а так же смотреть, где располагается активная программа на жестком диске.

Для того чтобы увидеть все действия, которые можно произвести с процессом или программой, необходимо щелкнуть по ним правой кнопкой мыши.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Внешний вид вкладки, вернее количество информации, отображаемой о процессе, также можно настроить под себя. Для этого нажмите правой кнопкой мыши на любой из показателей загрузки системы и отметьте галочкой то, что нужно отображать.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Также можно настроить значения (проценты или мегабайты), в которых будет выводиться информация о воздействии приложений и процессов на оперативную память, диск и сеть.

«Производительность»

Во вкладе «Производительность» в режиме реального времени можно наблюдать за тем, какую нагрузку на компоненты системы (процессор, оперативную память, жесткий диск и SSD, сеть и видеокарту) создают запущенные программы.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Помогает в тех случаях, когда компьютер начинает тупить без видимых на то причин. Здесь сразу будет видно, какой компонент системы загружен и насколько сильно.

График загрузки процессора можно настраивать для мониторинга каждого отдельного ядра процессора, а не общей загруженности в целом.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Помимо этого, на вкладке ЦП можно узнать точную модель и другую техническую информацию о процессоре:

На вкладке «Память», помимо объема занятой оперативной памяти, можно узнать эффективную частоту памяти и количество разъемом на материнской плате для установки планок памяти.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

В случае с видеокартой есть дополнительная возможность мониторинга температуры и потребления видеопамяти программами или играми.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

«Журнал приложений»

В данной вкладке отображаются только приложения из магазина Windows, если таковые имеются, а также нагрузка, которую они оказывают на систему.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

«Автозагрузка»

Очень актуальное меню. После установки программ многие из них добавляют себя в автозагрузку для запуска вместе с операционной системой. Со временем там может накопиться огромное количество программ, причем не всегда нужных. Все бы ничего, но они отъедают ресурсы процессора и оперативную память, которой и так всегда мало, и к тому же увеличивают время включения компьютера.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Чтобы отключить ненужную программу, просто кликаем правой кнопкой мышки по программе или на окошко в нижней части диспетчера, далее выбираем «Отключить».

«Пользователи»

Во вкладке «Пользователи» отображаются активные пользователи операционной системы — это те, кто вошел в свою учетную запись. Тут также можно узнать количество системных ресурсов и программы, которые они используют. Если на компьютере один пользователь, вкладка совершенно бесполезная.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

«Подробности»

Вкладка «Подробности» содержит различные сведения о запущенных процессах. Она похожа на рассмотренные чуть выше «Процессы», но здесь вы найдете больше информации и все отображаемые процессы из всех учетных записей пользователей в системе.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Для получения доступа к дополнительным параметрам процесса необходимо щелкнуть по нему правой кнопкой мышки.

«Службы»

Службы операционной системы — это системные программы, которые в зависимости от назначения запускаются автоматически при запуске операционной системы или только по необходимости.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Большинство служб являются частью операционной системы Windows. Например, Центр безопасности Защитника Windows — это новое приложения для управления встроенным системным антивирусом «Защитник Windows». Также есть службы, которые являются частью установленных программ, как, например, драйвера для видеокарт AMD или Nvidia. Тот же Google Chrome, TeamViewer или Adguard при установке создают одноименную службу, которая необходима для нормального функционирования самой программы.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Не стоит заниматься отключением служб без четкого понимания того, за что они отвечают, потому что большая их часть необходима для нормальной работы операционной системы, всех ее компонентов и установленных программ.

Для получения дополнительной информации об интересующей вас службе можно воспользоваться поиском в Интернете или открыть специальное меню для администрирования служб Windows, в котором будет дано подробное описание, состояние, тип запуска и зависимость от других служб.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Если же вам мало возможностей и информации, которая предоставляется диспетчером задач, есть сторонняя утилита Process Explorer для расширенного управления всеми процессами системы.

Process Explorer

Process Explorer распространятся абсолютно бесплатно. Скачать можно с официального сайта Microsoft.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

С помощью этой программы можно не только отследить какой-либо процесс, но и узнать, какие файлы и папки он использует. На экране отображаются два окна. Содержимое одного окна зависит от режима, в котором работает Process Explorer: режим дескриптора или режим DLL.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Во втором отображается список активных процессов с их иерархией. Можно посмотреть подробную информацию о каждом из них: владелец, занятая память, библиотеки, которые он использует.

Программа позволяет менять приоритеты процессов и определять, какое ядро процессора будет его выполнять.

Можно управлять потоками процессов: запускать их, останавливать или ставить на паузу. Также можно «заморозить» процесс. Process Explorer поможет распознать, к какому процессу относится запущенное окно на рабочем столе, что поможет быстро обнаружить вредоносные программы.

Источник

Подозрительные процессы в диспетчере задач и что с ними делать?

Сегодня хочу поведать вам неизвестных процессах в Windows, которые могут вызвать подозрения у любого пользователя. Если процесс производит какое-то действие, например, загружает процессор до 100 процентов, то даже неопытный пользователь поймет, что от него нужно избавиться. Но бывает и такое, что процесс просто висит в системе и вроде бы ничего не делает. Возможно это вирус. Чаще всего они скрывается под видом системных процессов. Конечно, можно проверить их, зайдя в диспетчере задач, и определить их местонахождение. Если это вирус, то удалить.

В данном руководстве я постараюсь объяснить, как найти подозрительный процесс, а также добиться того, чтобы он больше не запускался.

Где смотреть процессы?

Для начала нужно зайти в диспетчер задач. Нажмите сочетание клавиш Esc+Shift+Ctrl и перейдите на вкладочку «Процессы». Здесь находятся все приложения и системные процессы, которые нужны для нормального функционирования Windows. При нахождении процесса, который сильно нагружает процессор, либо жесткий диск, вы его можете завершить. При завершении системного процесса может возникнуть проблема и компьютер перезагрузится, поэтому будьте осторожны.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Как определить вирус в диспетчере задач?

Часто вирусы могут маскироваться под системные процессы, одним из них является svhost.exe. На глаз вы не определите, что это вредонос. Понадобится утилита. Существует множество программ для поиска вирусов на ПК. В данной статье я представлю AVZ.

Скачать эту антивирусную утилиту нужно по этой ссылке: http://z-oleg.com/secur/avz/download.php

Вам необходимо распаковать архив в любую пустую папку и запустить утилиту. Дальше идем на вкладку «Сервис». Там есть два пункта, которые нам понадобятся: «Диспетчер процессов» и «Менеджер запуска».

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Для начала запустим «Менеджер запуска» и посмотрим, какие утилиты и программы у нас грузятся вместе с системой. Стоит заметить, что AVZ выделяет безопасные процессы зеленым цветом. Если цвет отличается, допустим, черный, то стоит задуматься, а не вирус ли это. Все ненужное вы можете отключить.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Далее зайдем в «Диспетчер процессов». Здесь похожая картина, но показываются процессы, работающие в данный момент времени. Как и в первом случае, процессы, выделенные черным цветом, вызывают подозрения, поэтому уделите им особое внимание.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Конечно, находящееся в процессах не обязательно может быть вирусом, это может быть и рекламная утилита, которая будет сильно надоедать.

Обычно системные процессы находятся на системном диске. Если этот путь отличается, то процесс можно смело завершить. Чтобы проверить местонахождение нажмите по процессу правой кнопкой мыши, и выберите пункт «Открыть расположение файла». Чтобы завершить процесс, нужно также открыть меню и выбрать там «Снять задачу» или «Завершить процесс».

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Ищем вирусы с помощью AVZ

В AVZ перейдите на вкладку «Область поиска» и выделите галочками диски, которые будете сканировать. В методике лечения отметьте все так, как на скриншоте. Отмечаем галочку эвристическое удаление файлов, а еще галочки слева. Теперь нажимаем кнопку «Пуск».

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач
При положительных результатах, то есть утилита ничего не обнаружила, то попробуйте использовать другие утилиты, например, Mailwarebytes.

Исправление небезопасных настроек Windows

Используя AVZ, можно исправить некоторые настройки, которые в Windows стоят стандартно. К ним относится автозапуск с внешних носителей. Представьте, вы вставляете флешку, происходит автозапуск, и ваша система уже заражена вирусом.

Чтобы отключить автозапуск нажмите «Файл», а потом «Мастер поиска и устранения проблем». В выпадающем меню «Категория проблемы» выбираем, скажем, «Системные процессы». Степень опасности – средней тяжести. Отмечаем галочки нужные пункты и жмем кнопку «Исправить отмеченные проблемы».

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Напоследок хочу сказать, что диспетчер задач не всегда показывает все процессы. Поэтому вы можете использовать для этого дела утилиту Process Explorer.

Источник

Зомби, которые съедают вашу память

Что бы вы там себе не думали, а зомби существуют. И они действительно едят мозги. Не человеческие, правда, а компьютерные. Я говорю сейчас о зомби-процессах и потребляемых ими ресурсах. Это будет душераздирающая история о потерянных и снова найденных 32 ГБ оперативной памяти. Возможно, лишь некоторые из вас столкнутся с точно такой же проблемой, но если вдруг это произойдёт — у вас хотя бы будет шанс понять, что происходит.

Начнём с того, что компьютеры под управлением ОС Windows склонны со временем терять память. Ну, по крайней мере, у меня, при моём способе ими пользоваться. После пары недель без перезагрузок (или, например, всего одного уикэнда за который я 300 раз пересобрал Хром) я стал замечать, что диспетчер задач начинает показывать мне очень маленькое количество свободной оперативной памяти, но в то же время в системе нет никаких процессов, которые эту самую память активно используют. В том примере выше (с 300 сборками Хрома) диспетчер задач сказал мне, что в системе занято 49.8 ГБ плюс ещё 4.4 ГБ памяти сжато — но при этом запущено всего несколько процессов, и все они в сумме даже и близко не используют столько памяти:

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

В моём компьютере 96 ГБ оперативной памяти (да, я счастливчик) и когда у меня нет вообще никаких запущенных процессов — я, знаете ли, хотел бы видеть ну хотя бы половину этой памяти свободной. Я правда рассчитываю на это. Но иногда этого достичь не удаётся и мне приходится перезагружать ОС. Ядро Windows написано качественно и надёжно (без шуток), так что память не должна бы пропадать бесследно. Но всё же она пропадает.

Первой же моей догадкой стало воспоминание о том, что один из моих коллег как-то жаловался на зомби-процессы, которые иногда остаются в ОС уже не активными, но всё же ещё не до конца удалёнными ядром. Он даже написал специальную утилиту, которая выводит список таких процессов — их имена и количество. Когда он запускал эту утилиту в своих тестах, то получал до нескольких сотен зомби-процессов на обычной Windows-машине. Я нашел его инструмент, запустил на своём компьютере и получил… 506 000 зомби-процессов. Да, 506 тысяч!

Я вспомнил, что одной из возможных причин перехода процесса в состояние «зомби» может быть то, что какой-то другой процесс держит открытым его дескриптор (handle). В моём случае большое количество зомби-процессов играло мне на руку — им было сложнее скрыться. Я просто открыл диспетчер задач и добавил на вкладку Details столбец с количеством открытых дескрипторов для каждого процесса. Затем отсортировал список по убыванию значений в этом столбце. Я сразу нашел героя данной истории — процесс CcmExec.exe (часть Microsoft System Management Server) имел 508 000 открытых дескрипторов. Это было во-первых, очень много, а во-вторых, подозрительно близко к найдненному мною выше числу в 506 000 зомби-процессов.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Всё получилось ровно так, как я того и ожидал. Как я без иронии писал выше — ядро Windows написано очень хорошо и когда процесс уничтожается, то и все занятые им ресурсы освобождаются. Закрытие CcmExec.exe освободило 508 000 дескрипторов, что дало возможность окончательно закрыть 506 000 зомби-процессов. Количество свободной оперативной памяти мгновенно выросло на 32 ГБ. Тайна раскрыта!

Что такое зомби-процесс?

До этого момента мы ещё не выяснили, что же заставило все эти процессы зависнуть в неопределённости, а не быть удалёнными. Похоже на то, что мы имеем дело с тривиальным багом в приложении (а не в ядре ОС). Общее правило гласит, что когда вы создаёте процесс, то получаете его дескриптор и дескриптор его главного потока. Вы ОБЯЗАНЫ закрыть эти дескрипторы. Если вашей задачей было просто запустить процесс — их можно закрыть сразу же (это не убъёт запущенный процесс, а просто разорвёт связь вашего процесса с ним). Если новый процесс вам для чего-то нужен (например, вы ждёте окончания его работы или вам нужен код, который он вернёт) — то нужно воспользоваться соответствующими функциями (например, WaitForSingleObject(hProcess, INFINITE) для ожидания выхода или GetExitCodeProcess(hProcess, &exitCode) для получения кода возврата) и всё-равно закрыть дескрипторы после того, как вы получили от дочернего процесса всё, чего хотели. Аналогично следует и поступать и с дескрипторами процессов, которые вы для чего-нибудь открываете с помощью функции OpenProcess().

Если процесс, который забывает так поступать, относится к системным, то вам даже может не помочь выйти из своего аккаунта и снова залогиниться, только полная перезагрузка.

Куда же девается память?

500 000 раз по 32 КБ будет равно примерно 16 ГБ — куда же делась остальная память? Сравнение состояния памяти до и после закрытия зомби-процессов даёт ответ на этот вопрос:

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Мы можем чётко увидеть, что

16 ГБ уходит на Process Private Memory. Также мы видит, что ещё 16 ГБ приходится на Page Table Memory. Очевидно, что каждый зомби-процесс занимает 32 КБ в таблице страниц памяти и еще 32 КБ использует для своей личной памяти. Я не знаю для чего зомби-процессу так много памяти, но, наверное, никто никогда не думал, что число таких процессов может измеряться сотнями тысяч.

Некоторые типы занятой памяти увеличились после закрытия процесса CcmExec.exe, в основном это касается Mapped File и Metafile. Я не знаю точно, почему так получилось. Одной из моих догадок является то, что ОС решила, что свободной памяти теперь достаточно и что-то себе закешировала. Это, в общем, не плохо. Мне не жаль памяти для нужд ОС, я просто не хочу, чтобы она пропадала совсем уж бесцельно.

Важное замечание: RamMap тоже открывает дескрипторы всех процессов, так что эту утилиту следует закрыть, если вы хотите добиться закрытия зомби-процессов.

Я написал твит о моей находке и исследование продолжил другой программист, который сумел воспроизвести данный баг и передать информацию о нём разработчику из Microsoft, который сказал, что это «известная проблема, которая иногда случается, когда очень много процессов запускаются и закрываются очень быстро».

Я надеюсь, что данная проблема будет скоро исправлена.

Почему у меня на компьютере возникают такие странные проблемы?

Я работаю над кодом Windows-версии Хрома и одной из моих задач является оптимизация его сборки на этой ОС, а это требует многократных запусков этой самой сборки. Каждая сборка Хрома запускает огромное множество процессов — от 28 000 до 37 000 в зависимости от выбранных настроек. При использовании нашей распределённой системы сборки (goma) эти процессы создаются и закрываются очень быстро. Мой лучший результат сборки Хрома — 200 секунд. Но столь агрессивная политика запуска процессов выявляет и проблемы в ядре Windows и её компонентах:

Что дальше?

Если вы работаете не на компьютере, управляемом политиками компании, то процесс CmmExec.exe у вас не запущен и с конкретно данным багом вы не столкнётесь. Также он коснётся вас только если вы собираете Хром или делаете ещё что-то похожее, создавая и закрывая при этом десятки тысяч процессов в короткие промежутки времени.

CcmExec — не единственная в мире программа с багами. Я нашел много других, содержащих в себе конкретно этот же тип ошибок, приводящих к созданию зомби-процессов. И есть ещё огромное множество тех, которые я не нашел.

Как знают все опытные программисты, любая ошибка, которая не была явно исправлена или предупреждена — точно когда-то произойдёт. Просто написать в документации «Пожалуйста, закройте этот дескриптор» — не достаточно. Так что вот мой вклад в то, чтобы сделать нахождение подобного типа ошибок проще, а их исправление — реальнее. FindZombieHandles — это инструмент, основанный на NtApiDotNet и коде от @tiraniddo, который выводит список зомби-процессов и информацию о том, кто сделал их зомби. Вот пример вывода данной утилиты, запущенной на моём компьютере:

274 зомби — это ещё не так плохо. Но уже и это указывает на определённые проблемы, которые могут быть найденны и исправлены. Процесс IntelCpHeciSvc.exe в этом списке имеет самые большие проблемы — похоже на то, что он открывает (и забывает закрыть) дескриптор процесса каждый раз, когда я открываю видео в Windows Explorer.

Visual Studio забывает закрыть дескрипторы как минимум двух процессов, в одном случае это воспроизводится всегда. Просто запустите сборку проекта и подождите

15 минут пока процесс MSBuild.exe закроется. Можно также выставить опцию “set MSBUILDDISABLENODEREUSE=1” и тогда MSBuild.exe закроется сразу по окончанию сборки и потерянный дескриптор будет виден сразу. К сожалению, какой-то негодяй в Microsoft исправил эту проблему и фикс должен выйти в обновлении VS 15.6, так что поторопитесь воспроизвести её, пока это ещё работает (надеюсь, не нужно объяснять, что это была шутка и никакой он на самом деле не негодяй).

Также вы можете использовать для просмотра забытых процессов программу Process Explorer, сконфигурировав её нижнюю панель так, как это показано ниже (заметьте, что в этом случае будут показаны забытые дескрипторы как для процессов, так и для потоков):

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Вот пару примеров найденных багов (о некоторых сообщено разработчикам, но не о всех):

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Используя Process Explorer, я заметил, что NVDisplay.Container.exe открывает

5000 дескрипторов на событие \BaseNamedObjects\NvXDSyncStop-61F8EBFF-D414-46A7-90AE-98DD58E4BC99, создавая новый дескриптор каждые две минуты. Я так понимаю, они хотят быть супер-уверены в том, что могут остановить NvXDSync? Багрепорт Nvidia отправлен.

что такое additional components в диспетчере задач. Смотреть фото что такое additional components в диспетчере задач. Смотреть картинку что такое additional components в диспетчере задач. Картинка про что такое additional components в диспетчере задач. Фото что такое additional components в диспетчере задач

Corsair Link Service создаёт

15 дескрипторов в секунду, не освобождает их совсем. Багрепорт отправлен.

Adobe’s Creative Cloud теряет тысячи дескрипторов (около 6500 в день, по моим подсчётам). Багрепорт отправлен.

Удивительно, что никто до этого особо не обращал внимание на подобные баги. Эй, Microsoft, возможно, стоит собирать статистику по таким случаям и что-то предпринимать по этому поводу? Эй, Intel и Nvidia, почистите немного ваш код. Помните, я наблюдаю за вами.

А теперь вы можете взять утилиту FindZombieHandles, запустить её на вашей машине и рассказать о своих находках. Также вы можете использовать в экспериментах диспетчер задач и Process Explorer.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *