Oracle Linux VM 中的高活動(文件)記憶體使用率
我最近搜尋並閱讀了很多關於 Linux 記憶體管理的文章和問題,但我找不到我的案例。例如,Unix StackExchange 中有一個關於High memory usage 但沒有程序正在使用它的問題。在這篇文章中,接受的答案描述了虛擬記憶體膨脹。就我而言,不存在氣球。
vmware-toolbox-cmd stat balloon
所有節點的輸出為0 MB
我在三個虛擬化的 Oracle Linux VM 上有一個帶有 CDH 的簡單 Hadoop 集群。所有的東西都配置正確。所有 Cloudera 安裝測試都通過了,Cloudera 管理器上沒有任何警告。
在重新啟動的情況下,一切都很好。重啟後,所有節點的記憶體使用都是合理的。我為 Cloudera manager 和其他 CDH 服務啟動 MySQL 數據庫服務。另外,我在這三個節點中啟動所有已安裝的 CDH 服務。過了一會兒,我看到所有節點都出現了一些不合理的記憶體使用情況。得到這種情況需要將近一個月的時間,但我認為有問題。
我停止了所有節點中的所有服務,包括已安裝的 CDH 服務、Cloudera 管理器服務和 MySQL 數據庫。我在頂部只看到一些 Oracle Linux 本機程序,如 gnome-shell,但 /proc/meminfo 中的活動(文件)記憶體使用量很高。注意沒有活動程序使用它。在下文中,我在所有三個節點上編寫了一些 Linux 命令的輸出。
第一個具有 72 GB 記憶體的節點:
# top
top - 10:07:29 up 43 days, 22:10, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 335 total, 1 running, 334 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.4 us, 0.4 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 73964544 total, 62105912 free, 10447080 used, 1411556 buff/cache KiB Swap: 31457276 total, 31457276 free, 0 used. 72295264 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9284 gdm 20 0 4493724 168588 80536 S 0.0 0.2 1:09.89 gnome-shell 657 root 20 0 211512 139828 139328 S 0.0 0.2 2:02.12 systemd-journal 1321 root 20 0 417540 114112 112620 S 0.0 0.2 3:38.10 rsyslogd 9184 root 20 0 417184 30108 21796 S 0.0 0.0 0:01.46 X 1808 root 20 0 687472 25908 12760 S 0.0 0.0 23:24.98 python2.7 9404 gdm 20 0 1091248 24988 19520 S 0.0 0.0 0:00.60 gsd-media-keys 9406 gdm 20 0 651064 23064 17928 S 0.0 0.0 0:00.82 gsd-power 9387 gdm 20 0 634648 22980 17756 S 0.0 0.0 0:00.20 gsd-xsettings 9396 gdm 20 0 657552 22976 17972 S 0.0 0.0 0:27.73 gsd-color 9361 gdm 20 0 484424 22492 17656 S 0.0 0.0 0:00.15 ibus-x11 9385 gdm 20 0 566536 22368 17348 S 0.0 0.0 0:00.19 gsd-wacom 9389 gdm 20 0 570760 22276 17360 S 0.0 0.0 0:00.17 gsd-a11y-keyboa 9402 gdm 20 0 642340 22220 17376 S 0.0 0.0 0:00.17 gsd-keyboard 9393 gdm 20 0 484044 21852 17016 S 0.0 0.0 0:00.16 gsd-clipboard 1059 polkitd 20 0 546320 19184 9708 S 0.0 0.0 10:11.73 polkitd 1883 root 20 0 224860 18236 3772 S 0.0 0.0 105:21.35 python 1982 root 20 0 212752 15816 7396 S 0.0 0.0 0:00.17 python2.7 9419 gdm 20 0 721080 15256 13260 S 0.0 0.0 0:59.14 gsd-smartcard 9214 gdm 20 0 696804 14056 11804 S 0.0 0.0 0:00.96 gnome-session-b 1045 root 20 0 480552 14044 11728 S 0.0 0.0 0:29.82 NetworkManager 9421 gdm 20 0 577744 13312 11448 S 0.0 0.0 0:00.03 gsd-sound 9397 gdm 20 0 495504 13056 11212 S 0.0 0.0 0:00.03 gsd-datetime 9407 gdm 20 0 484744 12320 10572 S 0.0 0.0 0:00.03 gsd-print-notif
# ps aux | awk '{sum+=$6} END {print sum / 1024}'
1163.8
# free -m
total used free shared buff/cache available Mem: 72231 10201 60650 550 1378 70601 Swap: 30719 0 30719
# cat /proc/meminfo
MemTotal: 73964548 kB MemFree: 62105864 kB MemAvailable: 72295336 kB Buffers: 1036 kB Cached: 758788 kB SwapCached: 0 kB Active: 7807136 kB Inactive: 2962332 kB Active(anon): 281104 kB Inactive(anon): 547168 kB Active(file): 7526032 kB Inactive(file): 2415164 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 31457276 kB SwapFree: 31457276 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 264356 kB Mapped: 208956 kB Shmem: 563972 kB Slab: 651816 kB SReclaimable: 573188 kB SUnreclaim: 78628 kB KernelStack: 8592 kB PageTables: 22452 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 68439548 kB Committed_AS: 2689848 kB VmallocTotal: 34359738367 kB VmallocUsed: 370120 kB VmallocChunk: 34321002492 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 210880 kB DirectMap2M: 19712000 kB DirectMap1G: 57671680 kB
具有 36 GB 記憶體的第二個節點:
# top
top - 10:07:58 up 43 days, 22:10, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 336 total, 1 running, 335 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.4 us, 0.4 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 36807704 total, 29874328 free, 5905568 used, 1027808 buff/cache KiB Swap: 31457276 total, 31457276 free, 0 used. 35350592 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1865 gdm 20 0 4561224 251136 82240 S 0.0 0.7 29:28.13 gnome-shell 649 root 20 0 211356 138832 138340 S 0.0 0.4 2:03.48 systemd-journal 1341 root 20 0 417384 112980 111484 S 0.0 0.3 3:18.25 rsyslogd 2229 gdm 20 0 735040 33768 17968 S 0.0 0.1 103:09.50 gsd-color 1683 root 20 0 417204 30532 22216 S 0.0 0.1 0:23.65 X 29070 root 20 0 687476 25824 12676 S 0.0 0.1 10:43.35 python2.7 2241 gdm 20 0 1017516 24812 19372 S 0.0 0.1 0:10.19 gsd-media-keys 2243 gdm 20 0 651068 23196 18064 S 0.0 0.1 0:15.36 gsd-power 2219 gdm 20 0 634644 22872 17668 S 0.0 0.1 0:00.22 gsd-xsettings 2152 gdm 20 0 484424 22360 17536 S 0.0 0.1 0:00.15 ibus-x11 2215 gdm 20 0 566536 22240 17236 S 0.0 0.1 0:00.18 gsd-wacom 2240 gdm 20 0 642336 22164 17348 S 0.0 0.1 0:00.18 gsd-keyboard 2222 gdm 20 0 570756 21880 16976 S 0.0 0.1 0:00.17 gsd-a11y-keyboa 2225 gdm 20 0 484044 21668 16852 S 0.0 0.1 0:00.16 gsd-clipboard 1093 polkitd 20 0 546320 19000 9556 S 0.0 0.1 10:19.18 polkitd 1717 root 20 0 223220 16620 3812 S 0.0 0.0 44:34.87 python 1731 root 20 0 212752 15832 7416 S 0.0 0.0 0:00.71 python2.7 2257 gdm 20 0 721208 15032 13040 S 0.0 0.0 25:09.76 gsd-smartcard 1750 gdm 20 0 696800 13964 11712 S 0.0 0.0 0:34.28 gnome-session-b 1071 root 20 0 480520 13844 11500 S 0.0 0.0 0:31.47 NetworkManager 2258 gdm 20 0 577744 13148 11276 S 0.0 0.0 0:00.04 gsd-sound 2235 gdm 20 0 495504 12872 11028 S 0.0 0.0 0:00.03 gsd-datetime 2245 gdm 20 0 484744 12176 10424 S 0.0 0.0 0:00.03 gsd-print-notif
# ps aux | awk '{sum+=$6} END {print sum / 1024}'
1247.77
# free -m
total used free shared buff/cache available Mem: 35945 5765 29175 511 1003 34523 Swap: 30719 0 30719
# cat /proc/meminfo
MemTotal: 36807704 kB MemFree: 29875428 kB MemAvailable: 35351836 kB Buffers: 0 kB Cached: 691300 kB SwapCached: 0 kB Active: 5482728 kB Inactive: 785216 kB Active(anon): 369828 kB Inactive(anon): 506792 kB Active(file): 5112900 kB Inactive(file): 278424 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 31457276 kB SwapFree: 31457276 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 353336 kB Mapped: 210668 kB Shmem: 523288 kB Slab: 336724 kB SReclaimable: 268132 kB SUnreclaim: 68592 kB KernelStack: 8592 kB PageTables: 22688 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 49861128 kB Committed_AS: 2750840 kB VmallocTotal: 34359738367 kB VmallocUsed: 268540 kB VmallocChunk: 34340171772 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 180160 kB DirectMap2M: 9256960 kB DirectMap1G: 30408704 kB
具有 24 GB 記憶體的第三個節點:
# top
top - 10:08:01 up 43 days, 22:11, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 335 total, 1 running, 334 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.4 us, 0.7 sy, 0.0 ni, 98.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 24422436 total, 17590640 free, 5837736 used, 994060 buff/cache KiB Swap: 31457276 total, 31457276 free, 0 used. 23084448 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1820 gdm 20 0 4556244 244876 82152 S 0.0 1.0 28:58.89 gnome-shell 647 root 20 0 211328 139016 138516 S 0.0 0.6 2:01.63 systemd-journal 1330 root 20 0 417356 112584 111100 S 0.0 0.5 2:56.85 rsyslogd 2084 gdm 20 0 661304 33656 17880 S 0.0 0.1 90:41.83 gsd-color 1669 root 20 0 417184 30612 22296 S 0.0 0.1 0:23.21 X 1838 root 20 0 687472 25684 12540 S 0.0 0.1 22:38.69 python2.7 2094 gdm 20 0 1230516 24960 19484 S 0.0 0.1 0:10.22 gsd-media-keys 2098 gdm 20 0 651064 23148 18020 S 0.0 0.1 0:15.32 gsd-power 2076 gdm 20 0 634648 23000 17804 S 0.0 0.1 0:00.20 gsd-xsettings 2074 gdm 20 0 566536 22348 17348 S 0.0 0.1 0:00.21 gsd-wacom 2079 gdm 20 0 570756 22080 17180 S 0.0 0.1 0:00.16 gsd-a11y-keyboa 2035 gdm 20 0 484424 22024 17204 S 0.0 0.1 0:00.14 ibus-x11 2093 gdm 20 0 642336 21904 17088 S 0.0 0.1 0:00.17 gsd-keyboard 2083 gdm 20 0 484044 21816 16996 S 0.0 0.1 0:00.18 gsd-clipboard 1071 polkitd 20 0 546312 18812 9372 S 0.0 0.1 10:10.08 polkitd 1719 root 20 0 222800 16056 3708 S 0.0 0.1 31:42.76 python 1724 root 20 0 212752 15692 7276 S 0.0 0.1 0:00.62 python2.7 2111 gdm 20 0 721080 15116 13120 S 0.0 0.1 23:53.20 gsd-smartcard 1714 gdm 20 0 696800 13876 11620 S 0.0 0.1 0:34.06 gnome-session-b 1049 root 20 0 480512 13872 11580 S 0.0 0.1 0:30.41 NetworkManager 2115 gdm 20 0 577744 12984 11116 S 0.0 0.1 0:00.03 gsd-sound 2085 gdm 20 0 495504 12848 11004 S 0.0 0.1 0:00.03 gsd-datetime 2099 gdm 20 0 484744 12052 10304 S 0.0 0.0 0:00.02 gsd-print-notif
# ps aux | awk '{sum+=$6} END {print sum / 1024}'
1240.27
# free -m
total used free shared buff/cache available Mem: 23850 5701 17177 507 970 22542 Swap: 30719 0 30719
# cat /proc/meminfo
MemTotal: 24422436 kB MemFree: 17590524 kB MemAvailable: 23084532 kB Buffers: 0 kB Cached: 687492 kB SwapCached: 0 kB Active: 5470816 kB Inactive: 780568 kB Active(anon): 361540 kB Inactive(anon): 504624 kB Active(file): 5109276 kB Inactive(file): 275944 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 31457276 kB SwapFree: 31457276 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 346348 kB Mapped: 210440 kB Shmem: 519888 kB Slab: 306796 kB SReclaimable: 241160 kB SUnreclaim: 65636 kB KernelStack: 8592 kB PageTables: 22624 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 43668492 kB Committed_AS: 2753904 kB VmallocTotal: 34359738367 kB VmallocUsed: 215184 kB VmallocChunk: 34346561532 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 180160 kB DirectMap2M: 7159808 kB DirectMap1G: 19922944 kB
如您所見,Active(file) 是主要的記憶體使用欄位。我在這個問題中閱讀了有關 Active(file) 的資訊。如答案中所述,活動是正在使用的緩衝區或頁面記憶體記憶體的總量,以千字節為單位。這是最近使用過的記憶體,通常不會為其他目的而回收。
正如我所說,所有服務都已關閉。我想釋放這段記憶。在集群執行時,此記憶體每天都在增加。所有節點都是 VMware ESXi 上的虛擬化 Oracle Linux 7.5。
我會很感激有人給我一些點來解決這個問題。
https://www.linuxatemyram.com/有一個很好的建議:不要驚慌!你的記憶體沒問題!
請注意,這
MemAvailable
大約是 95%MemTotal
,或者換句話說,只有 5% 分配給非記憶體使用。這些盒子上有足夠的記憶體,至少在這種空閒狀態下。文件記憶體是可用的記憶體,很容易用於其他目的。不用擔心 的標籤
Active(file)
,這只是相對於其他記憶體。匿名、共享和其他非文件支持的頁面比記憶體具有更高的優先級。文件記憶體在使用者程序消失後仍然存在,因為它們是核心中文件系統的功能。保留這些可以提高讀取這些文件的所有程序的性能。否則這個記憶體就會被浪費掉。手動刪除僅對冷記憶體中的基準測試有用,在操作過程中沒有理由這樣做。