如何更改 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) 超时? 的相关文章

  • Xcode Instruments:模拟器中运行的 iPhone 应用程序的峰值 RAM?

    活动监视器 又名内存监视器 是 Xcode Instruments 中唯一可以测量在模拟器中运行的 iPhone 应用程序的总应用程序 RAM 使用情况的工具吗 只是显示瞬时有线 RAM 的那条线 与 iPhone 硬件相比 尤其是 OSX
  • Java固定内存映射

    有没有一种简单 高效的Map允许限制映射使用的内存的实现 我的用例是 我想在创建时动态分配大部分可用内存 但我不希望OutOFMemoryError将来的任何时候 基本上 我想使用这个地图作为缓存 但我想避免像这样的重缓存实现EHCache
  • 仅使用两个变量交换两个数字

    它如何执行交换 a a b b a b a b a 我不同意把它换成书 书中的选项包括 a和b的值的补集 否定和b 希望这些选项也不能满足它 正确的算法应该是 a a b b a b a a b
  • 为什么 call_usermodehelper 大多数时候都会失败?

    从内核模块中 我尝试使用 call usermodehelper 函数来执行可执行文件 sha1 该可执行文件将文件作为参数并将文件的 SHA1 哈希和写入另一个文件 名为输出 可执行文件完美运行 int result 1 name hom
  • 如何在不使用库函数的情况下在C中将大端转换为小端?

    我需要编写一个函数将大端整数转换为 C 中的小端整数 我无法使用任何库函数 我该怎么做 假设您需要的是一个简单的字节交换 请尝试类似的操作 无符号 16 位转换 swapped num gt gt 8 num lt lt 8 无符号 32
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul
  • malloc :匿名映射和魔法区域

    我只是在摆弄内存映射 想查看用户空间虚拟内存区域映射 写了一些像这样的行 char ptr NULL printf Allocating 300KB n ptr malloc 300 1024 printf Allocated at p s
  • Objective c,实例成员的内存管理

    我对实例成员的内存管理感到困惑 我有一个带有 ivar 的课程 DetailedResultsTableViewController detailedResultsTableViewController and property nonat
  • 较低级别的缓存是否可以具有更高的关联性并且仍然保留包含性?

    较低级别的缓存是否可以具有更高的关联性并且仍然保留包含性 假设我们有 2 级缓存 L1 最接近 CPU L2 最接近主内存 L1 高速缓存是与 4 个组关联的 2 路组 假设 L2 高速缓存与 16 个高速缓存行直接映射 并假设两个高速缓存
  • 我可以告诉 Linux 不要交换特定进程的内存吗?

    有没有办法告诉 Linux 它不应该将特定进程的内存交换到磁盘 它是一个 Java 应用程序 所以理想情况下我希望有一种方法可以从命令行执行此操作 我知道您可以将全局交换性设置为 0 但这明智吗 您可以通过以下方式执行此操作姆洛克尔 2 h
  • “calloc”不会自动消耗 RAM 中的内存

    根据这个问题的回答 malloc 和 calloc 之间的区别 https stackoverflow com questions 1538420 difference between malloc and calloc answer 15
  • 在 CUDA 中的设备内存上分配 2D 数组

    如何在 Cuda 中的设备内存中分配和传输 往返于主机 2D 数组 我找到了解决这个问题的方法 我不必展平阵列 内置的cudaMallocPitch 函数完成了这项工作 我可以使用以下命令将阵列传输到设备或从设备传输阵列cudaMemcpy
  • C:内存池库?

    我需要一些快速 线程安全的内存池库 我用谷歌搜索了很多 但是快速的解决方案没有线程安全 而其他的则非常大 有什么建议么 nedmalloc 和 ptmalloc 都是基于 C 的线程缓存内存管理器 基于 doug lea 的 malloc
  • 已编译 LKM 的互换性

    是否可以使用可加载内核模块 编译为3 0 8 mod unload ARMv5 我自制的内核 在具有版本的内核中3 0 31 gd5a18e0 SMP preempt mod unload ARMv7 安卓股票内核 该模块本身几乎不包含任何
  • 一些涉及类析构函数和删除运算符的内存管理问题?

    在阅读了一些教程后 我仍然不清楚 C 中内存管理的一些观点 1 当使用 new 运算符声明的类超出范围时 是否会调用其析构函数并释放内存 是否有必要调用删除运算符来释放类的内存并调用其析构函数 class Test void newTest
  • 如何通过jiffies实现经过时间

    我想了解如何在 C 中使用 jiffies 实现经过时间 假设我有一系列指令 include
  • 反序列化 XML 文件而不将其全部加载到内存中 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 假设您的应用程序使用 XmlSerializer 序列化对象 当应用程序的另一部分 例如外部服务或另一个组件 处理该 XML 文件时 会返回一个
  • Glassfish 上的内存管理

    我的 Glassfish 服务器上运行着几个后台任务 由 TimerService实例 这些服务的目标是从文件中提取数据并将该数据插入数据库 我最初尝试在 JPA 中执行此操作 但系统很容易就停滞了 我现在已将该过程转换为 JDBC 它的响
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 操作/Lambda 表达式内存管理问题

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

随机推荐

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

    我打算有一个类 它有一个内部类和一个名称相似的方法 的代码为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