跳轉到內容

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])。

華夏公益教科書