如何更改 Linux 内核交换守护进程 (kswapd) 超时?

2024-04-13

我想通过使用闪存、SSD 等快速设备作为交换设备来减少 kswapd 超时以提高性能。


您可以更改以下行为kswapd通过2种方式

通过Proc文件系统

From IBM 开发者工作坊 http://www.ibm.com/developerworks/linux/library/l-adfly/index.html,

/proc/sys/vm/kswapd

  1. 内核一次尝试释放的最大页数。如果您想增加交换的带宽,则需要增加 这个号码。

  2. 内核尝试在每个交换上释放页面的最小次数。

  3. 内核可以在一个交换区中写入的页数。这对系统性能影响最大。值越大越多 数据可以交换并且磁盘查找所花费的时间更少。然而, 太大的值会对系统性能产生不利影响 淹没请求队列

通过内核代码

kswapd( 无效 *p ) http://lxr.free-electrons.com/source/mm/vmscan.c#L2996 calls kswapd_try_to_sleep() http://lxr.free-electrons.com/source/mm/vmscan.c#L2939. 这是哪里 http://lxr.free-electrons.com/source/mm/vmscan.c#L2951 the kswapd守护进程尝试休眠。像这样-

schedule_timeout(HZ/10) /* You need to modify here to change the timeout value */

实际上,这是它睡眠的一个非常短的时间段。经过短暂的睡眠后,它会检查是否是过早睡眠。如果没有,它将完全进入睡眠状态(这里没有超时),直到明确唤醒。

调整内核代码、构建和测试它并不是一件容易的事。所以我建议你去/proc文件系统方式!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 Linux 内核交换守护进程 (kswapd) 超时? 的相关文章

  • Objective-C 内存管理:发布时崩溃

    我是 Objective C 的新手 似乎无法正确理解内存管理代码 我有以下代码 Media myMedia self myMediaManager getNextMedia self navigationItem title self m
  • 删除数组时出现访问冲突异常

    删除分配的内存时 出现 访问冲突读取位置 异常 如下所示 我有一个针对 Visual Studio 2010 工具集 v100 C 编译器编译的本机 dll 我有一个针对它的托管 dll 包装器 它是针对工具集 v90 编译的 因为我想以
  • 我的属性太活泼了,我该怎么办?

    在 Linux 设备驱动程序中 创建 sysfs 属性probe太活泼了 具体来说 它经历了与用户空间的竞争条件 http kroah com log blog 2013 06 26 how to create a sysfs file c
  • 当 C 中没有足够的内存用于静态分配时会发生什么?

    当您动态分配内存时 例如malloc 1024 sizeof char 结果指针设置为NULL如果没有足够的可用内存来满足请求 当没有足够的内存来满足静态分配时会发生什么 例如char c 1024 char c 1024 不一定是静态分配
  • 如何更改 div 悬停时的跨度颜色

    我正在尝试更改 div 悬停时跨度的颜色 如何使红色汉堡按钮 即跨度 在 div 悬停时将颜色更改为黑色 PS 现在它在跨度的悬停上执行此操作 JSFiddle https jsfiddle net bjjbqct8 https jsfid
  • malloc 实现?

    我正在尝试实施malloc and free对于C 我不知道如何重用内存 我目前有一个struct看起来像这样 typedef struct mem dictionary void addr size t size int freed me
  • 如何从 C 中的指针获取数组的大小?

    我分配了一个 数组 mystruct尺寸的n像这样 if NULL p calloc sizeof struct mystruct n 1 handle error 后来我只能访问p 并且不再有n 有没有一种方法可以确定仅给出指针的数组的长
  • 我可以告诉 Linux 不要交换特定进程的内存吗?

    有没有办法告诉 Linux 它不应该将特定进程的内存交换到磁盘 它是一个 Java 应用程序 所以理想情况下我希望有一种方法可以从命令行执行此操作 我知道您可以将全局交换性设置为 0 但这明智吗 您可以通过以下方式执行此操作姆洛克尔 2 h
  • 为什么要在堆而不是堆栈上分配内存? [复制]

    这个问题在这里已经有答案了 可能的重复 什么时候最好使用堆栈而不是堆 反之亦然 https stackoverflow com questions 102009 when is it best to use a stack instead
  • 到底什么是“位填充”或“填充位”?

    我只是在互联网上找不到任何关于 位填充 真正含义的详细解释 并且在 Stack Overflow 上也没有找到与位填充相关的线程的任何答案 我还搜索了 ISO 9899 1990 其中提到了 位填充 但没有根据我的需要进行解释 我在网上找到
  • C++ 中数组的正确分配和释放内存

    我正在处理动态数组 功能empty matrix 创建一个新数组 表示一个矩阵 delete matrix 释放为矩阵分配的所有内存 我的函数中是否出现内存泄漏example 如果我打电话add add a b c 函数中分配的内存会发生什
  • 在内核中创建一个简单的只写过程条目

    include
  • 如何获取常量内存中的统计数据

    我有一个函数 它会创建一些随机的数值结果 我知道 结果将是 a 小 a b 约 50 范围内的整数a b 我想创建一个执行上述函数 1000000 次的函数 并计算每个结果出现的频率 该函数使用随机生成器来生成结果 问题是 我不知道如何在常
  • 小/大 numpy 数组的释放处理方式是否不同?

    我正在尝试调试我的大型 Python 应用程序的内存问题 大部分记忆都在numpy由Python类管理的数组 所以Heapy http guppy pe sourceforge net 等等都是无用的 因为它们不占内存numpy数组 因此
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • NSMutableArray 实例变量内存管理

    我正在做最后一点内存管理整理 但有些东西我不明白 我已经检查了所有文档 Stack Overflow 等 但仍然不明白 我怀疑这与数组有关 我有一个NSMutableArray作为实例变量 我用它来保存从另一个数组中的对象创建的对象 vie
  • 操作/Lambda 表达式内存管理问题

    我将一个操作存储在局部变量中 然后在该局部变量超出范围后使用 使用前是否有被清理的危险 这是一个例子 public List GetMaps Action
  • 删除指向对象的 C++ 指针

    我认为删除命令会释放我分配的内存 有人可以解释为什么删除后我似乎仍然有内存在使用吗 class Test public int time int main Test e e new Test e gt time 1 cout lt lt e
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构

