我正在嘗試確定 ColdFusion 生產伺服器的最佳設定。伺服器具有以下規格。
ColdFusion:企業版 10
作業系統:Windows Server 2012R2 標準
處理器:Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz
安裝記憶體 (RAM):20.0 GB
系統類型:64 位元作業系統,x64-基於處理器
我在 CFIDE 中的 Java 和 JVM 設定是:
最小堆大小(以 MB 為單位):2048
最大堆大小(以 MB 為單位):4096JVM 參數
-server -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.home={application.home} -Dcoldfusion.rootDir={application.home} -Dcoldfusion.libPath={application.home}/lib - Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dcoldfusion.jsafe.defaultalgo=FIPS186Random
我有多個網站在此生產伺服器上運行,所有網站都使用 ColdFusion。資料庫伺服器是完全獨立的,因此該伺服器只負責 ColdFusion 應用程式和 Web 伺服器進程。
這些網站完全由數據驅動,全部從我的生產資料庫伺服器上的資料庫中提取。最近,我發現 ColdFusion 服務鎖定,因為它耗盡了 CPU 的資源。記憶體很穩定,只是CPU超負荷了。
任何人都可以就如何調整它以提高整體效能同時減少 CPU 壓力提出建議嗎?
謝謝你!
答案1
CPU 最大化垃圾收集的最可能原因 - 這實際上與記憶體有關。當你說「記憶體穩定」時,你的意思是系統顯示CF只使用你允許的4G,還是你的意思是ColdFusion監視器顯示穩定的記憶體使用情況?
我認為解決你的問題的方法是獲得 GC 和記憶體分配的正確組合,以便 CPU 進行小型定期清理,而不是偶爾進行大規模清理。但正如米格爾所說,找到這個問題的唯一方法是負載測試。 jMeter 很棒。玩它。