Estou investigando a configuração de memória virtual de uma instância do Amazon EC2 baseada no Debian e, como meu histórico não está no administrador do sistema, estou um pouco confuso com o que estou vendo.
Estamos usando o MongoDB, e o servidor de monitoramento que temos indica que o processo do Mongo está usando cerca de 20 GB de espaço virtual de swap , mas não consigo entender onde está localizado no servidor.
Tanto quanto eu posso dizer usando os vários métodos sugeridos do Google, há uma quantidade muito menor, ou nenhuma.
top
indica que há 1,8 GB de memória swap:
top - 15:35:21 up 6 days, 3:23, 1 user, load average: 1.60, 1.43, 1.37
Tasks: 47 total, 2 running, 45 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 1.3%sy, 0.0%ni, 14.7%id, 83.8%wa, 0.0%hi, 0.0%si, 0.1%st
Mem: 3928924k total, 2855572k used, 1073352k free, 640564k buffers
Swap: 0k total, 0k used, 0k free, 1887788k cached
swapon -s
parece não achar que existe algum espaço de troca:
Filename Type Size Used Priority
free -m
não acha que existe troca alguma:
total used free shared buffers cached
Mem: 3836 3663 172 0 626 2701
-/+ buffers/cache: 336 3500
Swap: 0 0 0
E nem vmstat
:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 3 0 66224 641372 2874744 0 0 21 5012 21 33 2 2 76 19
Mas cat /etc/fstab
acha que existe uma partição swap:
/dev/xvda1 / ext3 defaults 1 1
/dev/xvda2 /mnt ext3 defaults 0 0
/dev/xvda3 swap swap defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
No entanto df -k
não fornece indicação da partição xvda3:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 16513960 15675324 0 100% /
tmpfs 1964460 8 1964452 1% /lib/init/rw
udev 1914148 28 1914120 1% /dev
tmpfs 1964460 4 1964456 1% /dev/shm
Então eu realmente não sei o que fazer com isso, porque eu aparento ter um processo usando cerca de 10 vezes mais memória virtual do que pode estar disponível, e não tenho ideia de onde memória virtual está no sistema.
Eu provavelmente estou interpretando mal a saída das ferramentas, então eu ficaria grato se alguém fosse capaz de me explicar: o que eu errei, qual é a interpretação correta, e como você alcança essa interpretação?
EDIT0 :
Usamos MMS 10gen para monitorar o banco de dados, a seção relevante para a memória do último ponto de dados é:
"mem": {
"virtual": 20749,
"bits": 64,
"supported": true,
"mappedWithJournal": 20376,
"mapped": 10188,
"resident": 1219
},
Esse JSON é específico para o processo de banco de dados (acredito) e não para o sistema como um todo.
fdisk -l /dev/xvda
outputs ... nada? Eu tentei cada uma das 3 entradas xvda em /etc/fstab
também:
root@ip:~# fdisk -l /dev/xvda1
Disk /dev/xvda1: 34.4 GB, 34359738368 bytes
255 heads, 63 sectors/track, 4177 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/xvda1 doesn't contain a valid partition table
root@ip:~# fdisk -l /dev/xvda2
root@ip:~# fdisk -l /dev/xvda3
root@ip:~#
Editar1 :
Saída de cat /proc/meminfo
para completar:
MemTotal: 3928924 kB
MemFree: 726600 kB
Buffers: 648368 kB
Cached: 2216556 kB
SwapCached: 0 kB
Active: 1945100 kB
Inactive: 994016 kB
Active(anon): 60476 kB
Inactive(anon): 12952 kB
Active(file): 1884624 kB
Inactive(file): 981064 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 387180 kB
Writeback: 0 kB
AnonPages: 73380 kB
Mapped: 1188260 kB
Shmem: 48 kB
Slab: 149768 kB
SReclaimable: 146076 kB
SUnreclaim: 3692 kB
KernelStack: 1104 kB
PageTables: 16096 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1964460 kB
Committed_AS: 305572 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 16760 kB
VmallocChunk: 34359721448 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 3932160 kB
DirectMap2M: 0 kB