У меня есть сервер mysql, на котором запущен debian с 2GO RAM. Я хотел бы знать, какой объем памяти используется каждым процессом.
Я думал, что команда ps -aux и ее параметры. Но я вижу только 90 MO, используемых несколькими процессами, а free -m сообщает мне, что используется 1400 MO.
Есть ли способ лучше видеть процессы и используемую ими память?
srv-datax:~# free -m
total used free shared buffers cached
Mem: 2015 1476 539 0 0 70
-/+ buffers/cache: 1405 609
Swap: 486 0 486
#top
хороший вариант
#top -H
позволяет отслеживать все потоки
#top -U root
такой тип использования переключателя '-U' позволяет отслеживать список для конкретного пользователя
Вы должны опубликовать свой бесплатный вывод, чтобы мы знали, что вы читаете правильно. Использование памяти в Linux для процесса сложно конкретно определить, если вы действительно хотите вникнуть в подробности и иметь последнее ядро, проверьте cat /proc/<pid>/smaps
.
Top отлично справляется, ищите эти заголовки:
VIRT RES SHR S %MEM
Другой вариант в том же духе, что и предложил AbhishekKr: ps aux
даст вам разбивку памяти, используемой каждым процессом в системе.
VSZ => Виртуальный размер (используется физическая RAM + своп), RSS => Резидентный размер (только физическая RAM).
В % MEM столбец отображает% используемой физической RAM, если память не изменяет, уверен, кто-нибудь поправит меня, если я ошибаюсь :)
В дополнение к тому, что предложил Кайл Брандт, вы можете использовать Инструмент pmap
что красиво резюмирует информацию, найденную в / proc / <pid> / smap. Если вы используете -d
вариант, он покажет вам, сколько памяти отображено, совместно используется и установлено частной. Это, ИМХО, дает хороший обзор.
Я также могу предложить прочитать эта интересная статья об использовании памяти.