Unix:内存映射文件,是否适用约束?
这个问题是为了理解unix环境中适用于Mem映射文件的种类限制 我们有一个在unix环境中运行的应用程序,该应用程序托管并提供具有只读访问权限的键值Mem映射文件,并且能够在复制新版本文件时在运行时刷新(可能具有更多键值对) 我观察到的是,由于文件是Mem映射的,当我们使用更多的键值对刷新文件时,VIRT内存消耗会随着RES Mem消耗量的减少而增加Unix:内存映射文件,是否适用约束?,unix,memory-mapped-files,virtual-memory,Unix,Memory Mapped Files,Virtual Memory,这个问题是为了理解unix环境中适用于Mem映射文件的种类限制 我们有一个在unix环境中运行的应用程序,该应用程序托管并提供具有只读访问权限的键值Mem映射文件,并且能够在复制新版本文件时在运行时刷新(可能具有更多键值对) 我观察到的是,由于文件是Mem映射的,当我们使用更多的键值对刷新文件时,VIRT内存消耗会随着RES Mem消耗量的减少而增加 PID PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12948 16
PID PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12948 16 0 43240 9936 2996 S 0.0 0.1 0:00.00 lookup_server
12951 16 0 562m 16m 9972 S 0.0 0.1 0:00.09 lookup_server
据我所知,这是因为整个文件作为虚拟内存页复制到硬盘驱动器中,而RES mem中只需要很少的页面
我的假设对吗
但是请记住,操作系统仍然必须分配页表,因此不要尝试映射1TB的文件。想知道虚拟内存是否受到磁盘空间的限制,以及unix在磁盘上的何处维护虚拟内存页?