DICOM:基于JMeter+dcm4che2测试PACS服务器性能的解决方案(前篇)

本文介绍了如何利用JMeter和dcm4che2扩展功能,针对DICOM服务器进行性能测试。由于DICOM服务的特殊性,传统压力测试工具无法满足需求。文中探讨了三种可能的解决方案,并选择了扩展JMeter通过Java请求模拟dcmsnd请求的方式,详细阐述了实施步骤和使用说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

目前对于传统WEB网站性能(压力/负载)的测试工具有很多,loadrunner、iperf、siege等,操作都比较简单,这里就不介绍了。然而对于医疗领域内的服务器,通常指的是DICOM服务器,提供满足DICOM3.0标准规定的各项DIMSE服务,诸如DIMSE-C(C-STORE、C-FIND、C-MOVE、C-ECHO)、DIMSE-N(N-CREATE、N-DELETE)等等。倘若使用传统的压力测试工具会有几大局限性:

  1. 常见压力测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来实现对WEB服务端的压力测试,且模拟的并发请求多以HTTP或TCP为主。然而DICOM服务无法直接通过HTTP请求进行访问(WADO、WADO-RS服务除外)。
  2. 虽然部分压力测试工具(例如LoadRunner、JMeter等)可以发送TCP请求进行压力测试,但是DICOM服务在TCP基础上还需要继续多次“请求-响应”来完成,通过常见的手动填充TCP数据体的方式无法模拟真实的DICOM请求。
  3. 遵循DICOM协议的PACS影像服务器自身通常有一定的约束,例如模拟多用户同时上传同一组图像(即同时发送同一套数据)时服务端可能会直接忽略数据体来减少负载,即使我们成功模拟了请求,此时的检测的性能并不能代表影像服务器性能上限,测试结果不准确。

资料搜集:

鉴于以上几点原因,我们需要寻找一款合适的能够监测DICOM服务器性能的工具,初步设想有几种可能的方案:
第一种,利用python等语言手动编写测试脚本,循环调用dcm4che2工具包中的dcmsnd.bat工具模拟多用户并发访问。这种方案的优点是思路简单,直接模拟真实用户操作;缺点是利用python调用dcmsnd.bat批处理指令我们只能获取简单的运行时间,且结果不具有可视化,应付简单的测试(比如内部开发人员自我测试)比较可行,不适用于实际项目发布测试。
第二种,利用JMeter、LoadRunner等工具的TCP请求测试,将DICOM文件以二进制形式放到TCP请求数据体中。该方案的优点是可以利用JMeter、LoadRunner等工具诸多可视化功能,对服务器性能进行全面分析;缺点是需要对DICOM协议进行抓包分析,梳理出具体的完整的数据包,难度

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zssure

己欲立而立人,己欲达而达人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值