Назад | Перейти на главную страницу

Общее использование памяти

Как я могу подсчитать общий объем используемой памяти? Я использую столбец RES или столбец VIRT или? Ниже приведен вывод top в моей системе.

Mem:   5859244k total,  5657732k used,   201512k free,    80980k buffers
Swap:  6144852k total,      100k used,  6144752k free,  5147836k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1704 verde     21   0 1228m  59m  18m S  0.3  1.0   0:14.79 java
27623 verde     16   0  941m  36m  11m S  0.0  0.6   0:12.43 java
27250 oracle    15   0  310m  16m  15m S  0.0  0.3   0:00.11 oracle
2791 root      34  19  251m  15m 2232 S  0.0  0.3   0:03.72 yum-updatesd
27248 oracle    16   0  310m  10m 9644 S  0.0  0.2   0:00.50 oracle
27246 oracle    15   0  315m  10m 9028 S  0.0  0.2   0:00.11 oracle
27252 oracle    18   0  310m  10m 9460 S  0.0  0.2   0:00.02 oracle
27622 verde     25   0  213m  10m 6128 S  0.0  0.2   0:01.07 rmiregistry
27244 oracle    15   0  312m 9552 7032 S  0.0  0.2   0:00.09 oracle
27242 oracle    15   0  311m 8472 7136 S  0.0  0.1   0:00.37 oracle
27264 oracle    18   0  310m 7152 5712 S  0.0  0.1   0:00.02 oracle
27266 oracle    18   0  310m 7152 5712 S  0.0  0.1   0:00.02 oracle
27262 oracle    18   0  310m 7148 5712 S  0.0  0.1   0:00.01 oracle
27268 oracle    18   0  310m 7144 5708 S  0.0  0.1   0:00.02 oracle
27278 oracle    15   0  314m 7144 6068 S  0.0  0.1   0:00.05 oracle
27270 oracle    18   0  310m 7132 5692 S  0.0  0.1   0:00.02 oracle
27274 oracle    18   0  310m 7128 5688 S  0.0  0.1   0:00.02 oracle
27276 oracle    18   0  310m 7128 5692 S  0.0  0.1   0:00.02 oracle
27272 oracle    18   0  310m 7124 5688 S  0.0  0.1   0:00.02 oracle
27280 oracle    18   0  314m 7064 6016 S  0.0  0.1   0:00.02 oracle
27256 oracle    18   0  311m 6976 5724 S  0.0  0.1   0:00.01 oracle
27258 oracle    18   0  311m 6972 5724 S  0.0  0.1   0:00.01 oracle
27254 oracle    18   0  311m 6968 5720 S  0.0  0.1   0:00.03 oracle

27260 oracle 18 0 311m 6936 5688 S 0,0 0,1 0: 00.02 oracle 2725 haldaemo 15 0 30640 3844 1696 S 0,0 0,1 0: 06,76 hald

ну, проще всего набрать:

free -m 

(где m дает результат в мегабайтах, g для гига и т. д.)

plop@pouet:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1994       1729        264          0        491        703
-/+ buffers/cache:        534       1459
Swap:          509         33        476

Я бы не использовал ни то, ни другое. В приведенном выше примере VIRT - это объем виртуальной памяти, который требуется процессу, RES - это резидентный объем памяти для конкретного процесса, SHR - это объем памяти, который совместно используется двумя или более процессами. Таким образом, немного сложно определить базовый объем памяти, используемый в системе, с помощью команды top.

Вы можете использовать информацию из заголовка и сделать:

 base-memory-use = used - buffers - cached

Буферы и кэшированная память меняются динамически. Обычно система Linux пытается использовать всю доступную память, чтобы сделать систему быстрее. Резервная память используется для буферов и кеша, но когда процессам нужна эта память, эти области сжимаются по мере необходимости.