1.虚拟化的CPU超售问题。

经过查找资料, 发现 ESXi 5.5 的版本 一个 物理CPU的Core 可以虚拟出 25个vCPU, 升级到ESXi6.0 之后可以虚拟化32个vCPU。

所以虚拟化的超售特别严重, 会降低性能。

理论上最极端的情况 只有普通CPU的 十分之一左右的性能。

比如功能测试这边的一个 2路10核 20个CPU的服务器  一共虚拟化出来 140个vCPU

理论上在大家都争用CPU的情况下, 只能获取 CPU七分之一左右的性能。

2. CPU的性能的影响因素。

CPU的性能不仅仅涉及CPU的主频和型号, 很大的方面涉及到 IPC 的概念 需要考虑如下内容

寄存器的多少 缓存的大小 缓存的实现机制。

CPU 多发射的个数  流水线长度 乱序执行的能力 预测分析算法的精确度。

CPU 等效的IPC数值。

之前发现一个网站里面能够简单获取一些CPU的分值 也可以通过CPU-Z 简单进行验证, 但是一般没有实际意义。

型号                  得分           价格(美元)

4214@2.2GHZ         16,140           $768
5218@2.4GHZ 22,117 $1309
8280@2.7GHZ 37,575 $9949

我这边发现同样负载情况下 4214 上面启动一个java应用优化前 需要使用 20min 以上

然后使用 5218 的CPU 大概可以在 15min 左右启动起来 与得分的分值基本上符合。

3. 关于raid卡缓存与虚拟机快照的影响

见到那发现在raid看开缓存的情况下 性能非常爆表

使用 CrystalDiskmark 时  仅使用1G文件进行验证, 如果是 1G的数据数据文件进行验证。 性能为:

顺序读写 5G多的写入  1.5G左右的读取。

已经接近PCI-E 3.0 X8的性能极限了 感觉。

如果是 使用很长时间, 并且有十几个快照的环境

顺序读写  只有 200m的写入, 450m的的读取

说明开着缓存机器的性能非常好, 但是快照的存在以及长时间的运行会严重降低虚拟机的性能。

但是需要注意的一点是 这个数据是周天我进行验证的 当时几乎没有人使用.

如果是周一大家都在用的环境效果如下:

说明一点 我的机器都是thin provision 设置的 可能IO性能有一定影响.

新机器没快照

旧就机器有十几个快照

如果使用16G文件的读写, 可以直接看图了。

没有快照 并且是新创建的机器:

有快照 并且是运行两三年的机器

说明 快照的存在会严重降低性能。

当然也有存在不太准确的情况。

 4. 更新补丁时垃圾文件和垃圾表的影响。

更新某应用的补丁时主要是两部分的性能,

一部分是应用端:应用文件备份,以及覆盖和下载部署

二部分是数据库端:sql的更新以及元数据报运行时定制的处理。

这两快的提高速度主要有两个方面。

1. 定期进行磁盘整理, 删除无意义的patchbak内的古老文件夹

注意应用端的文件读写性能。因为patchbak 内的文件经常是很离散的文件。可能有几百万个文件。会造成读写和更新非常缓慢, 建议定期删除。

2. 对数据库定期进行统计信息的更新。

以及定期清理 某些较大的表内容。 元数据以及运行时定制相关的内容更新之前会往这个表里面插入备份数据, 这个表会变得异常得大 还会出现插入性能降低得情况,建议定期处理。

处理完这两个地方之后 启动速度 能够提速很多。

 5. 关于上下文切换 Content Switch 以及时间片 time slice的简单理解.

现代CPU在使用一个CPU core的时候 就可以实现 多用户 多任务的处理, 根本原因是 时分复用, 一秒钟的时间内, 可以分配多个进程进行使用, 人类观感就是可以并行处理了.

但是这样的话 是存在两个问题的.

1. 来回切换还是有一定的延迟, 有的时候会出现卡顿, 尤其是一个进程如果长时间不用被swap到磁盘上面去之后.

2. 进行切换需要保存是一个进程的现场,将所有的寄存器信息留存, 然后再flush 另一个进程的所有的寄存器相关的信息, 包括不限于 PC以及TLB等(主要是PCB的块信息).

所以如果切换的太慢的话, 就会明显的卡顿, 切换的太快的话 CS 的损耗太大会到无法容忍的程度

一般情况下 资料里面说 Linux的默认时间片大概是 20ms ,仪表内可以有 50 次进程切换 (如果单核的话)

多核的情况下会递增, 这里面还有一个nice的概念.  从 -19到20 时间片的大小可以从 5ms 递增到  800ms

这样的话 专用服务器的性能就会远远好于混合的服务器.

与之对应的 ESXi 也是使用时间片进行切分 CPU的, 但是这一块不清楚. 如果一个虚拟机没有强负载的情况下 他的CPU 时间片 是不是还是按照他的设置给出 ,如果是的话, 你们重负载的机器的性能就会有降频了

但是根据中病毒的反馈, 发现 高负载的机器能够吃完 vCPU对应的所有的物理CPU的性能.

6. 关于高IO型和高CPU型性能的理解.

这个主要是有SYS和IDLE的CPU 以及 user和 sys 的用户空间和内核空间的区分.

高IO型的应用进程会处于饥饿状态, CPU的占用量不会很高, 但是系统反应会很慢.

高CPU型的应用, 比如出现死循环时的应用, 会出现非常高的CPU应用. 会导致整个服务器上面的虚拟机都出现卡顿的现象.

