У меня относительно небольшой домашний сервер Red Hat Linux (около 8 ГБ ОЗУ). Я не использую его для чего-то другого, кроме запуска некоторых домашних приложений для отслеживания различных вещей. Единственные реальные вещи, работающие на коробке - это база данных и веб-сервер.
Я заметил, что при проверке системных счетчиков с использованием таких инструментов, как NMON и TOP, общая свободная память системы относительно невелика (порядка нескольких сотен МБ), а активная память для базы данных и веб-сервера остается низкой (только потребляя в совокупности 3 гб). Даже при включении всех других запущенных процессов общий объем используемой памяти составляет менее 4 ГБ.
Почему Red Hat Linux сообщает меньше свободной памяти, чем общая память минус общая сумма используемой памяти запущенных процессов?
источник
Linux будет активно кэшировать доступ к файловой системе в память, чтобы сократить время доступа к диску. Не о чем беспокоиться.
Запуск free -m на коробке даст вам лучшее представление о том, где используется память.
Ниже приведен вывод из одной из моих коробок. Свободная память составляет 147 мегабайт, при этом почти 4 Гб кэшируется для запросов доступа к файловой системе.
источник
Вы также включаете поля "буферизованные" и "кэшированные"?
источник
В linux посмотрите на Committed_AS в / proc / meminfo, это объем памяти (real + swap), который ядро фактически обещало запускать процессы.
Linux использует память очень эффективно, любые блоки, не обещанные какому-либо процессу, используются для кэширования недавно / часто используемых файлов. Таким образом, для Linux характерно использование 90% всей доступной физической памяти вскоре после загрузки.
Посмотрите, что ядро взяло на себя обязательство обеспечить .. и грязное (swap) использование, это даст вам лучшую общую картину.
Если вам нужно настроить это поведение, пожалуйста, обновите свой вопрос :)
Это стандартный MO для Linux. Некоторые дистрибутивы настраивают управление памятью в соответствии с их потребностями через sysctl. Однако то, что вы сообщаете, довольно типично для всех.
источник
Какое ядро вы используете в системе? 32-разрядное ядро будет выдавать только около 3,6 ГБ памяти, если оно не скомпилировано с включенным PAE.
Сказав это, если это современная версия Redhat Enterprise Linux (или CentOS) - начиная с версии v3 - 32-битное ядро по умолчанию будет включать это.
Если бы вы могли опубликовать вывод команды «free», подробно описанный выше, мы сможем увидеть, является ли это проблемой.
источник