Я хочу получить использование процессора и памяти для одного процесса в Linux - я знаю PID. Надеюсь, я могу получить его каждую секунду и записать его в CSV, используя команду «watch». Какую команду я могу использовать, чтобы получить эту информацию из командной строки Linux?
linux
shell
memory-management
cpu-usage
SuperTux
источник
источник
Ответы:
(Вы можете не указывать "cmd", но это может помочь при отладке).
Обратите внимание, что это дает среднюю загрузку ЦП процесса за время его выполнения.
источник
| tail -n +2
ps
). Это не реальное время загрузки процессора. Это также может сильно отличаться от тогоtop
, что показывает, например.ps -e -o pcpu,args
покажет среднее значение процессора за время жизни процесса, что явно не то, что вы хотите, если это длительный процессВариант ответа кафе :
top -p <pid>
Это автоматически обновляет загрузку ЦП, так что это хорошо для мониторинга.
источник
pgrep
:top -p $(pgrep process_name)
Вы можете получить результаты по названию процесса, используя
-C
опция позволяет использовать имя процесса , не зная , что это идентификатор процесса .источник
pid
только должен работать.ps -C chrome -o pid,%cpu,%mem,cmd
Используйте pidstat (из sysstat - см . Ссылку ).
например, чтобы контролировать эти два идентификатора процесса (12345 и 11223) каждые 5 секунд, используйте
источник
pidstat
что это отличная команда, и очень удобная для сценариев!pidstat
также дает хороший средний. просто позор, я не нашел более элегантный способpidstat -u 1 10 | grep ^Average | sort -r -n -b -k 8,8
ps
Команда (не следует использовать):top
команда (должна использовать):Используйте
top
для получения загрузки процессора в режиме реального времени (текущий короткий интервал):top -b -n 2 -d 0.2 -p 6962 | tail -1 | awk '{print $9}'
будет повторяться как:
78.6
-b
: Пакетный режим-n 2
: Количество итераций, используйте2
потому что: Когда вы запускаете его в первый раз, у него нет предыдущего образца для сравнения, поэтому эти начальные значения представляют собой проценты с момента загрузки.-d 0.2
: Время задержки (в секундах, здесь 200 мс)-p 6962
: Monitor-PIDstail -1
: последний рядawk '{print $9}'
: 9-й столбец (номер использования процессора)источник
Запустите программу и следите за ней
Эта форма полезна, если вы хотите легко сравнить исполняемый файл:
Теперь, когда вы нажимаете Ctrl + C, он выходит из программы и прекращает мониторинг. Пример вывода:
Связанный: /unix/554/how-to-monitor-cpu-memory-usage-of-a-single-process
Проверено на Ubuntu 16.04.
источник
Вы можете использовать
top -b
и извлекать pid, который вы хотите (с-b
верхом флага в пакетном режиме), или также использовать-p
флаг и указывать pid без использования grep.источник
Как отмечалось в ответе caf выше, ps и в некоторых случаях pidstat даст вам среднее время жизни pCPU. Для получения более точных результатов используйте top. Если вам нужно запустить top после запуска:
или для обработки только данных и заголовка:
без заголовков:
источник
или за процесс
источник
Для тех, кто долго боролся с вопросом, почему выбранный ответ не работает:
Никакого ПРОСТРАНСТВА между
%cpu,
и%mem
.источник
Следующая команда получает среднее значение использования процессора и памяти каждые 40 секунд для определенного процесса (pid)
Вывод для моего случая (первые две строки для загрузки процессора, вторые две строки для памяти):
источник
Чтобы получить использование памяти только вашим приложением (в отличие от используемых совместно используемых библиотек, вам нужно использовать интерфейс Linux smaps). Этот ответ объясняет это хорошо .
источник
где первый столбец - это PID, загрузка ЦП во втором столбце, использование памяти в третьем столбце.
источник
PID - идентификатор процесса
etime - запуск процесса / продолжительность в реальном времени
% cpu - загрузка процессора
% mem - использование памяти
cmd - команда
Замените имя процесса любым процессом, который вы хотите отслеживать, mysql nginx php-fpm и т. Д.
источник
Все ответы здесь показывают только процент памяти для PID.
Вот пример того, как получить использование rss-памяти в КБ для всех процессов apache, замените «grep apache» на «grep PID», если вы просто хотите посмотреть конкретный PID:
Это печатает:
С CPU%:
Вывод:
источник
Это хороший прием, чтобы следить за одной или несколькими программами в режиме реального времени, а также наблюдать за выходом какого-либо другого инструмента:
watch "top -bn1 -p$(pidof foo),$(pidof bar); tool"
источник
(Если вы находитесь в MacOS 10.10, попробуйте накопительную опцию -c top:
(Этот параметр недоступен в других linux, пробовал с Scientific Linux el6 и RHEL6)
источник
Выше приведен список процессоров и процессоров, занимающих много памяти
источник
Судя по ответу @ caf, это хорошо работает для меня.
Рассчитать среднее значение для данного PID:
measure.sh
Использование:
источник
Использование ЦП и памяти одного процесса в Linux, или вы можете получить топ-10 процессоров, используемых процессором, используя команду ниже
ps -aux --sort -pcpu | голова -n 11
источник