xenserver6.2 内存leak故障处理

从日志来看,系统内存leak导致out of memory。

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505097] lowmem_reserve[]: 0 0 0 0

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505104] DMA: 566*4kB 3*8kB 6*16kB 1*32kB 1*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 2992kB

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505121] Normal: 7335*4kB 30*8kB 19*16kB 5*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 30172kB

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505144] HighMem: 4601*4kB 7437*8kB 11764*16kB 7771*32kB 4097*64kB 1964*128kB 1047*256kB 624*512kB 289*1024kB 186*2048kB 212*4096kB = 3161132kB

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505164] 16719 total pagecache pages

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505167] 0 pages in swap cache

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505170] Swap cache stats: add 91, delete 91, find 68/73

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505174] Free swap  = 524248kB

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.505177] Total swap = 524280kB

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.514944] 1050624 pages RAM

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.514953] 857090 pages HighMem

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.514956] 39028 pages reserved

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.514959] 41189 pages shared

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.514962] 195743 pages non-shared

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.514966] Out of memory: kill process 12051 (fe) score 48887 or a child

Oct 30 14:22:35 xenserver-21622 kernel: [36474919.514972] Killed process 12052 (xapi)

在xenserver 6.2 平台这是一个known issue,具体可参考KB :

http://support.citrix.com/article/CTX138833

Xenserver 62E004 的hotfix可解kernel memory leak的问题,目前建议客户只有将vm全部关机(因为memory leack,导致migration fail),然后安装该hotfix。

##############################################################################

1. Download the update file to a known location.

2. Extract the xsupdate file from the zip.

3. Upload the xsupdate file to the Pool Master by entering the following commands: 
(Where hostname is the Pool Master‘s IP address or DNS name.)

xe patch-upload -s <hostname> -u root -pw <password> file-name=<path_to_update_file>\XS62E004.xsupdate

4. XenServer assigns the update file a UUID which this command prints. Note the UUID.

5579f1f0-ff83-11e2-b778-0800200c9a66

5.

6. Apply the hotfix to all hosts in the pool, specifying the UUID of the hotfix:

xe -s <hostname> -u root -pw <password> patch-pool-apply uuid=5579f1f0-ff83-11e2-b778-0800200c9a66

7.

8. Verify that the update was applied by using the patch-list command.

xe patch-list -s <hostname> -u root -pw <password> name-label=XS62E004

9. If the update has been successful, the hosts field will contain the UUIDs of the hosts this patch was successfully applied to. This should be a complete list of all hosts in the pool.

10. To verify in XenCenter that the update has been applied correctly, select the Pool, and then click the General tab. This displays the Pool properties. In the Updates section, ensure that the update is listed as Fully Applied.

11. The hotfix is applied to all hosts in the pool, but it will not take effect until each host has been rebooted. For each host, migrate the VMs that you wish to keep running, and shutdown the remaining VMs before rebooting the host.

##############################################################################

操作:

1,打补丁前检查:

[[email protected] ~]# xe patch-list -s 192.168.216.52 -u root -pw ****** name-label=XS62E004

2,

[[email protected] ~]# xe patch-upload -s 192.168.216.52 -u root -pw ****** file-name=/root/XS62E004.xsupdate

5579f1f0-ff83-11e2-b778-0800200c9a66

[[email protected] ~]# xe -s 192.168.216.52 -u root -pw ******  patch-pool-apply uuid=5579f1f0-ff83-11e2-b778-0800200c9a66

[[email protected] ~]# xe patch-list -s 192.168.216.52 -u root -pw ******  name-label=XS62E004

uuid ( RO)                    : 5579f1f0-ff83-11e2-b778-0800200c9a66

name-label ( RO): XS62E004

name-description ( RO): Public Availability: Fixes for Dom0 kernel issues

size ( RO): 35766769

hosts (SRO): 6acc1e95-7481-4cfc-a0b7-96d75a3db1ad

