2017-01-18 5 views
0

Я пытаюсь найти, сколько памяти каждого пула приложений в настоящее время используется через C#Обнаружение использования памяти нескольких пулов App с использованием C#

Это то, что я имею на данный момент:

List<ApplicationPool> pools = new List<ApplicationPool>(); 
List<WorkerProcess> processes = new List<WorkerProcess>(); 

ServerManager serverManager = new ServerManager(); 
ApplicationPoolCollection appPools = serverManager.ApplicationPools; 

foreach (ApplicationPool pool in appPools) 
{ 
    pools.Add(pool); 
} 

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

Неужели я получил совершенно неправильный конец палки?

Как узнать информацию, которую я хочу?

Я не мог найти прямой ответ нигде, но приношу извинения, если на это был дан ответ.

Приветствия

+0

Я бы подумал, что WMI, вероятно, будет решением. https://msdn.microsoft.com/en-us/library/ms525265(v=vs.90).aspx или счетчики производительности https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0a6c9f07 -a70c-4c3d-b93d-5dfef593c744.mspx? mfr = true – Steve

ответ

0

Вы можете использовать System.Diagnostics, чтобы получить рабочий набор.

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

Is there a way to retrieve a C# app's current memory usage?.

+0

Нужно ли мне то, что мне нужно, все, что мне нужно сделать сейчас, - это выяснить, чтобы различать каждый из процессов w3wp. Cheers –

+0

Если пулы приложений используют ApplicationIdentity, имя пользователя процесса должно быть именем ApplicationPool – Liam

Смежные вопросы