Servicehub host node x86 exe

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

Servicehub host node x86 exe
Что бы вы там себе не думали, а зомби существуют. И они действительно едят мозги. Не человеческие, правда, а компьютерные. Я говорю сейчас о зомби-процессах и потребляемых ими ресурсах. Это будет душераздирающая история о потерянных и снова найденных 32 ГБ оперативной памяти.

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

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

В том примере выше (с 300 сборками Хрома) диспетчер задач сказал мне, что в системе занято 49.8 ГБ плюс ещё 4.

4 ГБ памяти сжато — но при этом запущено всего несколько процессов, и все они в сумме даже и близко не используют столько памяти:

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

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

Я вспомнил, что одной из возможных причин перехода процесса в состояние «зомби» может быть то, что какой-то другой процесс держит открытым его дескриптор (handle). В моём случае большое количество зомби-процессов играло мне на руку — им было сложнее скрыться.

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

Это было во-первых, очень много, а во-вторых, подозрительно близко к найдненному мною выше числу в 506 000 зомби-процессов.
Я убил процесс CcmExec.exe и получил следующий результат: Всё получилось ровно так, как я того и ожидал. Как я без иронии писал выше — ядро Windows написано очень хорошо и когда процесс уничтожается, то и все занятые им ресурсы освобождаются. Закрытие CcmExec.exe освободило 508 000 дескрипторов, что дало возможность окончательно закрыть 506 000 зомби-процессов. Количество свободной оперативной памяти мгновенно выросло на 32 ГБ. Тайна раскрыта! До этого момента мы ещё не выяснили, что же заставило все эти процессы зависнуть в неопределённости, а не быть удалёнными. Похоже на то, что мы имеем дело с тривиальным багом в приложении (а не в ядре ОС). Общее правило гласит, что когда вы создаёте процесс, то получаете его дескриптор и дескриптор его главного потока. Вы ОБЯЗАНЫ закрыть эти дескрипторы. Если вашей задачей было просто запустить процесс — их можно закрыть сразу же (это не убъёт запущенный процесс, а просто разорвёт связь вашего процесса с ним). Если новый процесс вам для чего-то нужен (например, вы ждёте окончания его работы или вам нужен код, который он вернёт) — то нужно воспользоваться соответствующими функциями (например, WaitForSingleObject(hProcess, INFINITE) для ожидания выхода или GetExitCodeProcess(hProcess, &exitCode) для получения кода возврата) и всё-равно закрыть дескрипторы после того, как вы получили от дочернего процесса всё, чего хотели. Аналогично следует и поступать и с дескрипторами процессов, которые вы для чего-нибудь открываете с помощью функции OpenProcess(). Если процесс, который забывает так поступать, относится к системным, то вам даже может не помочь выйти из своего аккаунта и снова залогиниться, только полная перезагрузка.
Ещё одним инструментом, который я использовал в своём исследовании, была утилита RamMap. Она показывает использование каждой страницы памяти. На вкладке Process Memory мы видим сотни тысяч процессов, каждый из которых занимает 32 КБ оперативной памяти — очевидно, это и есть наши зомби. Но ~500 000 раз по 32 КБ будет равно примерно 16 ГБ — куда же делась остальная память? Сравнение состояния памяти до и после закрытия зомби-процессов даёт ответ на этот вопрос: Мы можем чётко увидеть, что ~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 и её компонентах:

  • Быстрое удаление процессов ведёт к зависаниям пользовательского ввода
  • Драйвер тачпада выделяет, но не освобождает память при каждом создании процесса
  • App Verifier создаёт O(n2) лог-файлов (и об этом стоит написать отдельный пост!)
  • Есть баг в ядре Windows, который касается буферизации файлов, и этот баг воспроизводится на всех Windows от Server 2008 R2 до Windows 10
  • Windows Defender задерживает запуск каждого процесса goma на 250 мс

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

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

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

Вот пример вывода данной утилиты, запущенной на моём компьютере:

274 total zombie processes.249 zombies held by IntelCpHeciSvc.exe(9428)249 zombies of Video.UI.exe14 zombies held by RuntimeBroker.exe(10784)11 zombies of MicrosoftEdgeCP.exe3 zombies of MicrosoftEdge.exe8 zombies held by svchost.exe(8012)4 zombies of ServiceHub.IdentityHost.exe2 zombies of cmd.exe2 zombies of vs_installerservice.exe3 zombies held by explorer.exe(7908)3 zombies of MicrosoftEdge.exe1 zombie held by devenv.exe(24284)1 zombie of MSBuild.exe1 zombie held by SynTPEnh.exe(10220)1 zombie of SynTPEnh.exe1 zombie held by tphkload.exe(5068)1 zombie of tpnumlkd.exe1 zombie held by svchost.exe(1872)1 zombie of userinit.exe 274 зомби — это ещё не так плохо. Но уже и это указывает на определённые проблемы, которые могут быть найденны и исправлены. Процесс IntelCpHeciSvc.exe в этом списке имеет самые большие проблемы — похоже на то, что он открывает (и забывает закрыть) дескриптор процесса каждый раз, когда я открываю видео в Windows Explorer.

