我们有一个Web应用程序,在两台机器上进行负载平衡,前面有一个java服务器(tomcat),ColdFusion和Apache。
前一段时间我们注意到cfregistry文件在两台服务器上都有不同的大小:一个是89Mb,另一个是44Mb。
有这个大小是正常的吗? 他们有这么大的差别是正常的吗?
提前致谢。
ColdFusion在哪里configuration来存储客户端variables? 如果它被configuration为使用“registry”(我build议个人使用cookie),那么如果获得更多stream量,或者如果返回的访问者最终更频繁地返回,则完全有可能比另一个更大服务器比其他客户端variables保持更长时间,随着时间的推移可能会变得更大。
默认情况下,ColdFusionpipe理员被configuration为将客户端variables存储在registry中。 对于非Windows系统,ColdFusion通过使用文件{CF_ROOT} /registry/cf.registry来模拟registry。 此文件格式化分支类似于如何设置Windowsregistry
当应用程序使用客户端variables,然后将默认存储设置为Registry时,ColdFusion服务器将客户端variables数据存储在此cf.registry文件中。 实际上,平面文件cf.registry被视为数据库。 该应用程序的每个页面请求都将导致ColdFusionparsingcf.registry文件。
通常,如果不使用客户端variables,cf.registry文件通常是几KB。
客户端variables可以更好地存储在数据库中或作为cookie。 这两种都是ColdFusionpipe理器中Client Storage的备用选项。 客户端variables本质上是临时的,并且定期过期。 我推荐2个操作:1)将默认的客户端存储改为Cookie(或者如果应用程序定期大量使用客户端variables,则可以使用数据库); 2)用一个新的“clean”cf.registry文件replace大的cf.registry文件从一个默认的,干净的CF安装(在Unix / Linux服务器上安装开发版本,并从cf.registry文件中取出)。 由于ColdFusion将文件内容保留在内存中,因此在ColdFusion停止时最好执行cf.registry文件交换,以避免ColdFusion将内存中的文件内容写回到磁盘上的文件。
如果您继续将“客户端variables”logging到“registry”,则会导致服务器性能下降。