一些核心HIT系统运行缓慢且长期得不到解决,这是很多医院面临的老大难问题,此时堆砌服务器硬件没多大效果,必须改进软件本身才能根治问题。解决速度慢需要多种手段,直接改进软件本身是很重要的手段,否则如果软件本身就是“扶不起的阿斗”,硬件再好也没用。
一个大型的基于Web的应用软件,可能包含数百万行代码、数百个页面、几十个对外接口。在其中快速精确地定位错误点或者性能瓶颈,相当于大海捞针。如果没有有力的辅助软件工具,这是一个很耗时间的操作,可能会导致项目延期,侵蚀软件公司的利润,消磨医院的耐心。在目前的HIT系统的开发和运维中,应对Web服务器软件的性能调优和错误排查的一个重要技术手段就是对Web服务器日志的事后分析。例如,目前很多系统是用ASP.NET开发,运行在IIS中,而IIS的日志文件格式大体如下图所示:Java或者PHP服务器都有类似的日志文件。如果手工查看这种日志文件将非常艰巨,是不可持续的工作。对此微软提供LPS工具对日志文件进行查询分析,其界面如下图所示:这虽然能减轻一点工作量,但仍然还需要大量的手工操作,工作效率依然低下。南京都昌团队专业从事生产力工具的研发推广,立志赋能整个HIT行业。行业内有大量的来自不同公司的实施团队反馈,遇到Web服务器日志分析的难题。结合自身的Web版电子病历编辑器的实际需求,我们特别开发了Web服务器日志分析工具。其界面如下:上述界面主要分为两个部分:一是功能模块总体统计数据,其界面如下:第一列,这是一个颜色主题列,对于各个功能模块,分配不同的颜色。颜色主题有6个颜色,循环分配。第二列,是各个软件模块的名称,一般而言就是Web服务器页面的名称,不含路径名。一些页面功能很多,可以将一个页面拆分成多个模块来显示。第三列,是在整个统计时间区间中功能模块的执行总次数。此时数值具有浅红色背景进度条。以该列中最大值为基准,各个单元格的浅红色进度条的宽度等比于该单元格数值相对最大值的百分比。第三列,是该功能模块第一次调用和最后一次调用的时刻。第四列,该模块的累计运行所消耗的CPU毫秒数,该栏有浅红色背景进度条。注意,这里是真正消耗CPU核心的毫秒数,而不是运行耗时。Web服务器采用多线程的方式来同时并发执行多个页面模块,则页面的运行耗时超过CPU消耗时长。服务器越繁忙,运行模块的线程受到的干扰越大,这个时间差距越大。从软件模块性能调优来说,CPU耗时要比页面运行耗时科学。更能帮助快速、准确地定位性能瓶颈。聚焦CPU耗时是本软件工具的一大特色。第八列,列出该模块的HTTP请求的数据量,包括最大值、最小值和平均值。第九列,列出该模块的HTTP响应返回的数据量,包括最大值、最小值和平均值。第二列,CPU核心占用情况。标题中列出最大的占用率。如果超过100%,表示某个时刻有多个CPU核心用于处理Web请求。该列中内容列出本秒中各个模块的CPU核心占用率。水平层叠了多个色块,色块的颜色和第一个表格的模块的主题色对应。色块宽度表示了CPU核心占用率,鼠标移上去就会显示如下的提示文本:该提示文本列出的该模块在本秒钟的同时处理次数和消耗CPU毫秒数。下面还列出各个请求的页面参数和单次CPU耗时。通过这种色块叠加,各个功能模块的CPU耗时情况一目了然,可以快速找到性能瓶颈。同时也能帮助理解We’b服务器高峰时的运行情况在时刻01:06:58。CPU核心使用率高达1500%。另外紧跟着“持续24”秒,表示这个高能耗状态持续了24秒,这是一个比较严重的CPU长期占用情况。是一个性能瓶颈,需要做针对性处理。第三列,列出各个模块HTTP请求的数据量。标题列出最大请求数据传输速度。各个色块表示了数据量。鼠标移上去会显示如下的提示文本:该提示文本列出了模块的名称和各次请求的参数和请求输入数据量。第四列,列出了各个功能的HTTP响应输出的数据量信息。第五列,列出了Web服务器软件的内存占用情况,也是有浅红色背景进度条。第六列,列出了CPU使用率。叠加了红色块和浅绿色块。红色块表示Web服务器进程(可能为c:\windows\system32\svchost.exe –k iissvcs)的CPU使用率。这个使用率已经包括了多核CPU的情况。浅绿色表示操作系统中返回的CPU使用率。鼠标移上去会显示如下提示文本:在这里,25%为Web服务器进程的CPU使用率,34%是操作系统的CPU使用率。操作系统的CPU使用率包含了Web服务器进程的CPU使用率。本软件工具的完整版可提供在线实时分析,而无需导出IIS日志文件。只需编写以下代码即可完成记录操作。本软件工具可用于分析IIS日志文件,其分析结果如下:
由于IIS日志中最关键的页面运行耗时是采用时间差,而不是CPU耗时,因此在本报表中关于CPU耗时的计算存在误差,但也比微软LPS工具好用多了。
HIT专家网∣致力推进中国卫生信息化长按二维码可申请加入HIT专家网专业交流群投稿:gong_chen@HIT180.com商务合作:(010)82373062