Разъяснение по поводу столбца Shared Memory в утилите верхней части Linux

У нас есть выделение памяти проблемы с программой, работающей в соответствии с Linux. Мы используем главную утилиту, чтобы попытаться определить первопричину проблемы. Одна вещь, которую мы заметили, состоит в том, что один процесс имеет чрезмерно высокое значение для общей памяти (столбец SHR в вершине).

Чтение Страницы справочника для вершины приводит меня полагать, что столбец SHR представляет объем памяти для межпроцессных взаимодействий через общую память. Это корректно?

Если так, затем делает имеет смысл для ЛЮБОГО процесса выделять 50 - 60 мегабайтов общей памяти (X11 только выделяет 11 МБ, который кажется разумным на основе того, что это должно сделать).

Спасибо...

0
задан 28.09.2009, 03:31

2 ответа

Столбец SHR просто представляет объем общей памяти, используемой процессом. Это может использоваться для межпроцессных взаимодействий, но более общий сценарий - то, что это - память, используемая общими библиотеками, в которых связалось приложение.

От ядра Linux: управление памятью:

Общая виртуальная память

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

Общая память может также использоваться в качестве механизма Коммуникации процесса Интера (IPC) с двумя или больше процессами, обменивающимися информацией через память, характерную для всех них. Linux поддерживает Систему памяти переводов Unix V общей памяти IPC.

Что страница руководителя говорит об этом столбце:

   t: SHR  --  Shared Mem size (kb)
      The amount of shared memory used by a task.  It simply reflects mem‐
      ory that could be potentially shared with other processes.
3
ответ дан 24.11.2019, 03:43

имеет смысл для КАКОГО-ЛИБО процесса выделять 50 - 60 мегабайтов общей памяти

Да.

Например, Oracle, настраивающая руководства, рекомендовала размеры общей памяти гигабайтов.

Тем не менее, если процесс является "кошкой", он, вероятно, не имеет большого смысла.

1
ответ дан 24.11.2019, 03:43

Теги

Похожие вопросы