Что использует память?

Согласно htop и free , машина, на которую я смотрю, в настоящее время находится на 6631/11907 МБ ОЗУ. Это более или менее половина доступной оперативной памяти. Однако, когда я сортирую top или top помощью MEM%, большая часть памяти используется Xorg с 0,8% MEM. gnome-settings использует 0,3%, а пара других использует 0,1%. Эти проценты не составляют до 50%.

Как я могу узнать, что использует ~ 50% памяти, и почему я не вижу это использование памяти в top / htop?

Выход free -mt :

  total used free shared buffers cached Mem: 11907 10660 1246 0 650 3379 -/+ buffers/cache: 6629 5277 Swap: 3999 26 3973 Total: 15907 10686 5220 

EDIT : по запросу …

vmstat 1 5

 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- rb swpd free buff cache si so bi bo in cs us sy id wa st 0 0 26640 312180 695976 4229988 0 0 4 34 0 1 1 1 96 2 0 0 0 26640 312032 695976 4230016 0 0 0 0 157 191 0 0 100 0 0 0 0 26640 312156 695976 4230016 0 0 0 0 158 270 0 0 100 0 0 0 0 26640 312156 695976 4230016 0 0 0 0 128 189 0 0 100 0 0 0 0 26640 312156 695976 4230016 0 0 0 0 212 308 0 0 100 0 0 

cat / proc / meminfo

 MemTotal: 12192876 kB MemFree: 311644 kB Buffers: 695984 kB Cached: 4230016 kB SwapCached: 7684 kB Active: 1378792 kB Inactive: 3656424 kB Active(anon): 2192 kB Inactive(anon): 108500 kB Active(file): 1376600 kB Inactive(file): 3547924 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 4095992 kB SwapFree: 4069352 kB Dirty: 28 kB Writeback: 0 kB AnonPages: 102412 kB Mapped: 52116 kB Shmem: 1456 kB Slab: 5584084 kB SReclaimable: 4402760 kB SUnreclaim: 1181324 kB KernelStack: 3176 kB PageTables: 17852 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 10192428 kB Committed_AS: 678004 kB VmallocTotal: 34359738367 kB VmallocUsed: 185496 kB VmallocChunk: 34359540220 kB HardwareCorrupted: 0 kB AnonHugePages: 28672 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 5177316 kB DirectMap2M: 7403520 kB DirectMap1G: 0 kB 

4 Solutions collect form web for “Что использует память?”

Проблема может быть связана с разделяемой памятью, которая не учитывается многими утилитами, потому что разделена между несколькими процессами. Вы можете проверить с smemstat утилиты smemstat («использование памяти отчета с разделяемой памятью пропорционально»).

EDIT: значительная часть памяти также может быть использована ядром (включенным в used значение free вывода). Посмотрите содержимое /proc/meminfo . Согласно отслеживанию «отсутствия» использования памяти в Linux , Slab + Shmem + KernelStack + PageTables дает пространство ядра. Слэб кажется довольно важным в целом.

У других пользователей были проблемы:

  • Использование ОЗУ не складывается? (Free + used <total) (из-за ошибки, связанной с NFS)
  • Несоответствие между используемой памятью и суммой использования памяти приложения

Существует два возможных объяснения расхождения:

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

Первое легко определить, второе … аналогично, но с предостережением вам нужно найти несколько процессов, которые используют вашу оперативную память. ps, uniq и сортировка могут помочь вам:

 ➜ ~ ps axco command | uniq -c | sort -nr | head 2 xdg-open <defunct> 2 mplayer 1 zsh 1 zsh 1 zsh 1 x-session-manag 1 xprop 1 Xorg 1 writeback 1 watchdog/0 

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

Вы уже получили свой ответ со свободной командой, поэтому,

 free -m -/+ buffers/cache: 6629 5277 

это то, что вам нужно, чтобы эти значения были реальной памятью, поэтому у вас есть 5277 реальной свободной памяти, и вы так не видите ее top или top

Первое поле бесплатно:

  total used free shared buffers cached Mem: 11907 10660 1246 0 650 3379 

Это показывает память, которая фактически зарезервирована ОС (ядро), а не реальна, используемая без буферов, вы можете проконсультироваться с vmstat для получения дополнительной информации и модуля mdb -k чтобы проверить использование memmory ядром и вычислить его с помощью vaulues из free команды.

Поскольку я уже указывал, что ваша память зарезервирована (кэширована) ядром, и она остается там, пока некоторые из приложений не запросят ее. Вот почему вы не можете видеть, какой процесс использует его.

Пожалуйста, дайте вывод cat /proc/meminfo и cat /proc/meminfo поле кеша, которое на самом деле используется ядром!

У вас есть 1246 МБ полностью свободной памяти, НО 5277 мб, которые вы видите, не имеет «кэшированной» памяти. Это означает, что ОС поставила некоторые вещи в вашей памяти быстрее. Он называет это «использованным» (поэтому ваш «свободный» номер – только 1246), но он действительно доступен для вас, если вам это нужно.

см. этот ответ: `free`: формат вывода

  • Как измерить тактовый импульс моего компьютера вручную?
  • Unix, чтобы указать, сколько оперативной памяти было использовано во время выполнения программы?
  • Уменьшите размер кеша флеш-накопителей
  • сравнение производительности нескольких команд
  • Какая память не используется процессами и освобождается `echo 3> / proc / sys / vm / drop_caches`?
  • использование максимальной памяти памяти из журнала
  • Как сбрасывать образ памяти из Linux-системы?
  • Как узнать, что именно написано или какой процесс поддерживает мой дисковый накопитель?
  • Системный вызов getrusage: что такое «максимальный размер резидентного набора»
  • Выполняет ли синхронизация команду удалить грязный кэш в памяти?
  • Как адрес ядра заменяет страницы памяти на swap partition \ file?
  • Interesting Posts

    Преобразовать .out файл в .pdf с помощью сценария оболочки

    Как вы блокируете определенный процесс (например, vim) от доступа к установленному диску?

    Неправильно ли устанавливать оболочку корня в нечто иное, чем значение по умолчанию?

    Синтаксис строки для макроса kbd в Emacs

    NIS и / etc / passwd

    Как разблокировать учетную запись для авторизации ssh с открытым ключом, но не для авторизации пароля?

    повторить строку, разделив одно поле

    Подпись экрана GNU

    Интеграция примеров соответствия шаблонов в справке mutt

    Тестирование RegExp с зольной оболочкой (BusyBox)

    Подстановочный знак Bash для соответствия точно n символам

    Неудовлетворенная зависимость после обновления дистрибутива linux mint

    Почему SCPed-repository имеет другой размер?

    Как выйти из полноэкранного режима после включения через контекстное меню контекстного меню kwin (KDE)?

    Загрузка изображения GRUB2 непосредственно в QEMU

    Linux и Unix - лучшая ОС в мире.