Как стать автором
Обновить

Комментарии 3

Предлагаю богатую идею для копирайтера. Выборочно переводить man'ы. Материалу до конца жизни хватит.

Согласен)

спасибо, давно хотел разобраться в соответствии вывода утилиты free c /proc/meminfo

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

$ free -k -w && eval $(awk -F'(: +)| ' '!/\(/{print $1"="$2}' /proc/meminfo) && echo -e "\ntotal\t\t$MemTotal\nused\t\t$[MemTotal-MemFree-Buffers-Cached-Slab]\nfree\t\t$MemFree\nshared\t\t$Shmem\nbuffers\t\t$Buffers\ncache\t\t$Cached\ncache+\t\t$[Cached+Slab]\navailable\t$MemAvailable\nSwap_total\t$SwapTotal\nSwap_used\t$[SwapTotal-SwapFree]\nSwap_free\t$SwapFree\n" && free -k -w
               total        used        free      shared     buffers       cache   available
Mem:        28663908     2134948    24857728      343788      156752     1514480    25282120
Swap:              0           0           0

total		28663908
used		2071780
free		24857728
shared		343788
buffers		156752
cache		1400928
cache+		1577648
available	25282120
Swap_total	0
Swap_used	0
Swap_free	0

               total        used        free      shared     buffers       cache   available
Mem:        28663908     2134948    24857728      343788      156752     1514480    25282120
Swap:              0           0           0

и по факту оказалось что used(MemTotal - MemFree - Buffers - Cached - Slab) и cache(Cached + Slab) не соответствуют друг другу

правда у меня не Red Hat а Arch но думаю это не сильно играет роль, версия free

$ free -V
free from procps-ng 3.3.17

стал разбираться и оказалось что если в формулах подсчета used и cache заменить Slab на SReclaimable то всё чудесным образом налаживается

то есть вышеописанный однострочник в "правильной форме" будет выглядеть так:

free -k -w && eval $(awk -F'(: +)| ' '!/\(/{print $1"="$2}' /proc/meminfo) && echo "\ntotal\t\t$MemTotal\nused\t\t$[MemTotal-MemFree-Buffers-Cached-SReclaimable]\nfree\t\t$MemFree\nshared\t\t$Shmem\nbuffers\t\t$Buffers\ncache\t\t$[Cached+SReclaimable]\navailable\t$MemAvailable\nSwap_total\t$SwapTotal\nSwap_used\t$[SwapTotal-SwapFree]\nSwap_free\t$SwapFree\n" && free -k -w
Зарегистрируйтесь на Хабре, чтобы оставить комментарий