Как узнать максимальное использование памяти программой, не являющейся демоном?

Я решил проблему с помощью команды at. Инструменты at могут планировать выполнение задач в заданное время, в нашем случае мы будем использовать время «сейчас», чтобы запустить их немедленно.

Если у вас не установлена ​​команда at, вы должны ее установить:

sudo apt-get install at

Затем создайте текстовый файл со списком команд, которые вы хотите запускать без тайм-аута, разделенных новыми строками, и назовите его как хотите. , скажем "команда". Затем добавьте эту строку к вашему сценарию usbmount:

at -f command now

Таким образом, он должен избежать тайм-аута.

2
16.03.2017, 13:11
1 ответ

Вы можете использовать '/ usr / bin / time', в приведенном ниже примере мы используем perl для использования части памяти. Это дает хороший уровень детализации, чтобы увидеть, что потребляет процесс. Если вы хотите отслеживать, что происходит, посмотрите пример ниже, где pmap используется в pid. Основная часть вывода pmap опущена, но последняя строка покажет сводку использования памяти.

$ /usr/bin/time --verbose perl -e 'my $a = "a" x 919200000;'
    Command being timed: "perl -e my $a = "a" x 919200000;"
    User time (seconds): 0.19
    System time (seconds): 0.38
    Percent of CPU this job got: 99%*emphasized text*
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.57
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 1798908
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 449020
    Voluntary context switches: 1
    Involuntary context switches: 2
    Swaps: 0
    File system inputs: 0
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

pmap:

$ pmap -x $( pgrep firefox ) 
Address           Kbytes     RSS   Dirty Mode  Mapping
...
00007fffa75fc000       8       8       0 r-x--   [ anon ]
00007fffa75fe000       8       0       0 r----   [ anon ]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         1865700  548748  422532

Чтобы собрать только последнюю строку, вы можете использовать tail -1 для последней строки. Если вам нужен только общий объем памяти, то более подходящим может быть awk, удалите при необходимости:

$ pmap -x $( pgrep firefox ) | awk '{ if( $_ ~ /^total/ ) { printf( "%d %d %d\n", $3, $4, $5 ); } }'
1976996 595644 478532
2
27.01.2020, 22:10

Теги

Похожие вопросы