vsphere平台上运行企业级...

42
vSphere平台上运行企业级 J 应用的最佳实践 Java应用的最佳实践 连冠华 2011年10月26日 1 © 2010 VMware Inc. All rights reserved

Upload: haduong

Post on 17-Feb-2018

264 views

Category:

Documents


32 download

TRANSCRIPT

Page 1: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere平台上运行企业级J 应用的最佳实践Java应用的最佳实践

连冠华

2011年10月26日

1

© 2010 VMware Inc. All rights reserved

Page 2: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

议程

传统的企业级Java平台传统的企业级Java平台

VMware vSphere™企业级Java平台体系架构

设计和扩展设计和扩展

最佳实践

高可用性 高可用性

从物理机迁移到vSphere

故障诊断和性能调优 故障诊断和性能调优

成功案例分享

Q&A Q&A

2

Page 3: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

传统的企业级Java平台

企业级 应用是多层的 企业级Java应用是多层的

当有任何变化发生的时候,多层的复杂性将会导致连锁反应

满足多部门应用的需求导致了成本的增加 满足多部门应用的需求导致了成本的增加

DB ServersJava Applications

Load Balancer Tier

Load Balancers Web Servers

Web Server Tier Java App Tier DB Server Tier

pp

IT Operations IT Operations IT Apps – Java IT Ops & Apps pNetwork Team

pServer Team

ppDev Team

p ppDev Team

Organizational Key Stakeholder Departments

3

Page 4: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere上企业级Java平台的体系架构

DB ServersJava ApplicationsLoad balancers Web Servers

High Uptime, Scalable, and  Dynamic Enterprise Java ApplicationsLoad Balancers as VMs

Web Servers

APPLICATION SERVICES

VMware vSphere

Capacity On Demand High AvailabilityDynamicJava Application Servers

SHARED INFRASTRUCTURE SERVICES

SHARED, ALWAYS‐ONINFRASTRUCTURE

4

Page 5: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

云时代的应用程序基础架构

VMware vFabric 云应用程序平台

框架和工具 Rich Web Integration Batch Data Access Social /Cloud Tool Suite

Dynamic Load B l

Performance M t

Policy-driven A t ti

Elastic A S

Cloud M i

Global Data M tt S ERS (A h ) H iR bbitMQG Fi

vFabricBalancer Management AutomationApp Server MessagingManagementtc Server ERS (Apache) HypericRabbitMQGemFire

平台服务

虚拟数据中心云基础设施和管理

5

Page 6: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

在vSphere上设计和规划企业级Java应用

Step 1 –

Establish Load profile

Step 2 

Establish Benchmark

Step 3 –

Size Production Env.

From production logs/monitoring reports measure:C t

Iterate through Benchmark test until you are satisfied with the Load profile 

The size of the production environment would 

Concurrent UsersRequests Per Second

pmetrics and your intended SLAafter each benchmark iteration

have been established in Step2, hence either o roll o t theSecond

Peak Response TimeAverage 

benchmark iteration you may have to adjust the Application Configuration Adj t th S h

you roll out the environment from Step‐2 or build a new one based on

Response TimeEstablish your response time SLA

Adjust the vSphereenvironment to scale out/up in order to achieve your desired 

new one based on the numbers established

number of VMs, number of vCPU and RAM configurations

6

Page 7: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

在vSphere上设计和规划企业级Java应用

第一步:建立负载计划

第二步:建立性能基准

第三步:规划生产环境

从生产环境的日志,监控报告等评估

进行迭代的性能基准测试直到你对你的负载计划和期望

生产环境的基准和规划在第二步就应该已经建立 因监控报告等评估:

并发用户数 每秒并发请求 高峰时期响应

的负载计划和期望的SLA满意为止

每次基准测试你都

应该已经建立,因此你可以直接从第二步建立的基准虚

高峰时期响应时间

平均响应时间

可能需要调整应用的配置参数

拟机批量部署或者从已经部署的虚拟机上建立一个新的

建立你的响应时间SLA

调整vSphere环境参数横向或纵向扩展以达到你所期望的虚拟机 CPU

机 建 个新的基准。

的虚拟机,vCPU,内存的配置

7

Page 8: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

第二步– 建立性能基准

Investigate bottlneckedlayer

Network, Storage, Application Configuration,

ESTABLISH BUILDING BLOCKESTABLISH BUILDING BLOCK VM