ESXi 虚拟机性能情况简单验证的更多相关文章

  1. 《深入理解Java虚拟机》虚拟机性能监控与故障处理工具

    上节学习回顾 从课本章节划分,<垃圾收集器>和<内存分配策略>这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制.好让我们对JVM运行机制有一个良好的概念 ...

  2. Java虚拟机8:虚拟机性能监控与故障处理工具

    前言 定位系统问题的时候,知识.经验是基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异常堆栈.GC日志.线程快照.堆转储快照等.经常使用适当的虚拟机监控和分析的工具可以加 ...

  3. zabbix监控企业esxi虚拟机

    zabbix监控企业esxi虚拟机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我来公司有一段时间了,最近也发现模型部有测试和开发反应某台机器登陆不上去了,结果登陆esxi服务器 ...

  4. 《深入理解Java虚拟机》-----第4章 虚拟机性能监控与故障处理工具

    理论总是作为指导实践的工具,能把这些知识应用到实际工作中才是 我们的最终目的. 给一个系统定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异 ...

  5. 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具

    虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 <深入理解Java虚拟机> 第四章 ,为了整理思路,简单记录一下,方便后期查阅. JDK本身提供了很多方便的JVM性 ...

  6. ESXi虚拟机出现关机时卡住的问题处理

    1. ESXi在日常使用时经常会遇到机器卡住的情况 这种情况下GUI的方式无从下手, 需要从cli的方式处理 我记得之前写过一个 但是不知道放哪里去了. 再重新写一下. 直接按照图处理 2. 然后xs ...

  7. ESXI虚拟机磁盘管理(精简-厚置-精简)

    VMwareESX/ESXi 精简置备(thin)与厚置备(thick)虚拟机磁盘之间转换 VMwareESX/ESXi 虚拟机磁盘thin与thick之间转换 注意:转换前请先关闭虚拟机!!! 一. ...

  8. Java虚拟机12:虚拟机性能监控与故障处理工具

    前言 定位系统问题的时候,知识.经验是基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异常堆栈.GC日志.线程快照.堆转储快照等.经常使用适当的虚拟机监控和分析的工具可以加 ...

  9. 虚拟机性能监控与故障处理工具(深入理解java虚拟机三)

    JDK自带的工具可以方便的帮助我们处理一些问题,包括查看JVM参数,分析内存变化,查看内存区域,查看线程等信息. 我们熟悉的有java.exe,javac.exe,javap.exe(偶尔用),jps ...

  10. 提升VMware虚拟机性能招数

    在VMware虚拟机(VMware Workstation或VMware Server)中我们可以同时运行多个Guest OS,当同时在同一Host OS中运行多台虚拟机时势必会严重影响到Host O ...

随机推荐

  1. APP搜索如何又快又准?

    摘要:搜索的概念深入人心,但做好一个体验绝佳的搜索服务并不是一件容易的事. 本文分享自华为云社区<云搜索服务在APP搜索场景的应用>,作者:写代码的贺大师 搜索无处不在,尤其是在移动互联的 ...

  2. OpenCV萌新福音:易上手的数字识别实践案例

    摘要:信用卡识别的案例用到了图像处理的一些基本操作,对刚上手CV的人来说还是比较友好的. 本文分享自华为云社区<Python openCV案例:信用卡数字识别>,原文作者:深蓝的回音 . ...

  3. 十大 CI/CD 安全风险(四)

    在上一篇文章,我们着重介绍 PPE 风险,并提供缓解相关风险的安全建议与实践.在本篇文章中,我们将会了解凭据使用环境管理不善与不安全的系统配置,并给出相应的风险缓解建议. 凭据使用管理不善 由于与凭据 ...

  4. Java 项目工程搭建 --创建父工程

    Java 项目工程搭建 --创建父工程 Java 项目工程搭建 --创建子模块(依赖父工程) Intellij 2018 更多详细内容见尚硅谷阳哥视频,实际项目中更多的是copy,修改pom Inte ...

  5. RabbitMQ--工作模式

    单一模式 即单机不做集群 普通模式 即默认模式,对于消息队列载体,消息实体只存在某个节点中,每个节点仅有 相同的元数据,即队列的结构 当消息进入A节点的消息队列载体后,消费 者从B节点消费时,rabb ...

  6. 这应该是java最好用的orm之一了

    这应该是java最好用的orm之一了 说起orm大家肯定都不会陌生,作者是一个.net菜鸟.并且是在.net繁荣的orm圈子下成长的,所以这次给大家带来的是媲美efcore,freesql,sqlsu ...

  7. 灵魂拷问std::enable_shared_from_this,揭秘实现原理

    参考博客: std::enable_shared_from_this原理浅析 引言 在C++编程中,使用智能指针是一种安全管理对象生命周期的方式.std::shared_ptr是一种允许多个指针共享对 ...

  8. es报错记录

    ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsear ...

  9. Asp .Net Core 系列:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

    目录 简介 什么是 Ocelot ? 什么是 Nacos ? 什么是 Swagger ? 什么是 Cors ? Asp .Net Core 集成 Ocelot 网关集成 Nacos 下游配置 Naco ...

  10. 机器学习-决策树系列-决策树-剪枝-CART算法-27

    目录 1. 剪枝 2. CCP-代价复杂度剪枝(CART) 4. α值的确定 1. 剪枝 将子树还原成一个叶子节点: 是解决过拟合的一个有效方法.当树训练得过于茂盛的时候会出现在测试集上的效果比训练集 ...