Инструменты пользователя

Инструменты сайта


оперативная_память_linux

Просмотр сведеней о оперативной памяти.

cat /proc/meminfo

получим достаточно вместительную табличку, я опишу некоторые важные значение :

MemTotal: – эта практически вся доступная в системе память а исключением той которая зарезервирована самой системой.
MemFree: – нельзя напрямую сказать что это весь объем свободной памяти доступный новым процессам в системе, обычно тут сущие десятки мегабайт. Linux достаточно хитро использует свободную память –  она может быть занята под кэш или буфер и освобождена по первой необходимости. Мы это еще рассмотрим.
Buffers: – тут хранятся данные которые ожидают записи на диск.
Cached: – системный кэш Linux – это статья расходов памяти может расти как на дрожжах но при первой же необходимости в свободной памяти она будет очищена по необходимости.

Далее достаточно важные данные на которых мы остановимся немного поподробнее :

Committed_AS : – это значение указывает на количество ОЗУ которые необходимы системе чтобы с вероятностью в 99,9% вы не поймали out of memory. Т.е это количество памяти которое могут занять процессы запущенные на текущий момент на вашем сервере в максимуме. Есть механизм при котором можно ограничить использование всего числа указанного здесь ( если к примеру оно выходит за границы MemTotal ) это можно сделать с помощью  CommitLimit и некоторых изменений в sysctl.( рассмотрим ниже .) Также имейте ввиду что если эта цифра намного больше чем MemTotal – то это говорит о том что необходимо увеличивать память на компьютере и (или) искать причину такого высокого потребления в процессах запущенных на сервере.
CommitLimit: – Это значение определяет  сколько система может выделить памяти.  Строгость это значения можно посмотреть так :
sysctl -a | grep vm.overcommit_memory
vm.overcommit_memory = 0

Это значение говорит о том что выделение памяти практически не как не ограничено.

vm.overcommit_memory = 2

С этим значением этой переменной цифру указанную в значении CommitLimit перейти будет невозможно. Теперь рассмотрим как эту цифру можно сформировать : формула расчета этого значение выглядит следующим образом vm.overcommit_ratio * MemTotal + swap (формула получается такой – половина MemTotal + объем swap )

sysctl -a | grep vm.overcommit_ratio
m.overcommit_ratio = 50

Это значение в процентах – его можно менять. Для контроля над тем что именно у вас кушает память я бы советовал бы программу htop. Она есть в репозитариях практически любого Linux. После его запуска нажимайте F6 и сортируем по MEM% – наглядно видно какой процесс сколько кушает в процентном отношении. В top этого списка попадают самые прожорливые.

оперативная_память_linux.txt · Последние изменения: 2012/10/29 15:09 — 46.231.215.230