« 参加Oracle Open World 2010 ·北京 | Blog首页 | O3SP - 深入解析Oracle - 我的主题演讲 »
kswapd 进程占用过多资源导致RAC宕机
作者:eygle | 【转载请注出处】|【云和恩墨 领先的zData数据库一体机 | zCloud PaaS云管平台 | SQM SQL审核平台 | ZDBM 数据库备份一体机】
链接:https://www.eygle.com/archives/2010/12/kswapd_rac.html
最近在上海一个客户现场,帮助诊断一个RAC宕机问题,最终发现是kswapd进程占用了大量的CPU资源。链接:https://www.eygle.com/archives/2010/12/kswapd_rac.html
在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
这个客户的环境可以通过系统优化来解决。
-The End-
历史上的今天...
>> 2018-12-17文章:
>> 2008-12-17文章:
>> 2007-12-17文章:
>> 2005-12-17文章:
By eygle on 2010-12-17 08:05 | Comments (3) | System | 2676 |
怎么优化的呢?给个步骤先.
把系统换到AS4或者US4的U7版本,或者5.0以上,是不是BUG就修复了呢?
用友的系统,有些庞大的SQL消耗了大量的内存,修正SQL有助于改善内存资源的使用。
BUG是可以通过升级内核来消除,不过这个一般影响大,要求停机时间长。
不过这个一般影响大,要求停机时间长。