交换文件/分区在哪里?

交换文件/分区在哪里?

我正在调查基于 Debian 的 Amazon EC2 实例的虚拟内存配置,由于我的背景不是系统管理,所以我对所看到的内容感到有点困惑。

我们正在使用 MongoDB,我们的监控服务器表明 Mongo 进程使用了​​大约 20GB交换空间虚拟内存,但我不知道它在服务器上的位置。

据我使用 Google 建议的各种方法所知,数量要么少得多,要么根本没有。

top表示有1.8GB的交换内存:

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

所以我真的不知道该怎么做,因为我似乎有一个进程使用的虚拟内存比可能可用,并且我不知道这个虚拟内存在系统的什么位置。

我可能误解了这些工具的输出,所以如果有人能纠正我,我将不胜感激:我错在哪里,正确的解释是什么,以及如何得出这个解释?

編輯0:我们使用10gen的MMS来监控数据库,从最后一个数据点开始的内存相关部分是:

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

这个 JSON 特定于数据库进程(我相信)而不是整个系统。

fdisk -l /dev/xvda/etc/fstab输出...什么都没有?我也尝试了 3 个 xvda 条目中的每一个:

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

編輯1

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

答案1

df只会显示已安装的文件系统,而不是交换空间。swapon -s/proc/swaps已确定。您的系统没有交换空间。

它看起来top有点误导,因为它将buffers值放在与内存统计信息相同的行上,并将cached值放在与交换统计信息相同的行上。buffer两者cache都指存​​储子系统使用的内存,与交换无关。(见这个答案.)/proc/meminfo对于查看内存统计数据更加友好一些。

答案2

尝试mkswap /dev/xvda3然后swapon -a。但前提是你绝对确定 /dev/xvda3 上没有任何有价值的东西。

相关内容