Как узнать сколько памяти занимает программа


8

Я использую htop для наблюдения за моими процессами, но большинство запущенных сервисов являются многопоточными, поэтому они показаны в нескольких строках с процентом использования памяти, который в некоторых случаях одинаков для всех, иногда различается между ними.

Скажем, в случае Firefox он может перечислить 15 процессов, каждый из которых занимает 13% памяти.

Могу ли я узнать, сколько памяти занимает Firefox, MySQL, какой-то скрипт fcgi или что-то еще? поскольку вывод htop кажется вводящим в заблуждение.

Ответы:


6

В большинстве лучших реализаций есть способ включить или отключить отображение потоков.

  • htop: в меню «Параметры настройки / отображения» «Скрыть темы пользовательских областей».
  • Linux top: нажмите Hдля переключения показа потоков (но они по умолчанию отключены).
  • OpenBSD top: нажмите, Tчтобы переключить отображение потоков (но они по умолчанию отключены).

Обратите внимание, что отображение памяти и, следовательно, ее использование - это свойство процесса, поэтому вы всегда будете видеть одинаковые числа для каждого потока в процессе. Если вы видите разные цифры, это означает, что есть несколько процессов.

Нет простого способа узнать общее потребление памяти набором процессов, потому что концепция не является четко определенной. Часть памяти может быть разделена; это происходит постоянно с разделяемыми библиотеками, и, кроме того, связанные процессы (например, несколько экземпляров сервера) с большей вероятностью используют разделяемую память для обмена данными. Если вы просто добавляете цифры, вы часто получаете число, которое намного больше, чем фактически используемая память.


1
Я не осознавал, что концепция памяти процесса не очень хорошо определена, я думаю, именно поэтому все это имеет больше смысла. Спасибо
Jjdelc

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.