虚拟化项目如何构建压力模型?| 肖力说KVM

Posted 高效运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟化项目如何构建压力模型?| 肖力说KVM相关的知识,希望对你有一定的参考价值。

编辑

  • 高浩淼-北京

嘉宾介绍

肖力 资深KVM专家

拥有15年运维经验,就职于金山西山居,担任系统运维经理,曾就职于盛大游戏,从2009年开始研究KVM技术,是国内较早在生产环境大规模实践KVM的人之一,积累了非常丰富的经验。著有《深度实践KVM》一书。

专栏简介

本次介绍长期的虚拟化项目实践中的经验,主要介绍如何将已有的业务迁移到虚拟化环境。本文是第二篇。第一篇的链接如下:

正文

虚拟化项目实施应该遵循的那些流程,能保证比较稳定的将业务迁移到虚拟化环境?

从我个人长期的实践来看,虚拟化实施最好循序渐进,稳扎稳打,遵循以下的步骤,可以保证比较稳定的业务迁移到虚拟化环境。

虚拟化项目如何构建压力模型?| 肖力说KVM(2)

(1)业务性能评估及压力模型建立

项目启动的时候,首先面临的是虚拟化比例如何确定,到底是1虚5,还是1虚7比较合适,宿主机的配置如何确定,这些都需要依靠数据决定。

所以我们首先需要收集现有业务的压力数据,根据压力数据分析业务的压力模型。业务压力模型建立方法,后面还有详细介绍,有了压力模型,虚拟化比例和宿主机选型就非常好确定。

(2)测试环境测试

虚拟化比例和宿主机确定好之后,然后应该进行测试,测试包括系统方面的测试和业务方面的测试。

系统方面测试主要测试宿主机和虚拟机的压力瓶颈点,看看宿主机和虚拟机最大的负载点在那里,为以后使用做到心里有底。

业务测试包括业务的功能测试和性能测试,功能测试主要测试业务在虚拟机上运行有没有问题,性能测试主要测试业务在虚拟机上能够承担的最高负载,比如游戏行业能负载多少人数,web、数据库能负载多少连接或者io,这个要根据每个业务的不同,使用业务应用层的测试方法进行测试。

通过测试,一方面我们可以测试稳定性,一方面可以得到业务在虚拟机上的最大负载,取得这些数据,我们就可以做到对以后的虚拟机使用心中有数。

(3)小规模部署

测试环境测试没有问题,并且取得相关数据后,就可以在生产环境部署,先应该在生产环境小规模的进行部署,并且测试2周到一个月。

小规模部署最好是业务压力比较小的一台虚拟机测试2周到一个月,没有问题后在找业务压力最大的一组进行虚拟化,在测试2周到一个月。

(4)全面部署

小规模部署没有问题后,就可以逐步的进行全面虚拟化部署,按部就班的将业务迁移到虚拟化环境,直至进入最终的虚拟化运维。

业务压力模型构建方法

下定决心做虚拟化之后,面临的下一个问题是到底虚拟化比例如何确定,宿主机的配置如何选型,这时候就需要根据自己的业务特点,建立压力模型,根据压力模型确定虚拟化比例,宿主机、虚拟机的配置。

虚拟化项目如何构建压力模型?| 肖力说KVM(2)

那么如何建立压力模型呢?这个要用数据说话,数据来自于长期的监控指标及高峰时的数据收集。

一般我们会去看监控系统至少60天之内的数据,尽量做到每台服务器的压力数据都收集下,如果数量比较多,可以抽取压力比较大的一部分机器提炼压力模型。

另外在业务高峰期的几个小时,可以考虑使用脚本收集比较密集的数据,一般监控平台收集的是1到5分钟的数据,通过脚本可以收集5-30秒间隔的数据,提高我们数据收集的精度,脚本其实就是使用sar、iostat、vmstat等命令编写。

所有的数据收集后以后,就可以根据数据提炼出业务的压力模型。

有了压力模型,根据压力模型就非常好确定虚拟化的比例和宿主机选型了。

顺便介绍下游戏游戏业务的压力模型特点:

虚拟化项目如何构建压力模型?| 肖力说KVM(2)

游戏业务主要分为两类模型:

  • GS(Game Server)类:主要是CPU密集型,CPU、内存、网络消耗高,磁盘IO消耗低。
  • DB(数据库)类:主要是IO密集型,CPU、内存消耗低,网络、磁盘IO消耗高。

游戏业务的IO还有两个特点:

  • 网络IO是小包,我们更关注发包率pps
  • 磁盘IO更多是随机小块写,我们更关注IOPS

其他行业可以根据自己的行业特点总结^_^。

(以上内容节选自《深度实践KVM》一书)

好消息来啦

全球运维大会·上海站,将于10月31日举行,届时三大运维体系(精益运维、高效运维和白盒运维),将首度同台汇演。本次会议免费,如需报名或了解详情,请猛戳如下链接。

如何一起愉快地发展

尊重知识,请必须全文转载,并包括本行。

欢迎点击广告或赞赏,以鼓励我们做得更好。谢谢:)