Establish Vertical scalabilityScale Up Test

est

Application Configuration, & vSphere

If l tIf scale outbe in terms of vCPU and memory

Establish how many JVMs on a VM?Establish how large a VM would be in terms of vCPU and memory

cale

Up

Te

If scale out bottlenecked

layer is removed,

iterate scale out t t

If building block app/VM configproblem, adjust

& iterate No

Building Block VMS

c Building Block VM

SLA

Test complete

testtest

DETERMINE HOW MANY VMDETERMINE HOW MANY VMsEstablish Horizontal Scalability

Scale Out TestHow many VMs do you need to

Scale Out Test

SLA OK?

How many VMs do you need to meet your Response Time SLAs without reaching 70%-80% saturation of CPU?Establish your Horizontal

Building Block VM

Building Block VM

8 application

scalability Factor before bottleneck appear in your application

Page 9: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere上规划和设计HotSpot and jRockit JVMs

VMGuest OSMemory

VM Memory

‐Xss per thread

JVM Memory

Java Stack

Other memy

Perm Gen ‐XX:MaxPermSize

JVM JVM MaxHeapHeap‐Xmx Initial 

Heap‐Xms

9

Page 10: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere上规划和设计HotSpot and jRockit JVMs

G t OS M 1G (d d OS/ th ) Guest OS Memory approx 1G (depends on OS/other processes)

P Si i ddi i l h X (M H ) l d

VM Memory = Guest OS Memory + JVM Memory

JVM Memory = JVM Max Heap (‐Xmx value) + JVM Perm Size (‐XX:MaxPermSize) +  

Perm Size is an area additional to the –Xmx (Max Heap) value and is not GC-ed because it contains class-level information.

NumberOfConcurrentThreads * (‐Xss) + “other Mem”

“other mem” is additional mem required for NIO buffers, JIT code cache, classloaders, Socket Buffers (receive/send), JNI, GC internal info

If you have multiple JVMs (N JVMs) on a VM then:• VM Memory = Guest OS memory + N * JVM Memory

10

Page 11: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere上规划合设计IBM JVM

VMGuest OSMemory

VM Memory

‐Xss per thread

JVM Memory

Java Stack

Other memy

Perm Gen ‐XX:MaxPermSize

Perm Gen

JVM JVM MaxHeapHeap‐Xmx Initial 

Heap‐Xms

11

Page 12: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

规划示例

set mem Reservation to

VM

set mem Reservation to 5070m or set to Active 

memory used by VM which could be lower

Guest OSMemory

VM Memory(5070m) 500m used by OS

could be lower.

JVM Memory

Java Stack ‐Xss per thread (192k*4)

Other mem (=217m)(4570m) Perm Gen ‐XX:MaxPermSize (256m)

JVM MaxJVM MaxHeapXmx

Initial Heap

( )‐Xmx

(4096m)

Heap‐Xms (4096m)

12

Page 13: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere上企业级Java程序最佳实践

