当前位置: 首页 > 面试题库 >

我可以告诉Linux不要换出特定进程的内存吗?

樊俊悟
2023-03-14
问题内容

有没有办法告诉Linux,它不应该将特定进程的内存换出到磁盘上?

它是一个Java应用程序,因此理想情况下,我希望从命令行中找到一种方法。

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


问题答案:

您可以通过Linux下的mlockall(2)系统调用来完成此操作。这将在整个过程中起作用,但是请务必阅读您需要传递的参数。

您是否真的需要将整个过程置于核心?如果它是一个Java应用程序,则可能会将整个JVM锁定在内核中。我不知道执行此操作的命令行方法,但是您可以编写一个简单的程序来调用fork,call
mlockall,然后exec

您可能还会查看madvise(2)中的一种访问模式通知是否满足您的需求。如果VM子系统适合您,则向其建议更好的分页策略可能会更好。

请注意,很久以前,现在在SunOS之下,有一种类似于madvise的机制称为vadvise(2)。



 类似资料:
  • 我有一个相当大的bean(~100个属性),映射到几个较小的对象中。可能会出现这样的情况:较小的目标对象的属性与我的源bean中的名称相同,但语义不同。 我希望MapSTRt在这个特定的情况下只映射我使用注释显式告诉的内容,而不执行通常的自动映射。 MapStruct文档告诉我: 在生成的方法实现中,源类型(…)的所有可读属性将被复制到目标类型(…)中的相应属性中。 我没有找到任何配置选项来关闭此

  • 编辑以获得更多澄清:查询字符串是从另一个(get)请求中遗留下来的。因此,如果我可以清除查询字符串,这也将工作。此外,我不希望编辑表单输入的,因为我希望此postendpoint可以用于其他服务,而不必更改它们。

  • python指标代码pymetrics可用于分析代码文件的复杂性。它们创建了两个不同的指标: 整个文件的COCOMO 2的SLOC度量 我想知道这些指标的数值意味着什么,而不是它们的定义。值“1”是什么意思?一个数字‘5’?一个“10”的数字?越高越好还是越低越好?什么数值指的是好代码,什么指的是真正的坏代码?上网搜了一下,给了一些提示,但我不确定分类指的是公制(1)还是公制(2)。我想让这两个数

  • 我正在开发一个Python库,我已经将它安装在本地virtualenv中进行测试。我在pip中安装了几个依赖项。当我这样做的时候 它添加了我当前的项目,如下所示: 我必须手动删除它-我的项目实际上并不依赖于它本身。是否可以向pip传递一个参数,该参数表示“嘿,忽略这些类型的包?”

  • 场景: 我有一个使用Gradle构建的应用程序 应用程序使用JavaFX 我想要的 null 将指向所需的JDK 我可以接受很多建议: 定义系统环境变量的解决方案,我可以在build.gradle脚本中签入该变量 在gradle.properties中定义的变量 仅针对构建上下文重写JAVA_HOME变量(类似于) 我没有想过的其他事情 问题: 如何将变量(如何定义,如中的变量、系统环境变量、..

  • 我正在使用Inno安装程序将第三方安装程序与我构建的另一个EXE打包,以便为安装准备我们的公司环境。完成后,我真的很想从最终用户的计算机上删除所有安装程序文件。我试着在我用Inno创建的临时目录上使用,但它不起作用。Inno会自动在安装目录中创建和。所以当它试图删除根目录时,它发现它不是空的。 我不需要Inno的卸载程序,因为3P应用程序有自己的卸载程序。我可以告诉Inno Setup不要创建un