IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

kswapd 进程占用过多资源导致RAC宕机

Oracle Life 2010-12-16 21:40:27 累计浏览 3,530 次
本机暂存
    最近在上海一个客户现场,帮助诊断一个RAC宕机问题,最终发现是kswapd进程占用了大量的CPU资源。

    在Top采样输出中,最高的两个就是kswapd0,kswapd1两个进程,分别占用307.9%,299%的CPU资源:

     PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           

    1415 root      20  -5     0    0    0 R 307.9  0.0 121:58.00 [kswapd1]        

    1414 root      20  -5     0    0    0 R 299.0  0.0  90:33.22 [kswapd0]

    2713 root      20  -5     0    0    0 R 112.5  0.0  23:29.55 [kjournald]      

    8342 root      10  -5     0    0    0 S 21.3  0.0   4:08.28 [kjournald]

    29428 root      15   0     0    0    0 S 11.0  0.0  10:59.91 [pdflush]       

    最终资源耗尽,导致一个节点将另外一个节点驱逐。

    记录一下在网上找到的kswapd进程的解释:

    1.Linux uses kswapd for virtual memory management such that pages that have been recently accessed are kept in memory and less active pages are paged out to disk.

    2.系统每过一定时间就会唤醒kswapd进程,查看内存资源是否紧张,如果不紧张,则继续睡眠,在kswapd中,有2个阀值,pages_hige和pages_low,当空闲内存页的数量低于pages_low的时候,kswapd进程就会扫描内存并且每次释放出 32个free pages,直到free page的数量到达pages_high.

    kswapd进程导致系统故障的案例为数不少,有些是Bug导致的,以下Bug是Redhat网站登记的重要参考:

    https://bugzilla.redhat.com/show_bug.cgi?id=293641

    这个客户的环境可以通过系统优化来解决。原图已失效

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Java开发岗位面试题归类汇总 (累计阅读 22,156)
  2. Linux如何统计进程的CPU利用率 (累计阅读 16,307)
  3. 我的 RHCA 之路 (累计阅读 14,013)
  4. Linux内存点滴 用户进程内存空间 (累计阅读 13,229)
  5. 给程序员新手的一些建议 (累计阅读 13,089)
  6. Linux 性能监控、测试、优化工具 (累计阅读 13,011)
  7. 关于linux内存free的一些事情 (累计阅读 12,867)
  8. ps - 按进程消耗内存多少排序 (累计阅读 12,687)
  9. Google怎么用linux (累计阅读 12,581)
  10. Linux Used内存到底哪里去了? (累计阅读 11,867)