系统如何处理大量共享内存?
How does the system handle huge amounts of shared memory?
我的系统有大约 64G 的 RAM 和大约 24G 的交换空间 space。我不小心在我的程序中分配了大量共享内存,令我惊讶的是它起作用了。这是 /dev/shm
中的文件:
-rw-r--r-- 1 user user 191G Aug 7 10:06 myShm
当我的 RAM 和交换区加起来只是其中的一小部分时,系统如何管理 191GB 的共享内存?
您的系统正在分配虚拟内存而不是物理内存。当您 touch/use 特定内存时,它将被分配。通常所有 OS 都足够聪明 "over commit" 记忆。
我的系统有大约 64G 的 RAM 和大约 24G 的交换空间 space。我不小心在我的程序中分配了大量共享内存,令我惊讶的是它起作用了。这是 /dev/shm
中的文件:
-rw-r--r-- 1 user user 191G Aug 7 10:06 myShm
当我的 RAM 和交换区加起来只是其中的一小部分时,系统如何管理 191GB 的共享内存?
您的系统正在分配虚拟内存而不是物理内存。当您 touch/use 特定内存时,它将被分配。通常所有 OS 都足够聪明 "over commit" 记忆。