#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