Как я могу подсчитать общий объем используемой памяти? Я использую столбец 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 пытается использовать всю доступную память, чтобы сделать систему быстрее. Резервная память используется для буферов и кеша, но когда процессам нужна эта память, эти области сжимаются по мере необходимости.