Когда я проверяю free
один из серверов Prod, он показывает, что используется 70% памяти:
total used free shared buffers cached
Mem: 164923172 141171860 23751312 0 4555616 20648048
-/+ buffers/cache: 115968196 48954976
Swap: 8388600 0 8388600
Но я не нашел, какой процесс использует память, я попробовал top
команду, и она показывает процесс, использующий память только 1.1 и 5.4%.
Как я могу найти, какой процесс использует память?
Ниже приведены основные результаты команды:
15085 couchbas 25 0 2784m 2.4g 40m S 183.7 1.5 299597:00 beam.smp
28248 tibco 18 0 124m 100m 3440 S 20.9 0.1 2721:45 tibemsd
15334 couchbas 15 0 9114m 8.6g 3288 S 9.0 5.4 12996:28 memcached
15335 couchbas 18 0 6024 600 468 S 2.0 0.0 1704:54 sigar_port
15319 couchbas 15 0 775m 2516 944 S 0.7 0.0 269:13.41 i386-linux-godu
12167 tibco 16 0 11284 1464 784 R 0.3 0.0 0:00.04 top
12701 root 15 0 451m 427m 2140 S 0.3 0.3 18:25.02 controller
13163 root 11 -5 0 0 0 S 0.3 0.0 289:58.58 vxglm_thread
Ответы:
Это покажет вам 10 лучших процессов, которые используют больше всего памяти:
используя top: когда вы открываете верхнюю часть, нажатие
m
сокращает процесс на основе использования памятиНо это не решит вашу проблему, в Linux все является либо файлом, либо процессом. так что файлы, которые вы открыли, тоже будут поглощать память. так что это не поможет.
lsof
выдаст вам все открытые файлы с размером файла или смещением файла в байтах.источник
head
вместо этого сценария awk - он дает тот же результат, и вы экономите себя, написав много странных символов.Ваш баран на самом деле не используется. По умолчанию Linux просто кэширует содержимое вашего диска и помещает то, что кеширует, в раздел «used» оперативной памяти.
Если вы загружаете приложения, которые на самом деле используют эту оперативную память, это будет их для использования.
Смотрите http://www.linuxatemyram.com/
источник
Вы можете передать ps и отсортировать, чтобы получить процесс, используя больше памяти. Это также позволит вам указать другие детали процесса, которые вы хотите видеть вместе с ним:
PS: Выше предполагается, что ваш столбец памяти сначала " sort -k 1 -n -r "
источник
Вы можете использовать команду slabtop для просмотра того, какие объекты slab используются ядром.
Также вы можете проверить вывод / proc / meminfo
Ищите эти 2 строки в выводе
Вышеприведенный пример показывает, что ядро использует 68 МБ кэша slab, а 21 МБ может быть восстановлено. Чтобы восстановить, вы можете использовать технику, описанную здесь https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/Performance_Tuning_Guide/#s-memory-tunables
источник
Для интерактивного анализа вы можете использовать
htop
, а затем нажать функциональную клавишу,F6
чтобы выбрать порядок сортировки, напримерPERCENT_CPU
(использование памяти в процентах),M_RESIDENT
(размер резидентной памяти, используемая реальная память),M_SIZE
(размер виртуальной памяти) илиM_SHARE
(размер Общая память). Первые два являются соответствующими числами .Зеленые линии - это нити. Хит (верхний регистр)
K
иH
скрыть их.источник