有没有办法告诉Linux不应该将特定进程的内存换成磁盘?

这是一个Java应用程序,所以理想情况下,我希望能通过命令行实现这一点.

我知道可以将全局交换设置为0,但这明智吗?

推荐答案

你可以在Linux下通过mlockall(2)系统调用来实现这一点;这将适用于整个过程,但一定要阅读你需要通过的论点.

你真的需要把整件事都扯进go 吗?如果它是一个java应用程序,你可能会把整个JVM锁在内核中.我不知道有什么命令行方法可以做到这一点,但你可以编写一个简单的程序来调用fork,调用mlockall,然后调用exec.

您还可以查看madvise(2)中的某个访问模式通知是否满足您的需求.如果适用,建议VM子系统使用更好的分页策略可能会更好.

请注意,很久以前,在SunOS的统治下,有一种类似于madvise的机制,叫做vadvise(2).

Linux相关问答推荐

Bash脚本用于在远程工作后关闭用户会话

当页面对齐关闭时,x86—64上的对象中的成员初始化器的Clang代码生成错误?

如何将参数传递给Bash函数

从一个文件中读取文件名并将文件名和内容存储到另一个带有|的文件中作为分隔符

Linux 中大型 TSV 的条件编辑

从 MariaDB 连接到 Oracle 时出现错误消息libsqora.so.11.1:找不到文件

如何将一个变量的 2 行添加到另一个变量的特定行?

如何为命令的所有选项启用无密码 sudo?

如何在守护进程中使用 popen() 和 pclose() 获取通过管道执行的 shell 命令的正确退出代码?

我有 ext2 格式的文件系统图像.我喜欢在终端中读取 Linux 特别是 Ubuntu 中的所有文件系统 struct 数据.有没有工具>

当接收端未从套接字读取时,通过 Unix 套接字发送的消息会发生什么情况?

如何在 Linux 中获取 C/C++ 中的用户名?

使用 awk 或 sed 删除特定字符

如何计算制表符分隔的文本文件中字段的唯一值的数量?

argv的编码是什么?

使用 Scp 时防止覆盖文件

为什么 JVM 报告的已提交内存比 linux 进程驻留集大小更多?

什么是适用于 Linux 的好的 Prolog IDE?

Linux控制台中的模糊文件搜索

如何查看线程在哪个 CPU 内核中运行?