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

Где файл подкачки / раздел?

Я изучаю конфигурацию виртуальной памяти экземпляра Amazon EC2 на базе Debian, и, поскольку у меня нет опыта работы с системным администратором, меня немного смущает то, что я вижу.

Мы используем MongoDB, и сервер мониторинга, который у нас есть, указывает, что процесс Mongo использует около 20 ГБ место подкачки виртуальная память, однако я не могу понять, где это находится на сервере.

Насколько я могу судить по различным методам, предлагаемым Google, их либо намного меньше, либо вообще нет.

top указывает, что имеется 1,8 ГБ памяти подкачки:

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 похоже, не думает, что есть место подкачки:

Filename                                Type            Size    Used    Priority

free -m тоже не думает, что есть своп:

             total       used       free     shared    buffers     cached
Mem:          3836       3663        172          0        626       2701
-/+ buffers/cache:        336       3500
Swap:            0          0          0

И тоже 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

Но cat /etc/fstab думает, что есть раздел подкачки:

/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

тем не мение df -k не показывает раздел 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

Так что я действительно не знаю, что с этим делать, потому что у меня есть процесс, использующий примерно в 10 раз больше виртуальной памяти, чем то, что мощь быть доступным, и я понятия не имею, где эта виртуальная память находится в системе.

Я, вероятно, неверно интерпретирую результаты работы инструментов, поэтому был бы признателен, если бы кто-нибудь смог меня прояснить: что я сделал не так, какова правильная интерпретация и как вы достигли этой интерпретации?

EDIT0: Мы используем MMS 10gen для мониторинга базы данных, соответствующий раздел для памяти из последней точки данных:

 "mem": {
        "virtual": 20749,
        "bits": 64,
        "supported": true,
        "mappedWithJournal": 20376,
        "mapped": 10188,
        "resident": 1219
    },

Этот JSON специфичен для процесса базы данных (я считаю), а не для системы в целом.

fdisk -l /dev/xvda выводы ... ничего? Я пробовал каждую из трех записей xvda в /etc/fstab также:

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:~#

Edit1:

Выход cat /proc/meminfo для полноты:

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

df покажет вам только смонтированные файловые системы, а не пространство подкачки. swapon -s или /proc/swaps окончательный. В вашей системе нет места для подкачки.

Это выглядит как top несколько обманчиво, поскольку ставит buffers значение в той же строке, что и статистика памяти и cached значение в той же строке, что и статистика свопа. buffer и cache оба относятся к памяти, используемой подсистемой хранения, и не имеют ничего общего с подкачкой. (Видеть этот ответ.) /proc/meminfo немного удобнее для просмотра статистики памяти.

Пытаться mkswap /dev/xvda3 а потом swapon -a. Но только если вы абсолютно уверены, что на / dev / xvda3 нет ничего ценного.