使用指导手册 使用指导手册Enterprise Java Applications on VMware – Best Practices Guide (http://www.vmware.com/resources/techresources/1087 )

设置内存预留

Set UseLargePages (set at JVM and OS level)

• In jRockit: -XXlargePages

• In HotSpot: -XX:+UseLargePages

• In IBM: -Xlp

Set -Xmx equal to –Xms

Set –Xmn (HotSpot) or –Xns (jRockit) to approx 33% of max heap.

13

Page 14: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere上企业级Java程序最佳实践

打开超线程 打开超线程

ESX Host Clusters - When creating Cluster enable VMware HA and VMware DRS

VMware DRS – enables vCenter Server to manage hosts as an aggregate pool of resources.

Use latest Nehalem or Shanghai based hardware

VMs with a number of vCPUs equal to or less than the number of cores in each NUMA node will be managed by the NUMA scheduler and will have g ythe best performance.

The VM-to-Host affinity: honor ISV Licensing, and anti-affinity ensure no 2 HA pairs on the same host.

14

Page 15: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

vSphere上企业级Java程序最佳实践

U L d B l th t i t t ll ith S h API Use Load Balancers that integrate well with vSphere APIs

d B l Al i h Ch i A d VM S Load Balancer Algorithm Choice And VM Symmetry

Establish appropriate Thread ratios that Prevents bottlenecks • (HTTP Threads:Java Threads:DB connections)

Googlebot or other web crawling robots somehow traverse to the app, can cause performance degradationpp, p g• Best to divert the robot

15

Page 16: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

High Availability Considerations of Enterprise Java Applications

Phased approach to increasing uptime

Ph 3

Establish a Disaster 

Phase 3

Recovery Strategy

Phase 2Establish Dynamic 

Runtime Mechanism for HandlingTraffic

Establish Zero

Handling Traffic Bursts

Phase 1

Establish Zero‐Downtime 

Application Release Strategy

16

Page 17: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

企业级Java应用的高可用性考量

增加Uptime的阶段策略

第三阶段

第二阶段建立灾难恢复策略

第一阶段

建立动态运行环境机制处理请求激增

建立零宕机的应用程序发布策略

17

Page 18: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 1 – 零宕机发布

第 步 (发布之前)第一步 (发布之前) 建立一个生产环境 1的拷贝我们称为生产环境 2 你可以使用虚拟机克隆,模板等技术实现Load Balancer

第二步 使用负载均衡机制从生产环境1切换到生产环境2

Production 1 Production 2

Step 2Step 5

第三步 对生产环境 1的所有VMs建立快照 开始使用主部署脚本进行应用的部署和发布过程

Production 1 Production 2

Step 1

第四步 同步生产环境1和生产环境2的数据库,因为在生产环

境2提供服务的时候有可能数据已经发生变化

Step 3境2提供服务的时候有可能数据已经发生变化

第五步第五步 如果新部署的QA测试过程是成功的,然后从负载均衡

器级别切回到生产环境 1 如果不成功, 可以从第三步建立的快照进行回滚,然后

切换回去

Step 4

18

切换回去

Page 19: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 1 – 零宕机发布

A h A 主发布脚本 Apache Ant主发布脚本

<project name="MyProject" default="runMasterDeploymentScript" basedir=".">

<target name =”runMasterDeploymentScript”Depends=”takeSnapshotOfVM,

switchLoadBalancer, deployDBChangesdeployDBChanges, deployWARFile ”>

</target>

19

Page 20: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 1 – 零宕机发布

主发布脚本A h A 主发布脚本Apache Ant

<target name="takeSnapshotOfVM"><java fork="true" maxmemory="256m"jvm="${JavaHome}"classname="yourcompany.SnapshotManager" ><arg value="-takeSnapshot"/> <arg value=”${vcenterURL}/><arg value= -takeSnapshot /> <arg value= ${vcenterURL}/>

<arg value=”${adminUsername}”/> <arg value=”${adminPwd}/> <arg value=”${vmname}”/> <arg value=”${snapshotname}”/> <arg value=”${desc}”/>

<classpath><pathelement path="${VIJavaHome}/vijava2120100715.jar"/>

</classpath></java>

</target></target>

20

Page 21: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 1 – 零宕机发布

主发布脚本和VI J API 主发布脚本和VI Java APIpublic String takeSnapShotOfVM( String vcenterURL, String adminUsername, String adminPwd, String vmname, String snapshotname, String desc){

ServiceInstance si = getServiceInstance(vcenterURL, adminUsername, adminPwd);Folder rootFolder = si.getRootFolder();String returnFlag = null;try {

VirtualMachine vm = (VirtualMachine) new InventoryNavigator(rootFolder).searchManagedEntity(VIRTUAL_MACHINE, vmname);

Task task = vm.createSnapshot_Task(snapshotname, desc, false, false); if(task.waitForTask()==Task.SUCCESS){

returnFlag = Task.SUCCESS;}else{

returnFlag = "failure";}

} catch (InterruptedException e) {// other catch clauses omitted for brevity…// other catch clauses go here…

}return returnFlag;

21

}

Page 22: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 1 – 零宕机发布

VI J API VI Java API• Getting started tutorial here:

• http://vijava sourceforge net/doc/getstarted/tutorial htmhttp://vijava.sourceforge.net/doc/getstarted/tutorial.htm

• Samples on creating:

• http://vijava.svn.sourceforge.net/viewvc/vijava/trunk/src/com/vmware/vim25/mo/samples/

VM CloneVM,CreateVM,GetUpdates,MigrateVM,RemoveVmDisk,VMClone,VMReconfig,VMSnapshot,VmNicOp,VmRename

Cluster C t Affi it l DRS M ti hi tCluster Create, Affinity rules , DRS vMotion historyStorage AddDatastore,CopyFile,PrintStorageSystem,QueryVirtualDiskNetwork AddDVS,AddNIC,AddVirtualNic,AddVirtualSwitch,AddVirtualSwitchPortGro

up FlipNetworkService RemoveVirtualNicup, FlipNetworkService, RemoveVirtualNic

22

Page 23: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 2 – 建立动态的高可扩展性

虚拟机的垂直可扩展性 CPU和M 的热添加 虚拟机的垂直可扩展性 – CPU和Memory的热添加

• 提前计划和打开这个特性

• 虚拟机必须关闭才能打开热添加功能 在打开这个功能后 只要操作系统支持 热• 虚拟机必须关闭才能打开热添加功能。在打开这个功能后,只要操作系统支持, 热添加CPU和热添加内存可以在运行时完成,而不需要关闭虚拟机。

Scalab

ility 

Vertical S

Add CPU/Memory/Storage

23

Page 24: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 2 – 建立动态的高可扩展性

如果想打开热添加功能 如果想打开热添加功能:Go to VM > Edit Setting > Options tab

24

Page 25: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 2 – 建立动态的高可扩展性

25

Page 26: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 2 – 建立动态的高可扩展性

Horizontal Scalability

Add more Hosts

Horizontal Scalability 

26

Page 27: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 2 – 建立动态的高可扩展性

DRS DRS

27

Page 28: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 2 – 建立动态的高可扩展性

负载均衡器集成 负载均衡器集成

• 一些负载均衡器提供API和VMware vCenter™ Server进行集 Load Balancer

成. 虚拟机添加的时候vCenter会知道这个变化,因此它可以在运行时调整资源池的配置。 Newly added VMs

• F5 for example has the iControl API

Newly added VMs automatically added to  load balancer

• http://www.f5.com/solutions/applications/vmware/

vsphere/

• Graceful Server Shutdown• Graceful Server Shutdown, • http://devcentral.f5.com/Tutorials/TechTips/tabi

d/63/articleType/ArticleView/articleId/254/iContro

l-Apps--04--Graceful-Server-Shutdown.aspx

28

Page 29: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性阶段 3 – 灾难恢复

Global Load Balancer Global Load Balancer

Load Balancer Load Balancer Load Balancer Load BalancerLoad Balancer Load Balancer Load Balancer Load Balancer

SRM Array Replication App clusterApp cluster Replication

Datacenter Location‐1 Datacenter Location‐2 

DRS Cluster DRS Cluster

29

Page 30: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

移植到vSphere

分阶段虚拟化 分阶段虚拟化

• 阶段 1 – 虚拟化Web Server层

• 阶段 2 虚拟化Java 应用服务器层• 阶段 2 – 虚拟化Java 应用服务器层

• 阶段 3 – 虚拟化数据库服务器层

• 阶段 4 – 虚拟化负载均衡器层

Enterprise Java Applications with all Tiers Virtualized

Phase 2Phase 1 Phase 3Phase 4

DB ServersJava ApplicationsLoad balancers Web Servers

30

Page 31: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

移植到vSphere

关键考量 关键考量

• 在UNIX上面, UseLargePages标志默认情况下是打开的,因此你也必须在Linux上打开改选项因为使用大页面可以显著提升性能。

• 当你把你的Java应用移植到Linux上时,你可以使用如下设置:• Set the –XX:+UseLargePages at the JVM level for Sun HotSpot• Set the –XXlargePages at the JVM level for JRockit • Set the huge pages at OS level, refer to:

• http://www.vmware.com/resources/techresources/1087p• http://www.vmware.com/files/pdf/large_pg_performance.pdf

植 当你从32位的JVM移植到64位的JVM:• 好处是你可以使用更大的Max Heap设置

• 然而 相同32 bit的应用程序需要更多的内存去运行在64 bit的平台上因为需要更• 然而, 相同32-bit的应用程序需要更多的内存去运行在64-bit的平台上因为需要更多的指针空间

• 在Hotspot上你可以使用UseCompressedOops最大到32GB空间

31

Page 32: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

性能层面

• See the Performance of Enterprise Java Applications on VMware vSphere 4.1 and SpringSource tc Server at http://www.vmware.com/resources/techresources/10158 . p

32

Page 33: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

性能层面

在2 CPU物理机和虚拟机的对比测试案例中 百分之90的响应时间曲线和 在2 CPU物理机和虚拟机的对比测试案例中,百分之90的响应时间曲线和CPU的利用率

在虚拟机的CPU利用率低于80%的情况下 本地和虚拟化的配置拥有基本在虚拟机的CPU利用率低于80%的情况下, 本地和虚拟化的配置拥有基本一致的性能表现,只在响应时间的绝对值上有微小的差异.

% CPU% CPU

R/T

80% Threshold

33

Page 34: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

性能层面

Lowest CPU %

Best R/T

Number of vCPUs per VM

Number of VMs

Per-VM Maximum Heap Size

Total Heap for 4vCPU Case

per VM Size1 4 2GB 8GB2 2 2.5GB 5GB Best case

34

4 1 4GB 4GB

Page 35: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

Cardinal Health Java VMon VMware

35

© 2010 VMware Inc. All rights reserved

Page 36: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

关于Cardinal Health

创建于1971

业界领先的医疗产品和服务提供商 业务范围涉及医疗供应链的所有 业界领先的医疗产品和服务提供商,业务范围涉及医疗供应链的所有环节;通过多种渠道开展业务

每天横跨北美在60,000个医疗点为超过50,000名客户提供服务

在美国和波多黎各有大约超过三分之一的药剂,医疗实验室产品和医疗产品都通过Cardinal Health供应链来提供

全球超过30 000 名员工 在超过10个国家直接运营业务 全球超过30,000 名员工;在超过10个国家直接运营业务

《财富》杂志美国公司500强排名第19位

The business behind healthcare with the broadest view of the supply chain

36

Page 37: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

虚拟化

虚拟化之旅

时间 2005 – 2008 2009 – 2011 2012 – 2015时间 2005 – 2008 2009 – 2011 2012 – 2015

主题IT集中化管理共享服务

固定成本密集

快速响应

变化成本

服务定制

Consolidation < 40% Virtual <2,000 VMs

Internal cloud >58% Virtual >3,852 VMs

Cloud Resources • >90% Virtual >8,000 VMs

Virtual

时间 2005 2008 2009 2011 2012 2015时间 2005 2008 2009 2011 2012 2015

, <2,355 physical

Data Center Optimization 30 DCs to 2 DCs

, <3,049 physical

Power Remediation P2Vs on refresh

, <800 physical

Optimizing DCs Internal disaster recoveryDC 30 DCs to 2 DCs

Transition to Blades

P2Vs on refresh

HW Commoditization

Internal disaster recovery Metered service offerings

(SAAS, PAAS, IAAS)Shrinking HW Footprint

50% Utili ti

DC

<10% Utilization <10:1 VM/Physical

Low Criticality Systems

15% Utilization 30:1 VM/Physical

Business Critical Systems

> 50% Utilization > 60:1 VM/Physical

Heavy Lifting Systems

HW

y y 8X5 Applications

y SAP ~ 382 WebSphere ~ 290 Unix to Linux ~ 655

Database ServersSW

3737

Page 38: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

虚拟化为什么在Vmware平台上虚拟化WebSphere?

数据中心策略一致性

• 池化资源容量 ~15% 利用率

• 弹性 – 用户改变工作负载

• Unix到Linux迁移,去小机化

• 灾难恢复• 灾难恢复

简化和管理

• 实现成千上万应用的高可用性而不是成千上万的高可用解决方案实现成千上万应用的高可用性而不是成千上万的高可用解决方案

• DMZ区的网络和系统管理

五年节省600万美元五年节省600万美元

• 硬件节约 ~ $660K

• WAS Licensing ~ $862K

• Unix to Linux ~ $3.7M

• DMZ – ports~ >$1M

3838

Page 39: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

性能 & 可扩展性

IBM DB2 性能

I/O is not a bottleneck for application servers or even reasonable DB servers

39

Page 40: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

高可用性降低复杂性

实现成千上万应用的高可用性而不是成千上万的高可用解决方案

Challenges: • Affinity/Anti-affinity • Complexity • User Error• No SPOFs

4040

Page 41: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

IT的转换之旅 – 加速和增强

云低管控 高管控

企业级混合云

基础架构位中心 应用位中心 业务为中心

虚拟化

业务生产 IT 即服务IT 生产

41

Page 42: vSphere平台上运行企业级 Java应用的最佳实践download3.vmware.com/elq/pdf/vforum_cn_2011/PDF/Track 3-27/325.pdf · 云基础设施和管理 5. 在vSphere上设计和规划企业级Java

谢谢!

© 2011 VMware Inc. All rights reserved