CentOS: Почему процесс 'cma' занимает так много оперативной памяти?

Я проверял использование ресурсов моего сервера и заметил, что процесс "cma" использует много оперативной памяти.

top - 15:04:54 up 127 days, 21:00,  1 user,  load average: 0.27, 0.33, 0.24
Tasks: 157 total,   1 running, 156 sleeping,   0 stopped,   0 zombie
Cpu(s):  6.9%us,  0.3%sy,  0.0%ni, 92.6%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   4043700k total,  4006616k used,    37084k free,   146968k buffers
Swap:  1052248k total,  1052240k used,        8k free,  1351364k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 4308 root      16   0 2080m 977m 4708 S  0.0 24.8   0:00.02 cma                 
 4396 root      15   0 2080m 977m 4708 S  0.0 24.8   0:00.10 cma                 
 4397 root      16   0 2080m 977m 4708 S  0.0 24.8   3:47.36 cma                 
 4398 root      15   0 2080m 977m 4708 S  0.0 24.8   2:31.40 cma                
 4399 root      15   0 2080m 977m 4708 S  0.0 24.8   0:00.34 cma                 
 4400 root      18   0 2080m 977m 4708 S  0.0 24.8   0:00.00 cma                 
 4403 root      15   0 2080m 977m 4708 S  0.0 24.8   0:47.36 cma                 
 4404 root      18   0 2080m 977m 4708 S  0.0 24.8   0:00.07 cma                 
 4405 root      18   0 2080m 977m 4708 S  0.0 24.8   0:00.04 cma                 
 4406 root      15   0 2080m 977m 4708 S  0.0 24.8   0:12.14 cma                 
 4408 root      19   0 2080m 977m 4708 S  0.0 24.8   0:00.00 cma       

Я нашел этот пост на форуме в прошлом году, и, очевидно, эти процессы связаны со сканированием на вирусы McAfee.

Я запустил pmap на одном из процессов, и это последняя строка вывода:

mapped: 2130892K    writeable/private: 2113632K    shared: 40K

Действительно ли этот процесс использует 2,1 ГБ памяти? Топ точно сообщает об использовании памяти>

Спасибо!

1 ответ

Решение

В столбце VIRT указывается общий размер сегментов виртуальной памяти, отображаемых в процессе - это включает в себя сам исполняемый файл, библиотеки, сегменты данных, стек, кучу, отображенные в память файлы и т. Д. В некотором смысле это общий объем памяти. что процесс в настоящее время имеет разрешение на то или иное касание (чтение, запись, выполнение). Процесс не обязательно использует все это, что является одной из нескольких причин, по которым столбец RES сообщает меньшее число. RES - это общий размер подмножества размера VIRT, который на данный момент фактически находится в физической памяти. Это лучший (но все же не очень хороший) показатель того, сколько памяти фактически использует процесс - тот факт, что он находится в памяти, указывает на то, что он использовался или в настоящее время активно используется. Однако, если в вашей системе много памяти, часть этого номера RES, возможно, была затронута 3 дня назад, а не с тех пор, поэтому она может не использоваться активно. И наоборот, если у вас недостаточно памяти, процесс может пытаться активно использовать больше, чем указывает в настоящее время RES, что приведет к подкачке / обмену и проблемам с производительностью.

Кроме того, существует тенденция к тому, что некоторые типы памяти (исполняемые файлы, библиотеки) распределяются между несколькими экземплярами программы, наличием разделяемой памяти типа IPC и несколькими другими факторами, которые влияют на то, "сколько памяти использует этот процесс?"...

Другими словами, это не такой простой вопрос, как вы можете себе представить...

Другие вопросы по тегам