跳转到内容

OpenClinica 用户手册/性能

来自维基教科书,开放世界中的开放书籍

OpenClinica 作为应用程序的性能取决于众多软件、负载和硬件变量——这些变量存在于客户端机器、网络和服务器上。本页旨在作为探索这些问题的指南。

CRF 大小的影响

[编辑 | 编辑源代码]

CRF 页面的速度会受到一个部分(也称为选项卡或页面)中字段数量的影响。长部分下载速度慢,因为对于活动部分中的每个项目,必须下载和解析多个 javascript 代码段。如果将 CRF 拆分为两个或多个部分,则可以显着提高 CRF 的加载速度。

如果使用反向代理(见下文)压缩页面,也可以提高大型部分的下载速度。

客户端机器

[编辑 | 编辑源代码]

运行缓慢或与 Web 浏览器并行运行复杂程序的客户端机器会导致 Web 页面显示缓慢。如果机器通过不稳定的无线连接连接,客户端机器的网络连接也可能存在问题。

客户端机器距离服务器越远,网络连接越差,两者之间进行通信所需的时间就越长,即使传输的是小型页面和简单图形也是如此。如果服务器距离客户端有半个地球之遥(例如,客户端在澳大利亚,服务器在英国),则通信时间可能会增加 1/3 秒(往返行程为 2/3 秒)。

服务器

[编辑 | 编辑源代码]

服务器软件

[编辑 | 编辑源代码]

服务器使用多个软件部分来响应客户端,这些软件部分在默认配置中响应相当好,但可以通过不同的方式进行优化。

  • OpenClinica
    • OpenClinica 的最新版本 包括性能优化,包括在优化系统上“40% 更快的周转时间”(阅读相关的 讨论)。
    • OpenClinica 没有用于性能优化的配置(尽管有一个 '愿望清单' 用于进一步改进)。如果 OpenClinica 运行平稳,则可以减少它花费在将数据写入日志上的时间。警告:只有在没有遇到问题时才这样做!在 datainfo.properties 中,在 **11 - 日志记录配置** 下,将条目 **logLevel** 更改为 **logLevel = warn**,或者对于勇敢的人来说,更改为 **logLevel = error**。只要发生任何异常情况,将其更改回 **info**。
  • Tomcat - OpenClinica 文档描述了如何安装 Tomcat,它提供 Web 页面。Tomcat 可以进行优化
  • 数据库 - 对于 Postgresql,请参阅 优化 PostgreSQL。或者,Oracle 的文档 中有关于优化的部分。

当服务器以最佳方式配置(如上文参考中所述分配了足够的内存)时,此主题 建议 OpenClinica 主要受 Postgres 缓存性能以及运行它的处理器的速度限制。通过对 OpenClinica 本身进行优化,可能会获得进一步的改进。

服务器硬件

[编辑 | 编辑源代码]

最小值

[编辑 | 编辑源代码]

请参阅 OpenClinica 文档中 下载 OpenClinica 页面上的兼容性和系统要求部分,了解基本的硬件服务器要求。

OpenClinica 有一个关于 硬件和软件堆栈注意事项 的页面,建议一个“运行良好的基本配置”:四核至强处理器 2.0 GHz 或更高,4 GB RAM,4 x 73 GB 硬盘。这与 2011 年 11 月 OpenClinica 员工在电子邮件中提到的关于他认为 '在上面运行 OpenClinica 的相当不错的设置' 的规格相同。他强调磁盘阵列的速度是性能的关键因素。

OpenClinica 优化(tm) 托管 (云中的临床试验) 由 Shaun Martin 设计(请参阅 新闻稿),并使用 Fusion-io 的混合磁盘技术(见下文)和多个冗余。

  • 内存要求:从 OpenClinica 3.1.x 开始,Tomcat 可以使用高达 2 GB 的 RAM(请参阅上面的服务器软件部分),PostgreSQL 数据库可以使用高达 2 GB 的 RAM(请参阅 优化 PostgreSQL),而 Oracle 的要求各不相同。
  • 磁盘空间要求:应用程序和PostgreSQL占用的空间约为1GB(Oracle的要求会有所不同)。Tomcat消耗约400MB的磁盘空间,每个Tomcat实例占用的空间约为100MB(假设CRF不包含上传的文件附件)。Java消耗约250MB的空间,PostgreSQL消耗250MB的空间。实际数据输入将增加使用量,但由于数据通常是文本(除非是CRF文件附件),因此使用的空间不太可能很大。
  • 磁盘速度要求:更快的磁盘,例如SSD(固态硬盘)和高速硬盘,将加快PostgreSQL或Oracle的响应时间。
    • 例如,OpenClinica Optimized(tm) Hosting(云端临床试验)使用Fusion-io的混合磁盘技术(SSD与普通硬盘结合)来提高数据库性能 - “数据提取速度提高了10倍”。
    • 在OpenClinica用户列表中关于测试SSD的帖子中,Michael Bluett报告说,SSD “似乎没有带来任何好处”在优化后的系统上,Marco van Zwetselaar建议这可能是由于“拥有充足的内存(并将其分配给PostgreSQL),然后它将主要从其缓存中操作”。
    • 在OpenClinica用户列表中关于开始使用SSD的帖子中,Krister Kristianson报告了更快的性能,即 “以前需要10秒现在不到1秒”
    • 在issuetracker中报告缓慢的页面时,“dannyl”报告了2.5-3倍的速度提升,表示SSD “已将响应时间降低到约8-10秒,而不是20-30秒”(需要登录)。
  • 处理器要求:具有更多内核的更快处理器将加快Tomcat、PostgreSQL和Oracle生成页面的速度。如果服务器软件经过优化并且 页面和数据主要从缓存中提供,那么更快的处理器可能是提高服务器对响应时间的贡献的最佳方法。
  • 独立的Web服务器和数据库服务器:将数据库服务器(Postgresql/Oracle)与Web服务器(Tomcat)分离,可以分散服务器的负载,如果单个服务器出现过载。但这种分离会导致网络延迟,如果Web服务器经常与数据库服务器通信,这种延迟可能会超过其带来的好处。作为可能的警告, 版本3.1.2的一个错误(需要登录)描述了Tomcat向数据库发出的大量查询。

性能基准

[编辑 | 编辑源代码]

OpenClinica提供 OpenClinica性能基准(链接已断开)来设定您对实例在现实世界中响应速度的预期。文章 OpenClinica 3.1.3社区版 - HDD与SSD的性能测试来自OpenClinica博客,列出了一些性能基准。

衡量和分析性能

[编辑 | 编辑源代码]

性能可以从浏览器和远程测量,突出显示任何延迟的原因 - 是服务器上的处理,还是从服务器到客户端的数据速度?

  • 浏览器插件可以分析网站从客户端浏览器(以及单个页面的性能)的性能。

YSlowPage Speed

进一步阅读

[编辑 | 编辑源代码]

Web应用程序优化是一个复杂且几乎无限的主题(参见 [1])。

华夏公益教科书