調整 Liberty 設定檔
您可以調整 Liberty 設定檔的參數和屬性。
關於這項作業
程序
- 調整 JVM。 不論您要配置開發環境或正式作業環境,調整 JVM 都是一個最重要的調整步驟。 當您調整 Liberty 設定檔 的 JVM 時,請使用 ${server.config.dir} 目錄中的 jvm.options 檔。 您可以指定您想要使用的每一個 JVM 引數,每行一個選項。 如需相關資訊,請參閱自訂 Liberty 設定檔環境。jvm.options 檔的範例如下:
-Xms50m -Xmx256m
在開發環境中,您可能想要伺服器啟動速度更快,因此,請考慮將資料堆大小下限設為小的值,將資料堆大小上限設為您的應用程式所需要的任何值。 在正式作業環境中,將資料堆大小下限和資料堆大小上限設為相同的值,可以避免資料堆的擴充和收縮,從而提供最佳的效能。
- 調整傳輸通道服務。 傳輸通道服務負責管理用戶端連線、HTTP 的 I/O 處理、執行緒儲存區,以及連線儲存區。 對於在 Liberty 設定檔的應用程式而言,以下是可供改進執行時期效能及/或可調整性的各不同選項的屬性。 關於這些屬性,請參閱 server.xml 檔中的配置元素。
- httpOptions 的 maxKeepAliveRequests
- 這個選項指定在啟用持續連線的情況下,單一 HTTP 連線所接受的持續要求數目上限。
-1 值表示無限制。
這個選項支援低延遲或高傳輸量的應用程式及 SSL 連線,適用於建置新連線的成本可能很高的情況。
以下是如何在 server.xml 檔中編寫這個選項的範例:
<httpOptions maxKeepAliveRequests="-1" />
- connectionManager 的 maxPoolSize
- 這個選項指定連線儲存區的實體連線數目上限。
預設值為 50。這裡的最佳設定取決於應用程式的性質。
如果是每個執行緒都含有資料庫連線的應用程式,您可以從對於 coreThreads 屬性的 1:1 對映開始。
以下是如何在 server.xml 檔中編寫這個選項的範例:
<connectionManager ... maxPoolSize="40" />
- connectionManager 的 purgePolicy
- 這個選項指定在儲存區中偵測到過時的連線時,要毀損哪些連線。
預設值是整個儲存區。
只清除失敗的連線有可能比較好。
以下是如何在 server.xml 檔中編寫這個選項的範例:
<connectionManager ... purgePolicy="FailingConnectionOnly" />
- connectionManager 的 numConnectionsPerThreadLocal
- 這個選項指定每個執行程式執行緒所要快取資料庫連線數目。 這個設定可以保留每個執行緒的指定資料庫連線數目,從而使大型多核心 (8+) 機器得到主要的改進。
- 連線使用執行緒本端儲存體,可以增進多執行緒系統上的應用程式效能。
當 numConnectionsPerThreadLocal 設為 1 或以上時,每個執行緒的這些連線都會儲存在執行緒本端儲存體中。
當您使用 numConnectionsPerThreadLocal 時,請考慮兩個其他值:
- 應用程式執行緒的數目
- 連線儲存區的連線數目上限
<connectionManager ... numConnectionsPerThreadLocal="1" />
- dataSource 的 statementCacheSize
- 這個選項指定每個連線所快取的備妥陳述式數目上限。
如果要設定這個選項,請完成下列必要條件:
- 檢閱所有唯一備妥陳述式的應用程式碼(或從資料庫或資料庫驅動程式收集的 SQL 追蹤)。
- 確定快取記憶體大於陳述式的數目。
<dataSource ... statementCacheSize="60" >
- dataSource 的 isolationLevel
- 資料來源隔離層次指定資料的完整性和並行程度,從而控制資料庫的鎖定層次。
以下是從效能最佳(完整性最差)到效能最差(完整性最佳),四個不同的選項。
- TRANSACTION_READ_UNCOMMITTED
- 可能出現錯誤讀取、非連續讀取和幻象讀取。
- TRANSACTION_READ_COMMITTED
- 防止錯誤讀取;可能出現非連續讀取和幻象讀取。
- TRANSACTION_REPEATABLE_READ
- 防止錯誤讀取和非連續讀取;可能出現幻象讀取。
- TRANSACTION_SERIALIZABLE
- 防止錯誤讀取、非連續讀取和幻象讀取。
<dataSource ... isolationLevel="TRANSACTION_READ_COMMITTED">
- 減少 Servlet 的回應時間
如果要減少 Servlet 的回應時間,請將下列屬性新增到 server.xml 檔中:
<webContainer skipMetaInfResourcesProcessing="true"/>
- 減少閒置伺服器 CPU 時間
如果要減少閒置伺服器 CPU 時間,請將下列屬性新增到 server.xml 檔中:
<applicationMonitor dropinsEnabled="false" updateTrigger="disabled"/> <config updateTrigger="disabled"/>
當新增屬性時,您的伺服器不會再監視配置或應用程式更新項目。
如需配置元素說明的相關資訊,請參閱server.xml 檔中的配置元素。
次主題
- 調整安全應用程式的 Liberty 設定檔
您可以調整 Liberty 設定檔,使安全應用程式取得最佳效能。 調整 Liberty 設定檔中的聯合 LDAP 儲存庫
您可以監視和調整快取以及 server.xml 檔中的環境定義儲存區元素,以改進聯合 LDAP 儲存庫的效能。