Visual Studio забывает закрыть дескрипторы как минимум двух процессов, в одном случае это воспроизводится всегда. Просто запустите сборку проекта и подождите ~15 минут пока процесс MSBuild.exe закроется. Можно также выставить опцию “set MSBUILDDISABLENODEREUSE=1” и тогда MSBuild.

exe закроется сразу по окончанию сборки и потерянный дескриптор будет виден сразу. К сожалению, какой-то негодяй в Microsoft исправил эту проблему и фикс должен выйти в обновлении VS 15.

6, так что поторопитесь воспроизвести её, пока это ещё работает (надеюсь, не нужно объяснять, что это была шутка и никакой он на самом деле не негодяй).

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

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

  • Утечка в CcmExec.exe (описанный выше случай с 500 000 зомби) — разработчики работают над исправлением
  • Утечка в Program Compatibility Assistant Service — проблема исследуется
  • Утечка в devenv.exe + MSBuild.exe (проблема уже исправлена)
  • Утечка в devenv.exe + ServiceHub.Host.Node.x86.exe (багрепорт отправлен)
  • Утечка в IntelCpHeciSvc.exe + Video.UI.exe для каждого открытого видеофайла (Intel приняла багрепорт и переслала его в Lenovo)
  • Утечка в RuntimeBroker.exe + MicrosoftEdge и Video.UI.exe (возможно, имеет отношение к некоторым другим багам в RuntimeBroker.exe)
  • Утечка в AudioSrv + Video.UI.exe
  • Утечка в одном внутреннем инструменте Google из-за использования старой версии psutil
  • Утечка в утилитах от Lenovo: tphkload.exe теряет один дескриптор, SUService.exe теряет три
  • Утечка в Synaptic’s SynTPEnh.exe

Дескрипторы процессов — не единственный тип ресурсов, который может утекать таким образом. Например, “Intel® Online Connect Access service” (IntelTechnologyAccessService.exe) использует всего 4 МБ оперативной памяти, но, будучи запущенной 30 дней, создаёт 27 504 дескрипторов. Эту проблему можно обнаружить с помощью Диспетчера Задач, я отправил разработчикам багрепорт о ней:

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

Corsair Link Service создаёт ~15 дескрипторов в секунду, не освобождает их совсем. Багрепорт отправлен.

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

Razer Chroma SDK Service теряет ОЧЕНЬ много дескрипторов (150 000 в час?). Багрепорт отправлен.
Удивительно, что никто до этого особо не обращал внимание на подобные баги. Эй, Microsoft, возможно, стоит собирать статистику по таким случаям и что-то предпринимать по этому поводу? Эй, Intel и Nvidia, почистите немного ваш код. Помните, я наблюдаю за вами.

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

Источник: https://habr.com/ru/company/infopulse/blog/349924/

Что такое node.exe? Это безопасно или вирус? Как удалить или исправить это

Servicehub host node x86 exe

node.exe это исполняемый файл, который является частью Adobe Edge Code CC Программа, разработанная Adobe Systems Incorporated, Программное обеспечение обычно о 546.14 KB по размеру.

Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Пожалуйста, прочитайте следующее, чтобы решить для себя, является ли node.exe Файл на вашем компьютере – это вирус или троянский конь, который вы должны удалить, или это действительный файл операционной системы Windows или надежное приложение.

Рекомендуется: Выявление ошибок, связанных с node.exe
(опциональное предложение для Reimage – Cайт | Лицензионное соглашение | Политика Конфиденциальности | Удалить)

Это node.exe безопасно, или это вирус или вредоносная программа?

Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, такой процесс, как node.exe, должен запускаться из C: \ Program Files \ Adobe \ Adobe Edge Code CC \ node.exe, а не где-либо еще.

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

Еще один инструмент, который иногда может помочь вам обнаружить плохие процессы, – это Microsoft Process Explorer. Запустите программу (не требует установки) и активируйте «Проверить легенды» в разделе «Параметры». Теперь перейдите в View -> Select Columns и добавьте «Verified Signer» в качестве одного из столбцов.

Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.

