Как правильно понимать вывод команды free? (Что-то я никак не пойму...)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
BaZilio
Сообщения: 457
Статус: Say оПХБЕР again!

Как правильно понимать вывод команды free?

Сообщение BaZilio »

Вот есть у меня сервер.
Он шлюз для комп. клуба, сквид, самба, фтп, NFS...
P4 2.66 GHz, 1024 MB RAM.

Интересно мне стало, как отслеживать ситуацию, может нужно ещё памяти докинуть... а как правильно понять, что мне free говорит, и сделать на основе этого вывод - не пойму.
Ман к free читал, но там что-то ничего военного не написано (как, скажем, очень информативный ман к top).
Подскажите пожалуйста, на какие цифры нужно обращать внимание, и в каком случае нужно бежать за новой оперативкой?

Вот вывод free:

Код: Выделить всё

[root@cosmos sysconfig]# free
             total       used       free     shared    buffers     cached
Mem:       1034764    1009372      25392          0      31968     614652
-/+ buffers/cache:     362752     672012
Swap:      1638588        100    1638488

Windows XP:
Netbook - Acer Aspire One A150.
Debian Squeeze amd64:
Laptop - Acer TravelMate 5520G.
Laptop_work - Toshiba Satellite C660.
Windows 7 x64:
Desktop - Core2Duo 6600 2.4GHz/6 GB/i965/GeForce 9500GT.

4 the lulz!
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Как правильно понимать вывод команды free?

Сообщение sergeyvp »

Код: Выделить всё

[root@cosmos sysconfig]# free
                                    total              used              free             shared    buffers       cached
                      Mem:    1034764      1009372       25392          0             31968        614652
-/+ buffers/cache:    362752         672012
                     Swap:    1638588      100                1638488
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Как правильно понимать вывод команды free?

Сообщение elide »

300 метров занято, 600 свободно. своп не используется.
память не нужна.
слава роботам!
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Как правильно понимать вывод команды free?

Сообщение sergeyvp »

BaZilio писал(а):
06.04.2007 12:40
Подскажите пожалуйста, на какие цифры нужно обращать внимание, и в каком случае нужно бежать за новой оперативкой?

В книге "Системное администрирование Linux" рекомендуется использовать команду vmstat для определения необходимости увеличения памяти.
То есть в столбцах si (swap in) и so (swap out) должны быть нули, если это не так то необходимо добавить память.
А также стоит обратить внимание на столбец swpd который указывает на выталкивание страниц памяти на диск, если он заполнен нулями то память добавлять не нужно.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Как правильно понимать вывод команды free?

Сообщение serzh-z »

Слева направо и сверху вниз:
- всего памяти
- использовано
- свободно
- отображено памяти в общие области (обычно только для чтения, например libc.so в памяти не дублируется для каждого процесса, а загружается один раз и потом просто отображается в адресное пространство процессов)
- использовано под буферы
- использовано под страничный кеш

- всего использовано памяти без учета буферов и кеша
- всего будет доступно памяти, если очистить кеш и буферы

Ну про файл подкачки и так все понятно.

Зачем бежать, слющай, за оперативой памятью - не зря же придумали своп. А вот если своп постоянно занят, кеш и буферы стремятся к нулю, а объем свободной памяти, без учета буферов, ничтожно мал, то стоит задуматься.
Спасибо сказали:
Аватара пользователя
BaZilio
Сообщения: 457
Статус: Say оПХБЕР again!

Re: Как правильно понимать вывод команды free?

Сообщение BaZilio »

Спасибо! :blush:
А можете объяснить что скрывается под понятиями "буферы" и "страничный кэш"?

Windows XP:
Netbook - Acer Aspire One A150.
Debian Squeeze amd64:
Laptop - Acer TravelMate 5520G.
Laptop_work - Toshiba Satellite C660.
Windows 7 x64:
Desktop - Core2Duo 6600 2.4GHz/6 GB/i965/GeForce 9500GT.

4 the lulz!
Спасибо сказали:
Аватара пользователя
greak
Сообщения: 485
Статус: debian user
ОС: Debian Lenny/Sid

Re: Как правильно понимать вывод команды free?

Сообщение greak »

попробуй это еще : cat /proc/meminfo
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Как правильно понимать вывод команды free?

Сообщение serzh-z »

Насчет правильного понимания того, что имеет в виду free под понятием "буферы" у меня есть некоторые сомнения - судя по всему это память занимаемая ядром для операций ввода/вывода.

Страничный кеш - все страницы, учавствующие в операциях ввода/вывода, ядро привязывает к так называемому страничному кешу. Этот кеш поддерживает как кеширование прочитанных с носителей данных, так отложенную запись. Как понимаете - это призвано уменьшить задержки при операциях В/В.

(greak @ Apr 6 2007, в 14:45) писал(а):попробуй это еще : cat /proc/meminfo
Боюсь, что при виде содержимого meminfo у автора возникнет куда больше вопросов. Скажу по секрету - free использует тот же самый /proc/meminfo и представляет его в более читаемом, для человека, виде.
Спасибо сказали:
Аватара пользователя
Subj
Сообщения: 151
Статус: Useful
ОС: win

Re: Как правильно понимать вывод команды free?

Сообщение Subj »

free -m
чтоб в мегабайтах посмотреть
Building better software with Ada
Спасибо сказали: