Как я могу рассчитать использование памяти сервера LInux с помощью отчета sar?

#linux #memory #memory-management #rhel6 #sar

#linux #память #управление памятью #rhel6 #sar

Вопрос:

Я пытаюсь сгенерировать отчет об использовании памяти для пары серверов Linux. Я хочу собирать% использования памяти серверами за каждые 10 минут, и я думаю, что sar может помочь получить эти данные. Ранее я думал, что столбец %memused напрямую укажет% использования памяти сервера. Но после прочтения пары статей я подозреваю, что это неправильное использование памяти сервером, и поэтому я хочу знать, как наилучшим образом рассчитать использование памяти сервера.

Кто-нибудь может помочь мне рассчитать% использования памяти сервера за каждые 10 минут, используя отчет sar или любой другой лучший способ получить% использования памяти.

 06:39:47 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
06:39:48 PM    616552   3307708     84.29    245368   2174816   1196772     24.07
06:39:49 PM    616552   3307708     84.29    245368   2174816   1196772     24.07
  

Ответ №1:

Чтобы рассчитать значение свободной памяти с помощью SAR, используйте приведенную ниже формулу:

 kbmemfree   kbbuffers   kbcached = actual free memory on the system
  

Используя ваш пример:

 616552   245368   2174816 = 3036736KB
  

Это около 2,89 ГБ свободной памяти.

Я полагаю, тогда вы можете вычесть из общей доступной памяти, чтобы получить использование.

Ответ №2:

Фактическая свободная память в системе свободна буферы кэш. Буферы и кэширование используются для повышения производительности системы, но при необходимости будут возвращены в свободный пул.

Если вы используете много общей памяти (например, mmaping большой кэш), расчет немного отличается, и я использую free для этого

 xxx@xxx:$ free -h
              total        used        free      shared  buff/cache   available
Mem:            62G        4.4G        7.9G         11G         50G         45G
Swap:          2.0G         12M        1.9G
  

Свободная память в этом случае равна:

  • (свободно буферизация / кэш) — общий.
  • 7.9 50 — 11