Linux
這個 Ubuntu 12.04.2 伺服器上的 RAM 使用的是什麼?
我在一個帶有 Nginx、PHP5-FPM 和 Memcached 的池中有兩台伺服器。出於某種原因,池中的第一台伺服器似乎莫名其妙地失去了大約 2GB 的 RAM。我無法解釋它的去向。
重新啟動後一切恢復正常,但幾個小時後,RAM 再次使用。
起初我以為是 memcached 造成的,但最終我殺死了所有我可以合理殺死的程序並且記憶體沒有被釋放。即使 init 1 也沒有釋放記憶體。
ipcs -m 是空的,slabtop 在這個和池中使用很少記憶體的伺服器上看起來很相似。
df 在 tmpfs 中顯示大約 360K
如果相關,兩台伺服器幾乎相同,因為它們都在不同主機上的相同管理程序(VMWare ESXi 4.1)上以相同級別的更新執行相同的作業系統,但具有相同的硬體。不同之處在於:-
- 第一台伺服器有一個 NFS 掛載。我嘗試解除安裝它並刪除模組但沒有改變 RAM 使用
- 第一個伺服器偵聽 HTTP 和 HTTPS 站點,而第二個伺服器僅偵聽 HTTP。
這是 free -m 的輸出…
total used free shared buffers cached Mem: 3953 3458 494 0 236 475 -/+ buffers/cache: 2746 1206 Swap: 1023 0 1023
這是 /proc/meminfo …
MemTotal: 4048392 kB MemFree: 506576 kB Buffers: 242252 kB Cached: 486796 kB SwapCached: 8 kB Active: 375240 kB Inactive: 369312 kB Active(anon): 12320 kB Inactive(anon): 3596 kB Active(file): 362920 kB Inactive(file): 365716 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 1048572 kB SwapFree: 1048544 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 15544 kB Mapped: 3084 kB Shmem: 412 kB Slab: 94516 kB SReclaimable: 75104 kB SUnreclaim: 19412 kB KernelStack: 632 kB PageTables: 1012 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 3072768 kB Committed_AS: 20060 kB VmallocTotal: 34359738367 kB VmallocUsed: 281340 kB VmallocChunk: 34359454584 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 59392 kB DirectMap2M: 4134912 kB
這是當時的流程清單…
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 24336 2160 ? Ss Jul22 0:09 /sbin/init root 2 0.0 0.0 0 0 ? S Jul22 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Jul22 0:38 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S Jul22 0:00 [kworker/u:0] root 6 0.0 0.0 0 0 ? S Jul22 0:04 [migration/0] root 7 0.0 0.0 0 0 ? S Jul22 0:32 [watchdog/0] root 8 0.0 0.0 0 0 ? S Jul22 0:04 [migration/1] root 10 0.0 0.0 0 0 ? S Jul22 0:22 [ksoftirqd/1] root 11 0.0 0.0 0 0 ? S Jul22 0:15 [kworker/0:1] root 12 0.0 0.0 0 0 ? S Jul22 0:31 [watchdog/1] root 13 0.0 0.0 0 0 ? S Jul22 0:04 [migration/2] root 15 0.0 0.0 0 0 ? S Jul22 0:04 [ksoftirqd/2] root 16 0.0 0.0 0 0 ? S Jul22 0:14 [watchdog/2] root 17 0.0 0.0 0 0 ? S Jul22 0:04 [migration/3] root 19 0.0 0.0 0 0 ? S Jul22 0:04 [ksoftirqd/3] root 20 0.0 0.0 0 0 ? S Jul22 0:11 [watchdog/3] root 21 0.0 0.0 0 0 ? S< Jul22 0:00 [cpuset] root 22 0.0 0.0 0 0 ? S< Jul22 0:00 [khelper] root 23 0.0 0.0 0 0 ? S Jul22 0:00 [kdevtmpfs] root 24 0.0 0.0 0 0 ? S< Jul22 0:00 [netns] root 25 0.0 0.0 0 0 ? S Jul22 0:02 [sync_supers] root 26 0.0 0.0 0 0 ? S Jul22 0:21 [kworker/u:1] root 27 0.0 0.0 0 0 ? S Jul22 0:00 [bdi-default] root 28 0.0 0.0 0 0 ? S< Jul22 0:00 [kintegrityd] root 29 0.0 0.0 0 0 ? S< Jul22 0:00 [kblockd] root 30 0.0 0.0 0 0 ? S< Jul22 0:00 [ata_sff] root 31 0.0 0.0 0 0 ? S Jul22 0:00 [khubd] root 32 0.0 0.0 0 0 ? S< Jul22 0:00 [md] root 34 0.0 0.0 0 0 ? S Jul22 0:04 [khungtaskd] root 35 0.0 0.0 0 0 ? S Jul22 0:15 [kswapd0] root 36 0.0 0.0 0 0 ? SN Jul22 0:00 [ksmd] root 37 0.0 0.0 0 0 ? SN Jul22 0:00 [khugepaged] root 38 0.0 0.0 0 0 ? S Jul22 0:00 [fsnotify_mark] root 39 0.0 0.0 0 0 ? S Jul22 0:00 [ecryptfs-kthrea] root 40 0.0 0.0 0 0 ? S< Jul22 0:00 [crypto] root 48 0.0 0.0 0 0 ? S< Jul22 0:00 [kthrotld] root 50 0.0 0.0 0 0 ? S Jul22 2:59 [kworker/1:1] root 51 0.0 0.0 0 0 ? S Jul22 0:00 [scsi_eh_0] root 52 0.0 0.0 0 0 ? S Jul22 0:00 [scsi_eh_1] root 57 0.0 0.0 0 0 ? S Jul22 0:09 [kworker/3:1] root 74 0.0 0.0 0 0 ? S< Jul22 0:00 [devfreq_wq] root 114 0.0 0.0 0 0 ? S Jul22 0:00 [kworker/3:2] root 128 0.0 0.0 0 0 ? S Jul22 0:00 [kworker/1:2] root 139 0.0 0.0 0 0 ? S Jul22 0:00 [kworker/0:2] root 249 0.0 0.0 0 0 ? S< Jul22 0:00 [mpt_poll_0] root 250 0.0 0.0 0 0 ? S< Jul22 0:00 [mpt/0] root 259 0.0 0.0 0 0 ? S Jul22 0:00 [scsi_eh_2] root 273 0.0 0.0 0 0 ? S Jul22 0:20 [jbd2/sda1-8] root 274 0.0 0.0 0 0 ? S< Jul22 0:00 [ext4-dio-unwrit] root 377 0.0 0.0 0 0 ? S Jul22 0:26 [jbd2/sdb1-8] root 378 0.0 0.0 0 0 ? S< Jul22 0:00 [ext4-dio-unwrit] root 421 0.0 0.0 17232 584 ? S Jul22 0:00 upstart-udev-bridge --daemon root 438 0.0 0.0 21412 1176 ? Ss Jul22 0:00 /sbin/udevd --daemon root 446 0.0 0.0 0 0 ? S< Jul22 0:00 [rpciod] root 448 0.0 0.0 0 0 ? S< Jul22 0:00 [nfsiod] root 612 0.0 0.0 21408 772 ? S Jul22 0:00 /sbin/udevd --daemon root 613 0.0 0.0 21728 924 ? S Jul22 0:00 /sbin/udevd --daemon root 700 0.0 0.0 0 0 ? S< Jul22 0:00 [kpsmoused] root 849 0.0 0.0 15188 388 ? S Jul22 0:00 upstart-socket-bridge --daemon root 887 0.0 0.0 0 0 ? S Jul22 0:00 [lockd] root 919 0.0 0.0 14504 952 tty4 Ss+ Jul22 0:00 /sbin/getty -8 38400 tty4 root 922 0.0 0.0 14504 952 tty5 Ss+ Jul22 0:00 /sbin/getty -8 38400 tty5 root 924 0.0 0.0 14504 944 tty2 Ss+ Jul22 0:00 /sbin/getty -8 38400 tty2 root 925 0.0 0.0 14504 944 tty3 Ss+ Jul22 0:00 /sbin/getty -8 38400 tty3 root 930 0.0 0.0 14504 952 tty6 Ss+ Jul22 0:00 /sbin/getty -8 38400 tty6 root 940 0.0 0.0 0 0 ? S Jul22 0:07 [flush-8:0] root 1562 0.0 0.0 58792 1740 tty1 Ss Jul22 0:00 /bin/login -- root 12969 0.0 0.0 0 0 ? S 07:18 0:02 [kworker/2:2] root 30051 0.0 0.0 0 0 ? S 10:13 0:00 [flush-8:16] root 30909 0.0 0.0 0 0 ? S 10:14 0:00 [kworker/2:1] johncc 30921 0.2 0.2 26792 9360 tty1 S 10:17 0:00 -bash root 31089 0.0 0.0 0 0 ? S 10:18 0:00 [kworker/0:0] root 31099 0.0 0.0 42020 1808 tty1 S 10:19 0:00 sudo -i root 31100 0.2 0.1 22596 5168 tty1 S 10:19 0:00 -bash root 31187 0.0 0.0 0 0 ? S 10:19 0:00 [kworker/2:0] root 31219 0.0 0.0 16880 1252 tty1 R+ 10:22 0:00 ps aux root 31220 0.0 0.0 53924 536 tty1 R+ 10:22 0:00 curl -F sprunge=<- http://sprunge.us
誰能建議下一步要嘗試什麼,或者如何調試這個問題?我不知所措!
該機器是在ESXi管理程序上執行的虛擬客戶機。記憶體膨脹呢?首先,我建議您檢查此客戶機的 ESXi/vCenter 記憶體/氣球統計資訊。
管理程序可能會要求客戶“膨脹”氣球以分配一些額外的記憶體,例如用於其他正在執行的客戶。但這需要載入一個可用作核心模組vmmemctl的氣球驅動程序。
最後,顯而易見的問題可能是來賓是否安裝並執行了 vmware 工具,因為我在您提供的程序列表中看不到任何相關程序。通過更改,在您開始殺死它們之前沒有任何vmware-guestd程序嗎?