這個頁面幫助你對應用性能進行提高須要進行的一些操做。這個頁面不是爲你對 Confluence 出現問題後進行問題修復的指南。若是你的 Confluence 崩潰的話,請查看Troubleshooting Confluence hanging or crashing 頁面中的內容來得到幫助。html
與其餘應用服務器同樣,Confluence 可能須要對系統進行一些調整才能讓 Confluence 可以承受更大的數據訪問量。咱們盡咱們最大的努力可以讓 Confluence 知足各類環境下的訪問需求。可是沒有一個配置可以知足全部用戶的需求和用戶的使用環境。數據庫
若是你在部署 Confluence 的時候遇到了性能方面的問題,而且但願得到咱們的幫助,你應該參考頁面 Requesting Performance Support 中的內容。api
針對你的應用程序,使用最新版的安裝和 Java 運行環境。新的版本一般有更好的性能優化。緩存
老是關注你服務器的交換(swapping)活動。當沒有足夠的 RAM 可用的時候,你的服務器可能開始將 Confluence 存儲在交換器的一些內容轉存到硬盤上。這個過程將會顯著下降垃圾回收的速度而對 Confluence 的性能產生影響。在集羣的環境下,交換器問題將會致使 Cluster Panic due to Performance Problems 問題。這是由於交換器致使 JVM 在進行 Garbage Collection 的時候暫停,這個將會致使內部節點的通訊中斷,而這個通訊又是節點進行同步所須要的。性能優化
下面的配置可能看起來是很是誘人的:你只有一臺服務器,這個服務器具備很高的性能,所以你將數據庫服務器,應用服務器和其餘你的一些重要服務都同時部署在這個服務器上。若是這個系統可以完美的運行,你可能還感受不到什麼問題。問題是,當你可能忽略了一些問題,同時其餘應用的 bug 將會對你部署的應用產生影響。例如,若是你的 Confluence 應用天天都在中午的時候變得緩慢,你有多是其餘的服務在利用共享的數據庫在建立報表?要麼你須要保證部署在同一架構上的應用不會互相影響,要不你考慮將不一樣應用部署到不一樣的架構上,這樣你也更好的進行控制。服務器
Confluence 安裝中提供的嵌入 H2 數據庫僅僅是用來評估使用的,這個數據庫不適合使用生產環境中的 Confluence。當你對 Confluence 評估完成後,你必須切換到一個支持的外部數據庫中。咱們推薦你使用你熟悉的數據庫,由於你可以更好的對數據庫進行維護,這個可能相對你不熟悉的數據庫來講,能更好的讓你對數據庫的性能進行優化。網絡
若是 Confluence 的負載比較高,你可能須要增長你數據庫的鏈接數。架構
但願肯定是否須要對i的數據庫鏈接池進行修改,針對不一樣時間段(在高峯時間段),對 thread dumps 進行查看來了解有多少線程正在鏈接數據庫。app
若是 Confluence 正在運行緩慢,那麼頗有多是其中一個數據庫遇到了瓶頸。工具
最早你應該檢查的是 數據庫延遲(Database Latency) 字段,這個字段的內容是在管理員控制檯中定義的。
數據庫延遲是經過向數據庫發送一個不重要的查詢來查詢數據庫的表來進行計算的,這個查詢一般只有一個表一個字段(例如,select * from CLUSTERSAFETY)。很明顯的,這個查詢應該很是快速的放回結果,一般應該是在 1 到 2 毫秒的樣子。若是這個查詢的返回時間到了 3 到 5 毫秒的話則代表數據庫中遇到了一些問題。若是這個返回超過了 10 毫秒,你須要對數據庫進行調整來提升數據庫的性能。幾個毫秒的性能開支可能看起來沒有什麼問題,可是考慮到 Confluence 在每個查詢的時候可能須要對多個數據庫表進行查詢,同時這個查詢也會複雜得多。高延遲多是由於某些緣由致使的(網絡速度慢,數據庫慢,鏈接池的鏈接等),所以須要你對這些問題進行調查研究。請一直對數據庫進行調整,指導延長時間控制在 2 毫秒如下。
顯而易見的,數據庫延遲只是你須要考慮的第一件事情。你依然有可能得到 0 延遲,可是你仍是有不少數據庫的性能問題,例如你的的數據庫表沒有創建索引。因此不要讓延遲率過分干擾你。
現代的數據庫會基於你對數據庫運行的查詢歷史來對查詢進行優化。使用 SQL EXPLAIN 語句將會告訴你數據庫查詢的優化狀況。若是數據庫查詢命中率明顯的不一樣,那麼你須要考慮對數據庫運行狀態收集和優化。針對你數據庫的版本不一樣,優化的版本和方向也會不一樣。在大多數的狀況下,你能夠在 Confluence 運行的時候對數據庫查詢的運行狀態進行收集。可是這個查詢也會增長數據庫的負載,所以咱們仍是建議你最好不要在 Confluence 正常運行的時候運行,你能夠考慮在週末運行。
爲了減小數據庫的載入數據和對不少操做提升效率,Confluence 將會保持本身的數據緩存。增長 Confluence 數據緩存的大小將會提升 Confluence 的速度(若是緩存過小的話),或者下降換成(若是緩存太大的話)。
請查看咱們有關 Cache Performance Tuning 的文檔來得到 Confluence 緩存的更多信息。
防病毒軟件也會顯著的下降 Confluence 的性能。防病毒軟件終止進程對磁盤的訪問是很是有害的,同時還可能會致使 Confluence 的錯誤。你應該配置你的防病毒軟件忽略 Confluence 的 home 目錄,這個目錄存儲的是 Confluence 索引和其餘任何數據庫相關的目錄。
若是帶寬響應是你 Confluence 安裝的瓶頸的話,你應該考慮啓用 啓用 HTTP 壓縮。這個可能可以讓你可以下降你對帶寬的消耗。
請注意,針對 Confluence 2.8 及其早期版本,啓用 HTTP 壓縮會致使一些 known issues with HTTP compression ,這些問題將會增長內存的消耗。
針對 demo 系統,你應該嘗試全部的可能的性能測試。若是可能的話,你應該針對你的模擬器環境運行性能測試。
你能夠經過 enabling Confluence's built-in access logging 來找到那些頁面訪問環境和那些用戶正在訪問它們。
你能夠經過使用 Confluence 的內建探測器,根據 Troubleshooting Slow Performance Using Page Request Profiling 頁面中的內容來識別致使頁面訪問緩慢的緣由。
請參考 How to fix out of memory errors by increasing available memory 頁面中的內容。
針對高負載環境,性能能夠經過在 Confluence 環境以前配置 Apache 服務器來進行提高,請參考頁面 Running Confluence behind Apache 中的內容進行配置。
當你配置你新的應用服務器的時候,請肯定你的配置可以有足夠的線程和進程處理你的的負載。這個配置應用到 Web 服務器和應用服務器連機器上。若是可能的話,你應該爲你的應用服務器啓用鏈接池來鏈接到應用服務器。
一些外部的插件,尤爲是一些插件是好久之前的了,同時也沒有什麼人對這些插件進行維護了,這些插件可能會在運行而且消耗內存可是卻歷來沒有釋放內存。最後的結果可能會致使 Confluence 崩潰,可是在崩潰以前可能會直接先致使性能降低。Troubleshooting Confluence hanging or crashing 頁面中的內容可以幫你對這方面的問題進行調試。一些插件咱們已經知道可以對系統性能形成影響並最終致使 Confluence 的崩潰。