Попытайтесь использовать -A
опция для передачи подлинного соединения агента, чего-то вроде этого:
ssh -A serverA 'bash -s' < deploy.sh
Попробуйте:
pidof bash | xargs ps -o rss,sz,vsz
Найти использование памяти в вашей текущей оболочке bash
(предполагая, что вы используете bash
). Измените bash
на то, что вы исследуете. Если вам нужен один конкретный процесс, просто используйте его самостоятельно:
ps -o rss,sz,vsz <process id>
Со страницы man
:
RSS
: размер резидентного множества, физическую память без подкачки, которую использовала задача (в килобайтах).
SZ
: размер в физических страницах образа ядра процесса. Включает в себя текст, данные и пространство стека.
VSZ
: размер виртуальной памяти процесса в килобайтах (1024 байта).
На странице man
для ps
перечисляются все возможные аргументы опции -o
(их довольно много). Вместо -o rss,sz
можно использовать опцию BSD стиля v
(без тире), которая показывает альтернативную раскладку памяти.
Вы можете использовать pmap
, который показывает карту памяти процесса:
pmap -p pid
Более подробную информацию о ней смотрите в man-странице man pmap
или посмотрите на pmap(1): report memory map of process - Linux man page.
how to find out the total memory allocated for a particular process in ubuntu?
Вы не определяете, что такое память, выделенная для процесса, и на самом деле это довольно сложный вопрос (как насчет отображений разделяемой памяти -см. mmap (2)для подробностей; как насчет разделяемой памяти POSIX -см. shm _обзор (7)для получения дополнительной информации; как насчет некоторых страниц в кэше страниц , используемых для открытых файлов; и т.д...)
Вы можете использовать /proc/
файловую систему (, которая, кстати, используется ps
, pmap
, top
, htop
и т.д.... ). Прочтите proc (5)для получения дополнительной информации. В частности, для процесса pid 1234 вы можете использовать /proc/1234/status
, /proc/1234/statm
, /proc/1234/maps
и т. д. Все они представляют собой текстовые псевдофайлы -(, немного похожие на конвейеры ), которые вы можете увидеть с помощьюcat
(или прочитать последовательно внутри какой-нибудь программы ). Кстати, внутри программы вы можете использовать /proc/self
(, которая является псевдосимволической ссылкой ), например. читать последовательно /proc/self/status
и т.д...
См. также LinuxAteMyRam .