首先,问几个用户体验问题:
(1)如何你的云计算数据中心有超过两万个各式各样的企业应用,您如何找出用户体验最差的应用及页面链接?这个最差体验是由于服务器响应延迟时间导致的,还是网络延迟时间导致的?
(2)如果你有几十万的用户同时访问一个应用,其中有十个关键用户特别重要。怎么做到这些关键用户Average Page Load Time超过3分钟就触发警报?
如果你已有答案,那么这个短文不适合你。否则,请继续阅读。
一、服务器延迟时间的计算方法
在云计算数据中心,我们常常要统计分析各类应用访问时间的相关指标,比如:服务器传输延迟时间、终端传输延迟时间、往返时间、服务器延迟时间、总延迟时间、网络延迟时间。
这类指标的计算公式如下:
图一:响应时间测量方式
(1)Server transit delay (STD) = T4 - T2
(2)Client transit delay (CTD) = T6 - T4
(3)RTT (Round-Trip Time) = STD + CTD
(4)Server Delay = (T15 - T12) - (STD + D1)
(5)Total delay = (T21 - T9) + D2
(6)Network delay = (Total delay) - (Server delay)
在这之中,用户体验到的是Page Load时总延迟时间,基中网络延迟时间往往是我们无能为力的,而服务器响应延迟时间才是我们应用开发和运维重点关注并可改进的地方。
二、Network TAP
为了获取时间指标,我们就得捕捉数据包来分析。捕捉网络数据包不应当对运行中的应用造成任何潜在的负面影响。
在我之前的文章《给你10个路由器或交换机,你如何配置?》中提到“Network TAP”。Network TAP其实就是一个光学装置,就好似一个自来水的三角阀(一个口进水,两个口出水),光纤的激光从一个口进,从两个口出,其中一个输出用于正常的输出,另一个监听端接数据包分析器,比如网络性能分析或应用层的用户体验分析。
相对于交换机的端口镜像,Network TAP的优点是取得所有最原始的数据包而没有任何的变更,不需要更改任何生产环境中的交换机或服务器的配置,不影响现有的部署。
三、数据包解析
将Network TAP中的监听端口接到用于网络数据包解析和分析的服务器,根据数据头和Http头的相关信息,计算出相应时间指标。每个Session所有访问的内容和相关的时间指标都是可以追溯的。我以前曾写过一个工具,将服务器响应延迟时间从总延时中分出来,用于华为的 Oracle OTM(Oracle Transportation Management)项目,协助分析在跨国部署中因网络时延导致的应用服务访问性能较差的问题。
在Oracle的云计算数据中心,我们采用的应用数据分析工具是Oracle Real User Experience Insight,它是使用网络协议分析技术构建的非侵入式监控,该技术不需要对企业应用程序进行任何修改即可检测,从而让应用程序开发者在保障客户信息安全和相关合规制约的前提下可以追溯每个用户的访问体验相关细节。通过这种方式,我们可以为2.5万个SaaS客户找出其员工体验需要改进的应用及页面链接,并且可以在关键用户Average Page Load Time超过一定阀值时就立即通知我们的相关部门。
本文旨在简单阐述一下我过去是如何使用网络协议分析技术构建非侵入式监控,发现用户时延方面体验欠佳的应用组件及页面链接。
欢迎大家发表留言,列出你的企业是如何找出用户体验急需改进的应用及页面链接的。
(作者:王录华,Oracle云服务研发总监)
喜欢这篇短文么?那就转发吧!
参考资料:
(1)、https://www.oracle.com/technetwork/oem/pdf/511868.pdf
(2)、https://origin-symwisedownload.symantec.com/resources/webguides/packetguide/current/info/rtm-technical-details.htm