after-apply-guidance (SRO): restartHost

[[email protected] ~]#  xe host-list

uuid ( RO)                : 6acc1e95-7481-4cfc-a0b7-96d75a3db1ad

name-label ( RW): xenserver-21652

name-description ( RW): Default install of XenServer

Ok

时间: 2024-10-28 23:41:14

xenserver6.2 内存leak故障处理的相关文章

valgrind调查内存leak

快有几个月没更新了,记录一下最近解决问题用到的工具吧. 最近代码跑压力测试,总是发现内存在无规律的慢慢增加,因此在Android上用上了大名顶顶的valgrind,说实话,真是名不虚传, 真是建议以后所有c/c++ 项目,不管有没有现象级的问题,用这个跑一下检测下一些隐藏得比较深的问题; export G_SLICE=always-malloc export G_DEBUG=gc-friendly 注:Android 4.4中跑valgrind ,把external中编译的valgrind拷贝到

IOS内存管理

原文链接:http://blog.csdn.net/weiqubo/article/details/7376189 1.  内总管理原则(引用计数)    IOS的对象都继承于NSObject,   该对象有一个方法:retainCount ,内存引用计数. 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样.       (一般情况下: 后面会讨论例外情况)    alloc      对象分配后引用计数为1    retain    对象的引用计数+1

iOS内存管理原则

1.  内总管理原则(引用计数)    IOS的对象都继承于NSObject,   该对象有一个方法:retainCount ,内存引用计数. 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样.       (一般情况下: 后面会讨论例外情况)    alloc      对象分配后引用计数为1    retain    对象的引用计数+1    copy      copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变      

IOS内存管理retain,assign,copy,strong,weak

IOS内存管理retain,assign,copy,strong,weak IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数. 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样. (一般情况下: 后面会讨论例外情况)alloc 对象分配后引用计数为1retain 对象的引用计数+1copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变 release 对象引用计数-1 如果为

IE JS编程需注意的内存释放问题

1.给DOM对象添加的属性是一个对象的引用.范例:var MyObject = {};document.getElementById('myDiv').myProp = MyObject;解决方法:在window.onunload事件中写上: document.getElementById('myDiv').myProp = null; 2.DOM对象与JS对象相互引用.范例:function Encapsulator(element) {    this.elementReference =

retain和strong、assign和weak的区别

IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数. 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样. (一般情况下: 后面会讨论例外情况) alloc 对象分配后引用计数为1 retain 对象的引用计数+1 copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变 release 对象引用计数-1 如果为0释放内存 autorelease 对象引用计数-1 如果为0不马上释

ios中strong, weak, assign, copy

copy 和 strong(retain) 区别 1. http://blog.csdn.net/itianyi/article/details/9018567 大部分的时候NSString的属性都是copy,那copy与strong的情况下到底有什么区别呢? 比如: @property (retain,nonatomic) NSString *rStr; @property (copy, nonatomic)   NSString *cStr; - (void)test: { NSMutabl

Android 高级面试题及答案

Android 高级面试题及答案 阅读目录 1.如何对 Android 应用进行性能分析 2.什么情况下会导致内存泄露 3.如何避免 OOM 异常 4.Android 中如何捕获未捕获的异常 5.ANR 是什么?怎样避免和解决 ANR(重要) 6.Android 线程间通信有哪几种方式 7.Devik 进程,linux 进程,线程的区别 8.描述一下 android 的系统架构 9.android 应用对内存是如何限制的?我们应该如何合理使用内存? 10. 简述 android 应用程序结构是哪

深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用(上)

深入研究Block捕获外部变量和__block实现原理 前言 在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理.然而实际使用Block过程中,还是会遇到一些问题,比如Retain Circle的问题. 目录 1.Retain Circle的由来 2.weak.strong的实现原理 3.weakSelf.strongSelf的用途 [email protected].@strongify实现原理 一. Retain Circle的由来 循环引用的问题相信大家都很理