Як слідкувати за пам'яттю, споживаною процесом?


16

У мене є процес, який я хотів би побачити, скільки пам’яті вона споживає, поки вона працює.

Зараз я роблю це:

ps faux | grep casper

Але це просто дає мені інформацію про той момент. Було б добре бачити, як це значення змінюється в міру продовження сценарію.

Якимось чином я можу це зробити?

Відповіді:


15

Спосіб 1

Виконати:

top

Перевірте PID програми (перший стовпець), а потім запустіть:

top -p PID

Спосіб 2

Або вставте це в термінал або збережіть його як mem_usage.sh і запустіть його з терміналу.

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done

1
Як ви можете змінити це, показуючи%? Не цікаво :-)
Вільф

Я отримую це під час запуску сценарію: bash: ./memory_usage.sh: bin / bash: поганий перекладач: Немає такого файлу чи каталогу
Хоммер Сміт

Ба! Я це відредагував! Повинен був це правильно перевірити перед публікацією. Перший рядок повинен сказати, звідки його запустити з / bin / bash (у мене був bin / bash, тому він перевіряв локально в папці під назвою bin for bash)
Джуліан Стерлінг

1
@ wilf ps faux | греп-каспер | awk '{print $ 11} {print $ 6}' Це повинно дати вам в одному рядку назву програми, а в наступному реальний розмір пам'яті в кБ.
Джуліан Стерлінг

7

Щоб контролювати лише ваш процес, ви можете перевірити / proc / PID / статус або / proc / PID / statm.

Про / proc / PID / statm:

Після цього cat /proc/PID/statmви повинні побачити це:

611450 185001 883 18 0 593431 0

Пояснення:

  1. розмір: - загальний розмір програми (611450 X 4096/1024 = 2445800kB = 2388M)
  2. резидент: - розмір набору резидентів (185001 X 4096/1024 = 740004kB = 722M)
  3. поділитися: - спільні сторінки (883 X 4096 = 3532)
  4. trs: - текст (код) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - дані / стек
  6. lrs: - бібліотека (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - брудні сторінки

Також ви можете записати активність пам'яті для вашого процесу, роблячи цикл, використовуючи дату та кішку.


4

ви можете використовувати "top"

man top

Ця програма дозволяє сортувати використання ресурсів, серед іншого, за RSS, VSZ, процесором тощо. Це дуже корисно.

Крім того, для більш детального розподілу використання пам'яті спробуйте "pmap"

man pmap

Приклад використання:

pmap -x 1234

ура

sc.


1
З pmap -x PID, ви мали на увазі неймовірно детальне використання :-)
Вільф

дійсно - ніколи не може мати достатньо деталей :)
швейцарці

1
У моєму (Ubuntu 16.04.5 LTS) "pmap -x" з PID не показує нічого, крім PID та команди. -X робить те ж саме.
orrd

2

Відкрийте Монітор системи та перейдіть на Processesвкладку:


1

Спробуйте:

watch 'ps faux | grep -v grep | grep casper'

Ви також можете змінити інтервал оновлення за допомогою --interval <seconds>параметра.


1
Вам не потрібна -v grep, якщо ви зміните остаточну на grep [c] asper. Це відповідає каспера, але не самому.
Wudang
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.