Самые важные факты о node.exe:

  • Находится в C: \ Program Files \ Adobe \ Adobe Edge Code CC \ вложенная;
  • Издатель: Adobe Systems Incorporated
  • Полный путь: C: \ Program Files \ Adobe \ Adobe Edge Code CC \ node.exe
  • Файл справки:
  • URL издателя: creative.adobe.com/products/code
  • Известно, что до 546.14 KB по размеру на большинстве окон;

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

Найдите его местоположение (оно должно быть в C: \ Program Files \ Adobe \ Adobe Edge Code CC \) и сравните размер и т. Д. С приведенными выше фактами.

Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус node.

exe, вам необходимо Загрузите и установите приложение полной безопасности, например Malwarebytes.

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

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

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

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

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

Согласно различным источникам онлайн, 4% людей удаляют этот файл, поэтому он может быть безвредным, но рекомендуется проверить надежность этого исполняемого файла самостоятельно, чтобы определить, является ли он безопасным или вирусом. Лучшая диагностика для этих подозрительных файлов – полный системный анализ с Reimage, Если файл классифицируется как вредоносный, эти приложения также удаляют node.exe и избавляются от связанных вредоносных программ.

Однако, если это не вирус, и вам нужно удалить node.exe, вы можете удалить Adobe Edge Code CC со своего компьютера с помощью деинсталлятора, который должен находиться по адресу: MsiExec.

exe / X {B3EDB8D8-AA2E-F0FA- 1A5A-EDE9F9CAD4A7}. Если вы не можете найти его деинсталлятор, то вам может потребоваться удалить Adobe Edge Code CC, чтобы полностью удалить node.exe.

Вы можете использовать функцию «Установка и удаление программ» на панели управления Windows.

  • 1. в Меню Пуск (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), нажмите панель, а затем под программы:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы.
    o Windows XP: нажмите Добавить или удалить программы.
  • 2. Когда вы найдете программу Adobe Edge Code CCщелкните по нему, а затем:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удалить.
    o Windows XP: нажмите Удалить or Изменить / Удалить вкладка (справа от программы).
  • 3. Следуйте инструкциям по удалению Adobe Edge Code CC.

Распространенные сообщения об ошибках в node.exe

Наиболее распространенные ошибки node.exe, которые могут возникнуть:

• «Ошибка приложения node.exe». • «Ошибка node.exe». • «node.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства». • «node.exe не является допустимым приложением Win32». • «node.exe не запущен». • «node.exe не найден». • «Не удается найти node.exe». • «Ошибка запуска программы: node.exe».

• «Неверный путь к приложению: node.exe».

Эти сообщения об ошибках .exe могут появляться во время установки программы, во время выполнения связанной с ней программы Adobe Edge Code CC, при запуске или завершении работы Windows, или даже при установке операционной системы Windows. Отслеживание момента появления ошибки node.exe является важной информацией при устранении неполадок.

Как исправить node.exe

Аккуратный и опрятный компьютер – это один из лучших способов избежать проблем с Adobe Edge Code CC.

Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска cleanmgr а так же ПФС / SCANNOWудаление ненужных программ, мониторинг любых автозапускаемых программ (с помощью msconfig) и включение автоматических обновлений Windows. Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.

Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему.

Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.

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

Чтобы помочь вам проанализировать процесс node.exe на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска.

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

Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista – Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

(опциональное предложение для Reimage – Cайт | Лицензионное соглашение | Политика Конфиденциальности | Удалить)

Загрузите или переустановите node.exe

это не рекомендуется загружать файлы замены exe с любых сайтов загрузки, так как они могут содержать вирусы и т. д. Если вам нужно скачать или переустановить node.exe, мы рекомендуем переустановить основное приложение, связанное с ним. Adobe Edge Code CC.

Информация об операционной системе

Ошибки node.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Окна 10
  • Окна 8.1
  • Окна 7
  • Windows Vista
  • Windows XP
  • Windows ME
  • Окна 2000

РЕКОМЕНДУЕМЫЕ: Нажмите здесь, чтобы устранить ошибки Windows и оптимизировать производительность системы

Источник: http://windowsbulletin.com/ru/%D1%84%D0%B0%D0%B9%D0%BB%D1%8B/%D0%B5%D1%85%D0%B5/Adobe-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D1%8B/Adobe-Edge-%D0%9A%D0%BE%D0%B4-CC/%D1%83%D0%B7%D0%B5%D0%BB-exe

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.