随机推荐

  • 方法和内部类同名(错误:...与先前的声明冲突)

    我打算有一个类 它有一个内部类和一个名称相似的方法 的代码为example1 cpp即使我有一个内部类和一个同名的方法 编译也没有问题B While example2 cpp如果我重命名将不起作用Position to position用小
  • Kotlin - 在 Android 中转换 Singleton DatabaseController 的最佳方式

    我正在通过 Kotlin in Action 学习 Kotlin 并且正在慢慢地将 Android 应用程序代码转换为它 但我在转换下面的类时发现了一些问题 public class DatabaseController private s
  • VueJS:使用对象文字与返回对象的函数定义“数据”

    定义之间有什么区别data对象可以通过以下方式 1 使用对象字面量 data title Helly VueJS 2 函数返回对象 data return title Helly VueJS 来自文档 https v2 vuejs org
  • 如何使用 pyinstaller 创建最小大小的可执行文件?

    我使用的是 Windows 10 安装了 anaconda 但我想使用 python 3 5 在一个新的 干净的最小环境中独立创建一个可执行文件 所以我做了一些测试 测试1 我在文件夹 testenv 中创建了一个 python 脚本 te
  • 在mysql中选择两个独立的表[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 results mysqli gt query SELECT product name price FROM herbs an WHERE
  • 双倍的 Pow 实现

    我正在开发一个用于运动控制的代码 但我遇到了 pow 函数的问题 我使用VS2010作为IDE 这是我的问题 我有 double p 100 0000 double d 1000 0000 t1 pow p 8 0000 d 1 00 4
  • YouTube.Builder 的正确使用方法

    我需要获取用户 YouTube 视频 这是我的代码 仅尝试获取用户 YouTube 频道 但它不起作用 选择帐户后 加载Youtube频道总是抛出错误 我读了这个answer https stackoverflow com a 214077
  • 如何使用类库中的控制器?

    我在类库中有控制器 但我无法弄清楚如何让主项目识别它们 主项目引用了我的类库 我需要在某处注册它们吗 我想同时使用控制器和 ApiController EDIT 路线配置 创建项目后未更改 public class RouteConfig
  • 在 swift 中将 UIImage 转换为 base64 字符串

    我正在尝试将 UIImage 转换为 base64 字符串 目的是将其上传到后端服务器 然而 我在这篇文章中找到的转换代码 应该是Apple自己的实现 生成了一个无效的字符串 UIImage 和 Base64 字符串之间的转换 https
  • Javafx程序可以通过GUI和命令行控制吗?

    我正在使用 Javafx GUI 但我也需要来自命令行的相同级别的功能 我想知道创建一个同时具有命令行和 Javafx 功能的主类的最佳方法是什么 这样您就可以在 GUI 上做一件事 然后在命令行上做下一件事 命令行还会更新 GUI 显示
  • CSV 日期格式

    我有一个 VB 应用程序 它提取数据并创建 3 个 CSV 文件 a csv b csv c csv 然后我使用另一个 Excel 电子表格 import xls 将上述 CSV 文件中的所有数据导入到此工作表中 import xls 文件
  • 使用 python 进行多元线性回归

    我想用 python 计算多元线性回归 我找到了这个简单线性回归的代码 import numpy as np from matplotlib pyplot import x np array 1 2 3 4 5 y np array 2 3
  • 无法启动服务器。服务器实例未配置

    在尝试为我的项目设置 tomcat 服务器时 出现以下错误 请参阅下面的完整堆栈跟踪 java lang ClassNotFoundException com springsource tcserver serviceability dep
  • libstdc++.so.6 与 cuda 相关的链接器问题

    今天我在链接我编译的 cuda 内容时遇到了问题 我有一个最新的 debian 测试 w 2 6 32 3 amd64 我整天都在写我的代码 不时编译 没有问题 但在进行了较小的代码更改后 我收到以下错误 gcc o pa CUDA o h
  • 在 ASP.Net Core 2 MVC 中禁用模型验证的正确方法

    使用扩展方法设置 MVC services AddMvc 然后在控制器中 这也可能适用于 GET 使用主体中提供的参数创建 POST 操作的方法 例如 HttpPost save public Entity Save FromBody En
  • 如何在 php 中实现位掩码?

    我不确定位掩码是否是正确的术语 让我解释 在 PHP 中 error reporting函数可以通过多种方式调用 Report simple running errors error reporting E ERROR E WARNING
  • Delphi:如何停止 TAction 快捷键自动重复?

    我正在使用 Delphi TActionList 带有用于某些操作的快捷键 我想防止某些操作被键盘自动重复多次触发 但我确实这样做not想要影响全局自动重复操作 这样做的最佳方法是什么 澄清 我仍然需要处理多个快速按键 这是only我想忽略
  • 如何使用扫描仪使该 switch 语句起作用?

    我正在尝试编写一个程序 将字母表中的任何字母 大写或小写 转换为拼音字母表 例如 如果我输入 A 或 a 我的程序会给我 将其更改为 Alpha 我对此和 switch 语句做了很多研究 但我总是陷入困境 我意识到我不能在扫描仪中使用 ch
  • 使用 chrome 进行 OfflineAudioContext FFT 分析

    我正在尝试构建一个波形生成器 它获取音频文件幅度值并在 JavaScript 中尽快 比实时更快 将它们显示到画布上 所以我使用 OfflineAudioContext webkitOfflineAudioContext 加载文件并开始分析
  • 如何更改 Linux 内核交换守护进程 (kswapd) 超时?

    我想通过使用闪存 SSD 等快速设备作为交换设备来减少 kswapd 超时以提高性能 您可以更改以下行为kswapd通过2种方式 通过Proc文件系统 From IBM 开发者工作坊 http www ibm com developerwo