Как иметь размеры на Linux, пиковая память приложения после закончилась

Это изменяется путем изменения переменной среды PS1.

Вы видите текущее значение PS1 :

root@monu dev# echo $PS1

Вы видите значение, чтобы быть равными \u@\h \w\$, где:

  • \u :имя пользователя
  • \h : имя хоста
  • \w : текущий рабочий каталог
  • \$ : a # символ для пользователя root, a $ символ для других пользователей

Если Вы хотите, чтобы изменение было постоянным, необходимо добавить сценарий, изменяющий значение PS1 в ~/.bashrc, начиная с этого это выполняется каждый раз, когда пользователь входит в систему.

11
28.05.2013, 14:46
2 ответа

Вот 2 метода для отслеживания пикового использования памяти процессов.

Густой

Я не использовал этот инструмент, но он походит на то, что Вы ищете. Это назвало Густым.

Описание

Густой сценарий Python, который регулярно берет снимки загрузки в память и загрузку ЦП одного или нескольких рабочих процессов, чтобы динамично создать профиль их использования системных ресурсов.

Пример

$ syrupy.py myprog

  PID DATE        TIME     ELAPSED  CPU   MEM    RSS   VSIZE
14634 2008-10-10  20:45:25   00:00  0.0   0.0   2996    6680
14634 2008-10-10  20:45:26   00:01  105   0.2   7804   12592
14634 2008-10-10  20:45:27   00:02  103   0.2   8996   13776
14634 2008-10-10  20:45:28   00:03  103   0.2  10468   15348
14634 2008-10-10  20:45:29   00:04  103   0.3  11412   16396
14634 2008-10-10  20:45:30   00:05  104   0.3  12492   17444

/usr/bin/time -v

Да иронически команда времени GNU может дать Вам пиковое использование памяти процесса. Это сообщает о пиковой памяти как так: Maximum resident set size (kbytes).

Пример

$ /usr/bin/time -v ~/projects/prime_numbers/eratosthenes_prime_sieve.pl 10 1000000
...

    Command being timed: "/home/saml/projects/prime_numbers/eratosthenes_prime_sieve.pl 10 1000000"
    User time (seconds): 1.12
    System time (seconds): 0.05
    Percent of CPU this job got: 54%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.19
    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): 79304
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 20014
    Voluntary context switches: 83
    Involuntary context switches: 274
    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

Ссылки

13
27.01.2020, 19:58

Несмотря на то, что тема довольно старая, я хочу поделиться другим проектом, появившимся из функции ядра CGRUPS Linux.

https://github.com/gsauthof/cgmemimeTime :

CGMEMTIME измеряет использование памяти с высокой водой RSS + кэша процесса и его потомки процессы.

Быть в состоянии сделать это, это помещает процесс в свою собственную cgroup.

Например, процесс A выделения 10 MIB и вилки ребенка B, что выделяет 20 миб и этот вил ребенка C, который выделяет 30 миб. Все три процесса разделяют окно времени, где их выделения приводят к Соответствующий RSS (размер резидента) Использование памяти.

Теперь вопрос: сколько памяти на самом деле используется в результате Бег?

Ответ: 60 MIB

CGMemime - это инструмент для ответа на такие вопросы.

Примеры использования были бы:

$ sudo ./cgmemtime --setup -g <myusergroup> --perm 775

$ ./cgmemtime ./testa x 10 20 30
Parent PID is 27189
Allocating 10 MiBs
New Child: 27193
Allocating 20 MiBs
New Child: 27194
Allocating 30 MiBs
Child user:    0.000 s
Child sys :    0.005 s
Child wall:    6.006 s
Child high-water RSS                    :      11648 KiB
Recursive and acc. high-water RSS+CACHE :      61840 KiB

$ ./cgmemtime python -c 'print range(100000)[48517]'
48517
Child user:    0.014 s
Child sys :    0.014 s
Child wall:    0.029 s
Child high-water RSS                    :       9948 KiB
Recursive and acc. high-water RSS+CACHE :       5724 KiB
3
27.01.2020, 19:58

Теги

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