起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1292|回复: 6

[分享]速度专题2-监控客户端与服务器的交互

[复制链接]
发表于 2008-2-29 09:07:30 | 显示全部楼层 |阅读模式
1 打开监控选项
打开客户端config.xml文件,设置SystemMonitor的MonitorEnable为True
<SystemMonitor MonitorEnable="True" FileName="MonitorLog.sqb" Operator="Default" desc="Method Invoke"/>
注意:
  如果是exe客户端,那么这个config.xml文件在Business.exe同级目录
  如果是IE客户端,那么这个config.xml文件在%appdata%JustepX3Client目录下
2 打开客户端,进行需要监控日志的操作,比如速度慢的功能
3 用systemmonitor.exe,打开MonitorLog.sqb,可以看到客户端与服务端每一个交互的指令、用时等信息

1.png

23.26 KB, 下载次数: 859

回复

使用道具 举报

 楼主| 发表于 2008-2-29 09:23:52 | 显示全部楼层
监控日志说明:
  FAutoIncID 自增序号,从1开始,每条记录按照发生时间自动增长
  FAgentID 代理ID
  FCalledID 代理调用的次数
  FCallDirection 调用方向  out 表示从客户端发往服务端的请求 in 表示客户端接收的服务端的响应
  FHappenedTime 调用发生时间
  FHappenedTickCount 调用发生时间距开机时间的毫秒数
  FUsedTick 调用用时的毫秒数(对于out的记录,FUsedTick=0)
  FContentSize 交互的包大小(字节数)

例如,楼上的监控日志,第20条,包的大小是2109569字节,用时1803毫秒,要优化的话,就要看看结果集是数据量大,还是记录数多,造成结果集的数据包很大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-29 11:00:41 | 显示全部楼层
TGetRecordsAction 表示取数据集动作,提交一条SQL语句,服务端返回一个结果集
TApplyUpdatesAction 表示提交数据动作,提交客户端对数据集的修改,到数据库服务器
TBatchCallAction 表示批动作,在一个动作中提交了多个子动作,具体信息要看actions的Items中每一个动作内容了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-29 11:05:34 | 显示全部楼层
通常打开监控后,先按照FUsedTick排序,看看 0< FUsedTick < 100 的记录,如果比较多,一般可以排除网络原因(当然如果网络速度不稳定,也可能会有一些0< FUsedTick < 100 的记录,但是总体执行速度慢)
用FHappenedTickCount 定位需要速度慢的操作对应的服务器交互记录(可以在速度慢的操作开始前记录一下Borland.Delphi.Windows.GetTickCount 在结束时候记录一下Borland.Delphi.Windows.GetTickCount,FHappenedTickCount 在这两个数值中间的就是这个操作对应的交互了)

如果发现有重复的发相同的SQL语句取记录,就要看看是不是数据集打开或者过滤的地方没有设置好了

如果发现一个交互用时很长,但是FContentSize很小,可以把这条SQL语句拿到数据库服务器上直接执行看看时间了,一般也会很长,通常要优化SQL语句、按照条件在表中建索引或者优化数据库服务器的配置了

如果发现一个交互用时很长,但是FContentSize也很大,可以看看RecsOut记录个数一般不大,一般是因为结果集中有二进制字段了,可以用两个数据集,在列表中不取二进制字段,而在显示详细时候才取二进制字段。

如果每一个交互时间都很短,而且这些交互时间加起来比总时间要少很多,一般要看看功能、文档上的表现了,时间消耗在客户端计算上了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 11:13:25 | 显示全部楼层
下图是X3部署的基本原理图,从图中我们可以发现有5个地方可能成为速度的瓶颈,因此我们需要用不同的工具来定位到速度的瓶颈点上

1.png

38.59 KB, 下载次数: 815

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 11:23:20 | 显示全部楼层
SystemMonitor是在 1 和 2 之间做了一个监控,如果监控到的速度都很快,说明速度慢在 1 客户端上
如果监控到速度慢了,那么 2 3 4 5 都可能是速度问题的瓶颈,就要用其他的工具来继续分析了
如果监控到的速度都很慢,一般说明是 2 客户端与X3服务之间的网络 有问题了
服务器部署建议要保证 4 X3服务与DB服务的网络 要非常的畅通,一般X3服务器和DB服务器应该在同一台高速交换机上
回复 支持 反对

使用道具 举报

发表于 2010-4-9 16:30:20 | 显示全部楼层
刚才是用保存BLOG按钮直接导出的
现在重新提交一个.sqb的文件

monitorlog.rar

47.04 KB, 下载次数: 136

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 14:33 , Processed in 0.045279 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表