不同大小的 cf.registry 文件
我們在兩台機器上有一個負載平衡的 Web 應用程序,前面有一個 java 伺服器(tomcat)、ColdFusion 和 Apache。
前段時間我們注意到兩台伺服器中的 cfregistry 文件大小不同:一台為 89Mb,另一台為 44Mb。
有這個尺寸正常嗎?大小不一樣很正常嗎?
提前致謝。
ColdFusion 在哪裡配置以儲存客戶端變數?如果它被配置為使用“系統資料庫”(我個人建議將其設置為使用 cookie),那麼如果它獲得更多流量,或者如果回訪者最終在一個上更頻繁地回來,那麼它完全有可能比另一個更大伺服器比另一個伺服器和它們的客戶端變數保留的時間更長,然後一個可能會隨著時間的推移而變得更大。
預設情況下,ColdFusion 管理員配置為將客戶端變數儲存在系統資料庫中。對於非 Windows 系統,ColdFusion 通過使用文件 {CF_ROOT}/registry/cf.registry 來模擬系統資料庫。此文件使用類似於 Windows 系統資料庫設置方式的分支進行格式化
當應用程序使用客戶端變數時,預設儲存設置為 Registry,ColdFusion 伺服器將客戶端變數數據儲存在此 cf.registry 文件中。實際上,平面文件 cf.registry 被視為數據庫。該應用程序的每個頁面請求都會導致 ColdFusion 解析 cf.registry 文件。
通常,如果不使用客戶端變數,cf.registry 文件通常只有幾 KB。
客戶端變數最好儲存在數據庫中或作為 cookie。這兩個都是 ColdFusion Administrator 中客戶端儲存的替代選項。客戶端變數本質上是臨時的,並且會定期過期。我推薦 2 個操作:1)將預設客戶端儲存更改為 Cookie(或者如果應用程序經常大量使用客戶端變數,則可以使用數據庫),以及 2)用新的“乾淨”cf.registry 文件替換大型 cf.registry 文件從預設的、乾淨的 CF 安裝(在 Unix/Linux 伺服器上安裝開發人員版並從中獲取 cf.registry 文件)。由於 ColdFusion 將文件內容保存在記憶體中,因此最好在 ColdFusion 停止時進行 cf.registry 文件交換,以避免 ColdFusion 將記憶體中的文件內容寫回磁碟上的文件。
如果您繼續將客戶端變數記錄到“系統資料庫”,這將降低伺服器性能。