0
這個問題是爲了解unix environ中適用於Mem映射文件的種類約束。Unix:內存映射文件,約束適用?
我們有一個在unix環境下運行的應用程序,該應用程序承載並提供具有隻讀訪問權限的鍵值的Mem映射文件的文件,並且在複製新版本的文件時能夠在運行時進行刷新(可能含有更多鍵值對)。
我觀察到的是,由於文件是Mem-Mapped,因爲我們使用更多的鍵值對刷新文件VIRT內存消耗隨着RES mem消耗不多而增加。
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中。
是我的假設正確,那
- 與MEM-映射文件,文件大小不限於可用的物理內存,因爲文件將被換入/出通過點播的OS。
- 並且只有限制因素可以是爲虛擬內存配置的磁盤空間。 在這種情況下,我如何識別操作系統爲虛擬內存擴展標識的磁盤空間?文件的虛擬內存足跡在哪裏存儲在硬盤中?
渴望知道虛擬內存是否受磁盤空間限制,以及磁盤上的哪些位置維護虛擬內存頁? – Shashi