zoukankan      html  css  js  c++  java
  • 桌面云性能漫谈

      经常在项目中碰到别人在问性能相关的问题。典型的问题如:“我的虚拟机感觉比PC慢”,“这次项目中一台服务器承载多少用户”,“为什么你们的带宽比XX公司的高”等等。

      1.关于云计算和桌面云

        云计算和虚拟化之所以存在,是有一个理论基础的,那就是原有的硬件利用率不高,各种资源大部分时候都是较轻的负载,进行云化改造以提升利用率。在桌面云中,

          就是假定原有的PC资源过剩,如CPU大部分时候都是比较低。如果原有的PC就是一个性能要求非常高的PC,那么建议这种设备要谨慎变成云桌面,如图形工作站、游戏、

        视频监控等场景。也就是说如果客户原有的痛点是PC的某种性能不足,那就不要上桌面云;桌面云解决的是运维效率和信息安全的问题,跟PC相比,用户体验会略有变差,

        大部分人对这种变化并不敏感,不排除少部分人对这种变化特别敏感,这种情况下要提前跟用户做好一个宣传。

      2.关于用户体验的性能

        用户体验最直接的感受是我的虚拟机是否流畅,对应的最核心的技术参数是操作响应时间,如用户动作“移动鼠标”,鼠标在多长时间移动到指定位置,如果这个时间太长,

        人就会感觉鼠标粘滞,点不准;动作“双击文件”,系统响应是多长时间内打开文件,这里涉及到应用软件启动,打开磁盘文件,如果文件有一些关联控件,应用软件又会

        打开一些DLL库,这些都是隐藏在用户的一次点击动作中。很遗憾,操作响应时间是无法准确度量的,这个用户动作也跟用户心理预期有关,如客户的习惯就认为移动鼠标

        的响应时间就应该远比打开文件的响应时间要短。再举一个用户心理期待的例子,如游戏玩家,一般鼠标就不能满足他们的需求,要高级的鼠标,高级的PC才能满足,反映

        到测试数据只是毫秒级的差异,但不同的操作者是有感知的。

        响应时间是很难测量的,也很难有评判标准,只能从其他容易测量的相关资源指标得到系统的性能,这就是CPU、内存、带宽和磁盘IO。

        CPU:CPU的参数跟应用软件和使用场景强相关,如同样是呼叫中心,基本相当的硬件配置,有的运营商呼叫中心1台服务器能承担60用户,有的能承担40用户,

        某电商的呼叫中心甚至只能承担20个用户左右。有几个经验结论:CPU主频越高,用户体验越好;如果应用软件在多核下有优化,给VM分配更多的虚拟机核,用户

        体验也会提升,会导致所有人的体验都差,服务器物理CPU低于70%时,所有人的体验感觉都会较好;如果由厂家宣称一台服务器能支持100个用户,从实践来看,

        那基本就是在吹牛,如果不考虑用户体验,1台服务器创建1千VM也是可以的。

        内存:一般情形而言,内存越大,体验也越好。如果内存不足,操作系统会自动把部分内存交换到磁盘,这会增加磁盘IO压力和CPU的压力。从一般情况而言,

        长久不关闭Windows,内存碎片会导致性能体验变差,这种情况是Windows的弱点,并非桌面云特有。

        带宽:一般人认为网络带宽越大,体验越好,实际上真正影响体验是网络响应时间,带宽只是表面测试的结果,核心指标是RTT(round trip time,用ping 工具得到

        的响应时间)。经过的网络设备越多,RTT时间就会变长,特别在无线网络下,这个指标很难控制。一般情况下,带宽越大,RTT越短,体验越好;带宽这个指标更好

        衡量,所以一般就以带宽作为指标了。

        磁盘IO:一般的程序在进行磁盘读写时,程序都是暂停等待,等待的时间就是核心的体验指标--IO响应时延,但这个指标也是很难测量,跟应用相关,也跟硬盘类型相关

        (显然SSD比磁盘好,SAS盘比SATA盘好)。容易测量的指标是IOPS(每秒IO次数),一般来讲IO次数越多,存储负荷越重,体验越差。很多程序为了减少磁盘IO,

        加入cache技术。一般的VM的操作系统都有 cache,cache技术的引入能提升用户体验,但对数据可靠性是一个挑战,应用程序的一次写操作,这个数据可能被VM操作

        系统缓存在内存中,也可能被缓存在一体机的SSD,或者IPSAN的cache中。

      3.关于协议的带宽

        某公司在很多项目中都宣传带宽最低,这样对客户的网络带宽要求就会降低,好处似乎非常明显(如前文描述,实际项目中的网络时延而不是带宽,

        才是用户体验的关键)。客户对这种说法都比较理解,通俗易懂,但没有看到事情的另一面。某使用合作版本的项目在用来一段时间桌面云后,有一点时间内部论坛

        上热炒的一个话题,认为桌面云比较模糊,影响视力健康,对IT管理员形成了不小的压力。经过一段时间研究,发现根本原因是项目中的画质本身就比较差。画质是可以

        用技术指标来衡量的,主要是用一个叫PSNR(峰值信噪比)的指标来衡量。这个指标反映在经过压缩、传输、还原后的图像跟原始图像的差异,图像差异越大,PSNR值

        越小,人眼的感觉就是图像模糊、失真。显然,图像压缩率越大,带宽就会越小,图像失真度就会越大。该项目中后来为了消除大家的怨气,调整了默认的图像压缩率,

        体验提升了一些,带宽也增加了不少。虽然未彻底解决问题,但也缓解了一下压力。

        图像的处理是一个非常复杂的技术,一般厂家都是全屏采用一种压缩率做压缩,这样协议软件最简单,潜在的问题也最多。在华为自研的HDP协议中,采用了一些特殊的

        技术来兼顾用户眼镜的体验和带宽的平衡。经过华为的研究,文字才是传递信息的主要载体,人的眼镜对文字最敏感,会盯着看并仔细理解信息,对图片就是一扫而过,

        看到一个概貌即可,并不需要仔细分辨。因此华为在图像处理上,会自动识别文字,对这部分图像采用无损压缩,对屏幕中非文字的图像会采用合适的压缩算法来压缩,

        由于文字部分采用无损压缩,会导致带宽增加,采用cache技术来降低带宽,这会在VM和客户端上都增加一部分内存的需求。这样最终实现了画质和带宽的平衡。如果

        把各厂家的桌面云放在一起对比,用户就能直观感受华为的桌面云看起来色彩更艳丽,眼镜感觉好一点。

        还有声音,一般厂家为了降低带宽,默认采用较低的采用率和较高的压缩率,语音会出现不清晰,偶尔也会出现刺耳的爆音。华为HDP协议为了提升用户体验,采用了

        较高的采样率,自动识别语音模式和音乐模式,自动切换不同的压缩算法和压缩率。这些为了保证用户体验的技术,带宽也是略有增加。

        几句话总结华为的体验效果就是:文字清除,眼睛舒服一点;声音清晰,耳朵舒服一点;用户自主维护,管理员身体舒服一点。

      4.关于配置器中的性能参数

        从上面的描述,大家可以看出桌面云的性能还是一个非常复杂的系统工程问题,是跟客户的应用和使用模型强相关;也许现在性能满足客户需求,未来几年客户的应用

        升级,又有可能碰到客户抱怨体验变差。实际上IT中所有的软件都面临这个问题,IT中所有的产品都是客户场景的一个环节而已,并不是一个厂家端到端提供了所有的

        硬件和软件;只要踏入了IT行业就面临第三方软硬件,而多厂家集成后的性能和体验不是单一厂家所能控制的,大家只能通过项目去总结经验,不断去适应;

        也就是说出问题是必然的,只是或多或少的事情,华为不可能把所有事情包圆了。这点跟电信领域的封闭系统完全不同。事情的好的方面是,这里就存在服务收费的

        机会,当然,如果把服务机会当成问题和投诉去免费处理,那又另当别论了。

        为了简化一线销售的难度,产品提供了配置器作为参考。配置器内置了研发对已交付项目的归纳和总结,适用于大多数场景,但不排除在个别场景不适用,出现问题。

        最佳的方式是客户真正在系统上进行小规模的办公,以测量最佳的硬件配比。如果一线采用配置器中默认业务模型配置,最后客户性能体验不佳,大家不要责怪研发,

        这个业务模型是供大家参考的,并非放之四海而皆准的东西。

  • 相关阅读:
    String、StringBuffer与StringBuilder之间区别
    Java String之String和CharSequence、StringBuilder和StringBuffer的区别(1)
    Rational Rose2007(v7.0)下载地址、安装及激活详解教程
    FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicationContext简介
    洛克菲勒
    NOIP提高组DAY1T2——信息传递(最小环)
    洛谷P2016——战略游戏(树形)
    数字转换(树上直径)
    洛谷P2014——选课(树形dp)
    没有上司的舞会(简单树形dp)
  • 原文地址:https://www.cnblogs.com/aaronax/p/5724125.html
Copyright © 2011-2022 走看看