Citrix虚拟化平台与10.161.8.41应用服务器之间建立的两个TCP会话,三次握手延时和服务器应用层响应时间也很短,如下图。
图?8
但是从会话整体延时统计中,我们可以看出整个会话的主要时间占用源自“客户端空闲时间”,如下图。
图?9
“客户端空闲时间”是指客户端与服务端一次应用层交互完成后,到下一次发起应用层请求的间隔时间,在故障应用平台客户端打开的过程中并没有额外需要人工干预的过程,因此出现大量“客户端空闲时间”说明客户端系统(10.230.3.112)或客户端程序处理出现问题,导致不能及时向服务端发送下一次应用层请求。
从会话交易时序图中,我们可以看到两个会话均有一次明显的客户端空闲,如下图。
图?10
图?11
可以判断,这些客户端空闲是使用者感受缓慢的直接原因,很可能是这段时间客户端程序处理过于缓慢,导致很长一段时间没有发送应用层请求。
在其他时段,我们随机选择了一些10.230.3.112与10.161.8.41的TCP会话,均发现了相同的客户端空闲,如下图。
图?12
并且我们发现在较长的客户端空闲后,10.230.3.112发起的主要是两个应用层请求:
select right_id, right_type, module_id, module_name, right_name, right_value from tco_role_rights where role_id =… and right_type=….
select userid, config_class_name, config_version, config from tap_wf_userRelatedConfigs where userid=… and config_class_name=… and config_version=…
至此,我们推断故障应用平台的客户端程序,在发送上述两个查询之前的处理过程过于缓慢,建议系统研发人员对程序处理过程进行深入分析。