客户需要使用虚拟机安装Oracle数据库应用,针对数据库类应用,一般建议用物理机承载,即便是使用虚拟机,也需要做相应的平台侧策略适配,避免造成性能瓶颈 客户那边是使用虚拟化平台为FusionCompute V1R5C00SPC302版本,数据存储是OceanstorV3统一存储然后是8U/32G规格的Linux虚拟机安装了Oracle数据库应用,大概1k多名用户通过移动客户端连接到数据库进行并发认证,并同时将操作日志记录数据库中,就出现连接延迟过高问题。 oracle应用虚拟机挂载了3个磁盘,分别为500G/300G/300G的普通延迟置零磁盘。具体情况如下图所示: 通过登录虚拟机后台,明确虚拟机的磁盘关系,其中xvde1和xvdf1对应db数据库应用,为虚拟机的第二和第三块盘。 通过top命令,查询虚拟机内进程的CPU消耗信息,虚拟机里运行了1614个任务,其中存在大量的oracle进程处于D状态无法调度,并且cpu空闲值为0%,其中%wa占用66.4,这说明io等待方面消耗CPU比较多。 通过存储阵列侧分析,虚拟机的2个磁盘xvde和xvdf都分布在YDJIERU_003这个LUN上,此LUN的IOPS达到16000~17000左右,带宽300~400MB/s。 经过上述分析,明确是由于Oracle数据库业务IO性能要求高,并发访问需求的增加导致虚拟机磁盘一直繁忙,将CPU冲高,因此虚拟机业务响应慢。 Oracle业务,业界一般使用物理机做承载,如果客户要求使用虚拟机,那么需对其进行说明,并明确性能上的差异不是虚拟化产品导致,而是虚拟化技术客观决定
|