kswapd 进程占用过多资源导致RAC宕机
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 managementsuch 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-
By eygle on 2010-12-17 08:05 |
Comments (3) |
System | 2676 |
3 Comments
怎么优化的呢?给个步骤先.
把系统换到AS4或者US4的U7版本,或者5.0以上,是不是BUG就修复了呢?
用友的系统,有些庞大的SQL消耗了大量的内存,修正SQL有助于改善内存资源的使用。
BUG是可以通过升级内核来消除,不过这个一般影响大,要求停机时间长。