如何防止去交换?

我们有一个关键的应用程序,它使用我们很多的RAM内存。 在大多数情况下,应用程序驻留在RAM中,但是也有一些情况(例如,当其他一些应用程序和deamons开始使用更多的RAM),这使得SWAP意味着我们的应用程序开始响应非常缓慢。

有什么办法可以阻止我们的应用程序进入交换

多谢你们!

closures交换,或者使用mlockall()来防止进程内存被换出。 虽然有多less页面可以被locking,但可能需要根据自己的目的进行调整,但仍然存在stream程和系统限制。

看看这里 。 通过在/proc/sys/vm/swappiness之间回显0到100之间的值,可以控制交换的热切(0不是非常急切,而100非常渴望)。

您需要解决您首先要交换的基本原因。 这意味着调整您的应用程序或添加RAM。 交换是症状,而不是问题 – 对于您的应用程序(或调整不当/架构的应用程序)的硬件大小不正确是问题所在。

交换不是Allways是一个应用程序或需要内存错误,如果你是默认的大多数发行版,并且你的应用程序有很多不活动的页面,当你的系统开始加载文件caching将增长,并保持“文件”的内存作为caching来试图避免更多的IO,但这并不意味着系统正在为你的需求,如在晚上发生的文件系统的备份,并增长一个非常大的caching不必要的数据交换你的关键应用程序的磁盘。

防止您的应用程序交换可能会使其响应速度更慢。 操作系统只是交换你的应用程序,因为它别无select。 如果您阻止这样做,则系统上的总I / O负载将会增加,因为其他进程必须进行更换,因为您占用了所有的物理内存。 这也会减慢你的I / O速度,结果将是一场灾难。

如果一台机器的工作负载没有足够的物理内存,那么速度会变慢。 更多的物理内存或更less的工作量是解决scheme。 如你所暗示的粗暴调整会使一切变得更糟。