Onde está o arquivo de swap / partição?

1

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
    
por chrisbunney 18.11.2012 / 16:49

2 respostas

2

df mostrará apenas os sistemas de arquivos montados, não o espaço de troca. swapon -s ou /proc/swaps é definitivo. Seu sistema não tem espaço de troca.

Parece que top é um pouco enganador, pois coloca o valor de buffers na mesma linha que as estatísticas de memória e o valor de cached na mesma linha que as estatísticas de troca. buffer e cache referem-se à memória usada pelo subsistema de armazenamento e não têm nada a ver com swap. (Veja esta resposta .) /proc/meminfo é um pouco mais amigável para ver as estatísticas da memória.

    
por 18.11.2012 / 17:16
0

Teste mkswap /dev/xvda3 e, em seguida, swapon -a . Mas somente se você tiver certeza absoluta de que não há nada de valor em / dev / xvda3.

    
por 18.11.2012 / 18:09