Я пытаюсь отладить утечку памяти в моем приложении 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?