Welcome 微信登录

首页 / 操作系统 / Linux / Xen虚拟机cpu负载过高性能问题

背景:在Xen环境下,内存与CPU分配是可以动态改变的。通过动态更改内存与CPU分配,可以达到优化虚拟机性能的目的。通常情况下,我们的虚拟机分配物理cpu的资源为自动分配的。当在一个物理机器上面分配多个虚拟机,并且虚拟机的cpu总和超过实际物理机器的cpu数量时,并且各个虚拟机在高负载的情况下,高负载的虚拟机会调用其他虚拟机器的资源这次发现的问题是我们公司某系统新上线了三台虚机服务器,上线后发现,在流量是平均分配的前提下,新上的机器的负载比老机器高,新上的机器负载在8左右,而老机器的负载在4左右,查询了机器的配置和参数设置,新老机器都一样。后来通过iostat指令,发现新机票的steal值非常高,大于在40左右,而老机器的steal只有0.1左右。经与老大咨询,steal的值高会代表实体机的CPU负载高。后经由老大发现,新上线的三台虚拟机在一台实体机上,每个虚机分配了四个CPU,而实体机是个8CPU的服务器,导致了三个虚机之间征用CPU。(cpu要打开超线程!!!)检查方法1,检查系统状态 # iostat 1avg-cpu: %user %nice %system %iowait %steal %idle
61.58 0.00 22.66 0.00 13.30 2.46Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnavg-cpu: %user %nice %system %iowait %steal %idle
58.77 0.00 23.70 0.00 17.54 0.00Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
xvda 8.49 0.00 520.75 0 552
xvda1 0.00 0.00 0.00 0 0从这里我们可以看到 %steal 的值变化比较多,也就说明存在虚拟加之间在争用CPU的资源。2. 检查各个虚拟机分配的CPU资源是否和物理机器的CPU资源一致。

解决方法

1. 如发现虚拟机的cpu资源(数量)大于物理机器的CPU资源。检查物理机器是否已经打开超线程,如果没有打开,需要打开。2. 重启虚拟机后,检查资源是否还是解决。如果发现%steal 值恢复正常。问题解决。附上一篇参考资料  http://www.linuxidc.com/Linux/2012-05/60941p2.htm通俗一点来讲:把CPU比作人,那么没有超线程时这个人只用右手干活。有了超线程之后,左右手同时干不同的事情。在一定程度上提高了效率。
  • 1
  • 2
  • 下一页
有关Linux升级的经验之谈使用pscp实现Windows 和 Linux服务器间远程拷贝文件相关资讯      Xen  XEN虚拟机  Xen虚拟机配置 
  • Xen安全架构sHype/ACM策略配置图文  (04月05日)
  • Xen 4.6 发布下载,增强安全性和   (10/14/2015 09:01:11)
  • Xen信息泄露漏洞(CVE-2015-2044)  (03/10/2015 07:52:01)
  • Xen arch/x86/mm.c mod_l2_entry权  (11/09/2015 11:39:48)
  • Fedora 20源码安装Xen4.3.0  (04/22/2015 06:20:50)
  • Linux入门学习教程:虚拟机体验之  (03/08/2015 19:15:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数