gpt4 book ai didi

amazon-web-services - 如果没有交换空间,虚拟内存怎么存在呢?

转载 作者:行者123 更新时间:2023-12-04 18:36:42 24 4
gpt4 key购买 nike

运行“free”命令时,我看到使用的内存是:
总计:3854884
使用:3752304
免费:102580
已分享:352
缓冲区:9252
缓存:150908

-/+ 缓冲区/缓存:使用:3592144
免费:262740

交换:0 0 0

但是在运行htop时,我看到有很多进程在VIRT列(虚拟内存)下使用4507M的内存。 RES 列(进程正在使用的物理 RAM)显示 209M。 SHR(共享内存)为5352M。

进程的

-Xmx配置为2048m

如果交换空间为零,如何使用虚拟内存?

最佳答案

这些程序(htop 等)所计算的虚拟内存只是进程所请求的地址空间的大小。您拥有物理内存、实际 RAM 和虚拟地址空间,该空间将用户空间程序看到的地址映射到物理内存。他们是分开的。 0x0ff84560 指针可能实际上并未引用 RAM 的该部分。操作系统会建立一个映射来决定您实际引用的 RAM 中的位置。更进一步,它可以在 RAM 进行备份之前设置映射。这是一个事件驱动的过程。操作系统将根据请求设置映射,没有实际支持,没有分配物理内存,并且只有在您尝试使用虚拟内存时才将其实际映射到真实 RAM。

虚拟内存的大小就是这个映射的大小。但并非所有这些都必须由物理 RAM 支持,因此即使没有交换,它也可以大于 RAM。但这会导致程序尝试实际使用比 RAM 更多的内存。如果他们只要求它,只要他们使用它,那根本没有问题。

此外,正如 Thilo 提到的,内存映射文件可以对此进行补充。您可以毫无问题地将整个 100TB 文件映射到虚拟地址空间。操作系统在后台处理后勤工作:引入您需要的部分(您尝试访问的部分)并收获它必须清除物理内存的部分。

关于amazon-web-services - 如果没有交换空间,虚拟内存怎么存在呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42061352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com