linux - 64 位 Linux 中的交换空间

标签 linux memory suse

我有一个 64 位 Linux (SUSE 10) 双处理器。当我运行我的进程时,它使用大约 4 G 的虚拟内存。只有3G是常驻内存。剩下9G左右的内存是免费的。如何在 RAM 中也加载这 1 G?为什么它仍在交换空间中,为什么内核无法在所有 RAM 可用时将其加载到 RAM 中。

拉胡尔

最佳答案

内核可以将数据加载到内存中。但是,当它们不被使用时,它会选择将它们写出到交换文件中。

如果您确实需要内存中的数据,您应该关闭所有交换文件(使用 swapoff(8)),或者使用 mlock 将特定页面锁定到内存中或 mlockall。

关于linux - 64 位 Linux 中的交换空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403194/

相关文章:

c程序可以 `uint8_t`指向一个大小为32位的地址

linux - Cronfile 没有执行 sudo -u 行?

c - 传递给链接器的库顺序

c - 有没有办法在C中列出所有当前正在运行的进程

linux - 如何为对延迟敏感的 HFT 应用程序临时缓冲传入的网络流量?

C++ 字符串字面量数据类型存储

c - 直接访问物理地址时是否需要使用 volatile 关键字?

linux - 授予 Linux 用户 git 访问权限但不授予 shell 访问权限?

linux - 如何根据 2 个或更多列值拆分文件

linux - 如何检查 bash 中用户输入的值是否存在?