首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法踢kswapd,让它交换页面?

有没有办法踢kswapd,让它交换页面?
EN

Unix & Linux用户
提问于 2011-08-07 19:03:36
回答 1查看 1K关注 0票数 2

尽管我已经将交换设置为100并启用了交换,但没有任何东西被交换掉。这可能是因为我目前没有很高的记忆压力。不过,出于测试目的,我想迫使kswapd尽可能多地交换。即使没有很高的记忆压力,有什么方法可以让它发挥作用呢?

EN

回答 1

Unix & Linux用户

发布于 2011-08-07 19:33:06

据我所知,并不是这样,但是您可以通过分配(并使用)一些ram来强制它交换。

代码语言:javascript
复制
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int main(int argc, char **argv)
{
    if (argc < 2)
      return 1;
    int megs = atoi(argv[1]);
    if (megs <= 0)
      return 2;
    int i;
    for (i=0; i<megs; i++) {
        void *data = malloc(1024*1024);
        memset(data, 1, 1024*1024);
    }
    getchar();
    return 0;
}

将其保存到eater.cgcc -o eater eater.c编译器中。(或者不管您最喜欢的编译器的命令行是什么。)然后简单地使用一些兆字节作为参数来运行它。按回车来释放它。

警告:这将运行得很快,直到您真正达到了交换的需要。然后你的整个系统会停止/开始得到OOMs/随机应用程序将开始失败,如果你消耗太多的内存。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/18273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档