Поиск использования памяти несколькими пулами приложений с помощью 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 не дает мне никакой информации об его использовании или данных в реальном времени.

Я ошибся концом палки?

Как мне узнать нужную мне информацию?

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

Ваше здоровье


person Alex Clements    schedule 18.01.2017    source источник
comment
Я бы подумал, что WMI, вероятно, станет решением. msdn.microsoft.com/en-us/library /ms525265(v=vs.90).aspx или счетчики производительности microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/   -  person Steve    schedule 18.01.2017


Ответы (1)


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

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

Есть ли способ получить C # текущее использование памяти приложением?.

person Liam    schedule 18.01.2017
comment
Делает именно то, что мне нужно, все, что мне нужно сделать сейчас, это выяснить, чтобы различать каждый из процессов w3wp. Ваше здоровье - person Alex Clements; 19.01.2017
comment
Если пулы приложений используют ApplicationIdentity, имя пользователя процесса должно быть именем ApplicationPool. - person Liam; 19.01.2017