как отследить использование цп для windows services?

<p>я использую диспетчер задач windows для отслеживания загрузки процессора. я заметил, что мои приложения перечислены, а службы windows - нет.</p><p>например, общее использование цп указано на уровне 70%, но сводка перечисленных приложений составляет всего около 30%. я предполагаю, что отличие от служб, которые не перечислены на вкладке процессы в диспетчере задач windows.</p>

<p>вот как получить подробную информацию о службе без каких-либо внешних инструментов в windows 7 и 8:</p><p>откройте монитор ресурсов:</p><ul> <li>откройте диспетчер задач и перейдите на вкладку "производительность"</li> <li>нажмите "открыть монитор ресурсов" внизу</li> </ul><p>показать детали сервиса:</p><ul> <li>нажмите на вкладку "cpu"</li> <li>в разделе "процессы" найдите нужный процесс; вы можете сортировать по цп, щелкнув заголовок столбца "цп" <ul> <li>установите флажок рядом с ним</li> </ul> </li> <li>разверните раздел "услуги" ниже; вы увидите, какой конкретный сервис использует процессор</li> </ul><p> <a href="https://i.stack.imgur.com/q7dtp.png"><img src="https://i.stack.imgur.com/q7dtp.png" alt="enter image description here"></a> </p><p>я должен был понять это, потому что svchost потреблял много ресурсов, и это был единственный способ, которым я мог видеть, что upnphost был виновником.</p>

<p>вероятно, лучшим инструментом является process explorer от sysinternals. вы можете получить этот инструмент и многие другие <a href="http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx">здесь</a> .</p><p><strong> редактировать: </strong> чтобы увидеть, какие службы запущены в svchost, а не как отдельный процесс, вам нужно добавить столбец "командная строка" справа окно. к сожалению, это не покажет вам сервисы, которые работают вместе. чтобы увидеть эту информацию в process explorer, вам нужно навести указатель мыши на конкретный экземпляр svchost, о котором идет речь. информация появится во всплывающем окне.</p>

<p>это работало для меня в стандартном диспетчере задач, доступном в windows 7 ultimate:</p><ol> <li>откройте диспетчер задач.</li> <li>нажмите на вкладку [процессы].</li> <li>нажмите кнопку [показать процессы от всех пользователей].</li> <li><strong>щелкните правой кнопкой мыши</strong> <code>svchost.exe</code> которая вызывает у вас проблемы (память, процессор и т. д.)</li> <li>в раскрывающемся меню выберите [перейти к сервису (ам)].</li> </ol><p>это приведет вас к вкладке [службы] с 1 или более <strong>выделенные связанные службы</strong>. обратите внимание, что один <code>svchost.exe</code> может относиться к ряду служб на вкладке [службы].</p>

<p>многие службы запускаются внутри экземпляра общего хост-процесса svchost.exe. вы можете использовать tasklist/svc в командной строке, чтобы получить список служб, работающих внутри каждого экземпляра svchost.exe, наряду с другими процессами.</p><p>вы также можете щелкнуть правой кнопкой мыши по процессу svchost.exe в диспетчере задач и выбрать "перейти к службам", и диспетчер переключится на вкладку служб и выделит соответствующие службы.</p><p>с помощью <a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx">sysinternals process explorer</a> вы можете навести курсор мыши на файл servicehost.exe и увидеть всплывающую подсказку о службах, размещенных внутри.</p><p>ни один из них не скажет вам, сколько процессорного времени процесса службы хоста посвящено конкретной службе участника, размещенной в.</p>

<p>попробуйте бесплатный расширенный диспетчер задач extensoft</p><p> <a href="http://www.extensoft.com/?p=downloads">http://www.extensoft.com/?p=downloads</a> </p><p>перейдите на вкладку <strong> службы </strong> и щелкните правой кнопкой мыши работающую службу, затем нажмите <strong>. перейти к процессу </strong>.</p><p>он вернет вас на вкладку "процессы" и выделит, какой процесс используется этой службой.</p>

<p>вы должны открыть диспетчер задач как администратор. нажмите кнопку "показать процессы от всех пользователей".</p><p>но, как сказал брайан рейтер, многие сервисы размещаются в одном процессе. чтобы понять, какой сервис потребляет ваш процессор, вы можете воспользоваться инструментом <a href="https://sourceforge.net/projects/svcdisclsr/">service disclosure</a> . это позволяет разделить услуги на выделенный процесс. вы сможете увидеть, какой сервис использует ресурсы. после расследования это позволяет вернуть все услуги обратно.</p>