Я использовал это для мониторинга виртуальной и RSS-памяти и количества собственных потоков:
for((i=0;;++i)) { echo $i ` grep VmSize /proc/\21009/status | grep -o '[0-9]*'` ` grep VmRSS /proc/\21009/status | grep -o '[0-9]*'` ` grep Threads /proc/\21009/status | grep -o '[0-9]*'` ; sleep 1 || break; } > data
Создает разделенный пробелами файл, который вы можете легко импортировать в ваш любимый инструмент для работы с электронными таблицами.
Вам необходимо заменить 21009 идентификатором процесса Java-процесса, который вы, конечно, хотите отслеживать.
Это не полностью отвечает на мой собственный вопрос, так как я хотел иметь возможность взглянуть только на то, что выделил материал NIO, а не на всю память, используемую JVM, хотя этот небольшой скрипт уже доказал, что я достаточно полезен, чтобы увидеть, что в исследуемой мной программе нет утечек памяти.