Топ говорит мне:
last pid: 64807; load averages: 0.99, 0.97, 0.92 up 189+04:47:22 09:16:17
45 processes: 1 running, 44 sleeping
CPU: 0.4% user, 0.0% nice, 0.2% system, 6.4% interrupt, 93.0% idle
Mem: 222M Active, 2151M Inact, 2008M Wired, 823M Buf, 3499M Free
Swap: 8192M Total, 8192M Free
Мунин показывает это немного более четко:
Как видите, на сервере установлено около 8 ГБ оперативной памяти. Интересно, смогу ли я втиснуть этого зверя в более скромный сервер на 2 ГБ . Теперь я знаю, что такое active и buffers. Но я действительно обеспокоен "проводными" и "неактивными" каплями памяти. Те, которые не соответствуют ни одному существующему процессу, насколько я знаю.
Обратите внимание, как зеленая «активная» линия выросла в декабре: именно тогда мы начали использовать демон BGP на этом маршрутизаторе. Я не совсем понимаю, что произошло в апреле и мае, но я помню, как делал обновление системы и переключался на pkgng в то время.
Вот запасной маршрутизатор для первого, с меньшим количеством оперативной памяти (4 ГБ):
Кажется, что он прекрасно работает с половиной оперативной памяти и все еще оставляет около 2 ГБ свободного места, что наводит меня на мысль, что я мог бы перейти на блок 2 ГБ для этого сервера, снижая затраты и обслуживание ...
Какие-либо предложения? Что означают различные счетчики памяти, показанные сверху? Более конкретно, что делает:
- активный
- Неактивный
- кэш
- Буферы
- Проводная
- Свободно
...на самом деле означает? Я нашел несколько постов, объясняющих работу подсистемы ВМ, и я помню, как "ах-ах!" Момент понимания всего этого около 12 лет назад, но я забыл. :) Даже верный справочник FreeBSD не смог ответить на мой вопрос ...
Могу ли я снизить до 2 ГБ?
free
команду из procps ): linux - реальное использование памятиОтветы:
Active
: Память, используемая в настоящее время процессомInactive
: Память, которая была освобождена, но все еще кэшируется, поскольку она может быть использована снова. Если требуется большеFree
памяти, эту память можно очистить и освободить. Эта память не очищается до того, как она понадобится, потому что «свободная память - это пустая трата памяти», хранение старых данных ничего не стоит, если они снова понадобятся.Wired
: Память используется ядром. Эта память не может быть выгруженаCache
: Память, используемая для кэширования данных, может быть немедленно освобождена при необходимостиBuffers
: Дисковый кешFree
: Память, которая полностью свободна и готова к использованию.Inactive
,Cache
ИBuffers
может стать свободным , если они очищаются.Таким образом, вы можете просто добавить
Inactive
к вашемуFree
счету и считать его неиспользованным.Wired
является ли память используемой ядром, включая сетевой стек. Выполнениеnetstat -m
даст вам сводную информацию об использовании памяти сетевым стеком.Основываясь на ваших графиках, кроме соответствующего скачка
wired
памяти в начале марта, да, вы должны иметь возможность выполнять эту нагрузку на 2 ГБ оперативной памяти. Если вы это сделаете, рассмотрите возможность запуска i386 вместо amd64, поскольку каждое выделение памяти будет занимать меньше места, поскольку указатели будут 32-битными вместо 64-битными.источник