Ma c: получить память процесса с помощью терминала (когда вы знаете идентификатор процесса) - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь отладить утечку памяти в моем приложении Next. js. Он работает на порту 3000. Мой коллега написал сценарий, который выполняет DDOS-обработку приложения, и сценарий, проверяющий память приложения в Ruby. Вот сценарий, который проверяет память.

# frozen_string_literal: true
loop do
  begin
    puts `pmap #{`lsof -i:3000`.split('node')[1].split(' ')[0]} | tail -n 1`
  rescue StandardError
    nil
  end
  sleep 1
end

Проблема в том, что он работает на Ubuntu, а я на Ma c. pmap у меня не работает. Я нашел vmmap, который распечатывает:

                                 VIRTUAL   RESIDENT      DIRTY    SWAPPED ALLOCATION      BYTES DIRTY+SWAP          REGION
MALLOC ZONE                         SIZE       SIZE       SIZE       SIZE      COUNT  ALLOCATED  FRAG SIZE  % FRAG   COUNT
===========                      =======  =========  =========  =========  =========  =========  =========  ======  ======
DefaultMallocZone_0x10290c000     224.0M      19.3M      19.3M         0K      12230      5653K      13.8M     72%      42

Проблема в том, что RESIDENT SIZE растет для меня для каждого приложения, когда я выполняю DDOS, даже когда я использую тот, у которого 100% нет утечка памяти. Как я могу узнать размер процесса, если я знаю идентификатор процесса на Ma c?

...