![Hyper-V 动态内存使用带缓存的所有内存](https://linux22.com/image/1066328/Hyper-V%20%E5%8A%A8%E6%80%81%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E5%B8%A6%E7%BC%93%E5%AD%98%E7%9A%84%E6%89%80%E6%9C%89%E5%86%85%E5%AD%98.png)
Ubuntu 服务器 18.04 和动态内存有问题。我有一些 Debian 9 服务器和 ubuntu 服务器在 Hyper-V 上运行。Debian 服务器在动态内存下表现如预期,内存在 512mb 和 2gb 之间跳转。我的 ubuntu 服务器似乎在重启后约 15 秒直接跳到最大可用内存。我相信这全在缓存中,但我不是 Linux 专家。刷新缓存后,内存在缩小之前又会再次填满。我能否得到一些指示来追踪这个问题,很多工作涉及将这些较新的服务器改回 Debian。
根据这个https://docs.microsoft.com/en-au/windows-server/virtualization/hyper-v/Supported-Ubuntu-virtual-machines-on-Hyper-V 我需要这篇文章“倾向于消耗系统上全部可用内存的应用程序最多只能消耗 80% 的可用 RAM。”
您如何才能阻止磁盘缓存扩展?我尝试过 echo 512000 > /proc/sys/vm/min_free_kbytes 并将内存压力设置为 400,但缓存仍然在消耗 1000 GB 的内存。
提前致谢。
#free
total used free shared buff/cache available
Mem: 4026308 1558392 1478392 73488 989524 2331652
Swap: 2097148 780 2096368
#slabtop
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
116466 111417 0% 0.19K 2773 42 22184K dentry
83820 83820 100% 0.13K 1397 60 11176K kernfs_node_cache
66630 65980 0% 1.06K 2221 30 71072K ext4_inode_cache
63616 63171 0% 0.50K 994 64 31808K kmalloc-512
55808 54321 0% 0.06K 872 64 3488K pid
48009 48009 100% 0.10K 1231 39 4924K buffer_head
44733 44148 0% 0.20K 1147 39 9176K vm_area_struct
35351 34589 0% 0.59K 667 53 21344K inode_cache
31808 31211 0% 0.25K 497 64 7952K filp
30314 29997 0% 0.09K 659 46 2636K anon_vma
28928 28928 100% 0.03K 226 128 904K kmalloc-32
25856 25420 0% 0.06K 404 64 1616K kmalloc-64
18522 18522 100% 0.19K 441 42 3528K cred_jar
16408 15088 0% 0.57K 293 56 9376K radix_tree_node
14790 14790 100% 0.04K 145 102 580K ext4_extent_status
13312 13312 100% 0.02K 52 256 208K kmalloc-16
11264 11264 100% 0.01K 22 512 88K kmalloc-8
10608 9571 0% 0.66K 221 48 7072K proc_inode_cache
10416 9761 0% 0.09K 248 42 992K kmalloc-96
9920 9483 0% 0.25K 155 64 2480K kmalloc-256
7084 7040 0% 0.69K 154 46 4928K sock_inode_cache
6970 6970 100% 0.02K 41 170 164K lsm_file_cache
5460 5460 100% 0.19K 130 42 1040K kmalloc-192
4704 4449 0% 1.00K 147 32 4704K kmalloc-1024