1

Я запускаю Windows XP, и через некоторое время она становится вялой. Я подозреваю, что Firefox потребляет слишком много памяти, но заметил, что некоторые другие программы «медленно» закрываются при перезагрузке.

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

В Unix-стране я неоднократно запускал снимки ps и смотрел на RSS (и явно игнорировал страницы общей памяти), вычисляя, что

  • сейчас свинья
  • вырос больше всего (пока я не искал).

Мне нужно около 8-24 часов истории на процесс, а не только то, что умещается на экране.

Есть идеи?

6 ответов6

5

Некоторое время назад я написал Windows Perfmon: Top Ten Counter в моем старом блоге. Эта статья представляет собой краткое введение в использование Perfmon для определения узких мест оборудования: процессора, памяти, диска или сети (и во-вторых, для определения текущей рабочей нагрузки на эти ресурсы). Я не могу особо подчеркнуть этот шаг: сначала убедитесь, что вы знаете, какой аппаратный ресурс перегружен. Тогда отправляйтесь на охоту за боровом.

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

Самый простой способ отследить основные ресурсы - это Process Explorer. Обязательно запустите его из учетной записи с правами администратора. Вот быстрый и грязный список того, что нужно искать:

  • Для узких мест в памяти (наиболее распространенных узких мест) используйте столбцы Рабочий набор, Виртуальный размер и История личных байтов на вкладке Память процесса . Сортируйте столбцы по порядку по убыванию (самые большие значения в верхней части столбца). Из них рабочий набор обычно является наиболее ценным.
  • Для узких мест ЦП, очевидно, вы хотите столбец использования ЦП . История процессора также удобна. Они находятся на вкладке « Производительность процесса ». Опять сортировка по убыванию. Это значение имеет тенденцию превышать значения использования памяти, поэтому не делайте поспешных суждений. Посмотрите, какое время ваш главный подозреваемый останется на вершине более нескольких секунд.
  • Для дисков узких мест (которые часто фактически узкие места памяти , поскольку система вынуждена страницы материала с диска слишком часто) , вы на самом деле не имеют большой выбор, потому что Windows , не на процесс ввода / вывода диска счетчики системного монитора. Однако вы можете посмотреть на общее количество операций ввода-вывода для каждого процесса (включая дисковый, сетевой и устройства ввода-вывода), вы можете использовать счетчики чтения байтов ввода-вывода и байтов записи ввода-вывода в качестве приблизительной оценки. Они находятся на вкладке « Производительность процесса ».
  • Узкие места в сети вряд ли будут вашей проблемой, но, поскольку сетевые счетчики для каждого процесса сосредоточены на вводе / выводе, вы можете получить приблизительное представление таким же образом, как я описал выше для узких мест на диске. Вы сами должны определить, являются ли входы / выходы, которые вы видите в этих столбцах, более вероятными, являются ли дисковые или сетевые входы / выходы. Если бы вы работали с Vista / 2008/7, вы бы получили небольшую помощь от Windows Performance Tools, которую я обсуждаю в своем новом блоге.

Удачи!

3

Там есть perfmon.msc и есть Process Monitor sysInternals, который регистрирует.

1

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

1

Надежной альтернативой встроенному диспетчеру задач (taskmgr.exe) является Process Explorer (procexp.exe). Process Explorer был создан SysInternals и теперь принадлежит и распространяется Microsoft.

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

1

вы можете использовать ps из sysinternals или ps из cygwin или если вы знаете разработчика, написать программу для каждого процесса и извлечь определенную статистику - тривиально.

Этот код должен действительно быть в стеке потока, и повелители могут что-то сказать, но это дает вам представление о том, насколько простой может быть эта задача:

public static string ListAllApplications()
{
    StringBuilder sb = new StringBuilder();

    foreach (Process p in Process.GetProcesses("."))
    {
        try
        {
            if (p.MainWindowTitle.Length > 0)
            {
                sb.Append("Window Title:\t" +
                    p.MainWindowTitle.ToString()
                    + Environment.NewLine);

                sb.Append("Process Name:\t" +
                    p.ProcessName.ToString()
                    + Environment.NewLine);

                sb.Append("Window Handle:\t" +
                    p.MainWindowHandle.ToString()
                    + Environment.NewLine);

                sb.Append("Memory Allocation:\t" +
                    p.PrivateMemorySize64.ToString()
                    + Environment.NewLine);

                sb.Append(Environment.NewLine);
            }
        }
        catch { }
    }

    return sb.ToString();
}
0

У меня есть эта проблема все время. Firefox обычно является моим основным нарушителем, но иногда я запускаю что-то с утечкой памяти.

Я знаю, что было сказано раньше, но я скажу это снова ... Process Explorer на самом деле имеет очень удобную функцию, где вы можете настроить его, чтобы предоставить несколько дополнительных столбцов информации. В частности, интересующие вас дополнительные столбцы - это "История процессора" и "История частных байтов". Я думаю, что это информация, которую вы пытаетесь найти в системе. Он показывает график прокрутки для каждого процесса.

альтернативный текст

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .