最近我们升级到ColdFusion 11 Enterprise,并注意到成熟的沙箱安全性往往比标准版(CF10)有更大的开销。
如何使现有的CF应用程序在沙盒安全性方面表现良好?
答案 0 :(得分:5)
到目前为止,我的调查结果如下:
-Dcom.sun.management.jmxremote.port=8701 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
添加到CF管理员的JVM参数来安装VisualVM。了解如何使用它并特别注意CPU Snapshot&热点标签。 http://boncode.blogspot.ca/2010/04/cf-java-using-free-visualvm-tool-to.html。企业版中的FYI CF Server Monitor完全没用,因为它的内存/性能分析开销太大而不能用于实时生产服务器,并且它在负载下表现不佳,无法为您提供任何有用的数据。可能会出错。[serverip] [serverip]
添加到操作系统的主机文件中,以加快Security Manager创建新物理数据库连接时的默认DNS反向代理查找。请参阅:On Linux, Java issues reverse DNS lookups when a socket is opened. Why, and how can I stop it?(仅供参考,Windows受影响)<cfmodule>
和<cfinclude>
,因为它们最终会导致许多java.io.File.canRead()
和java.io.File.exists()
,这会对负载下的磁盘IO造成压力。即便是SSD也会受到负担。我已经尝试过Trusted Cache但它没有帮助。相反,尝试在application
范围内使用缓存的CFC,并确保代码是线程安全的并且是local-var。<cfinterface>
,extends
和getMetaData()
的继承的使用,因为它们最终会调用java.io.File.lastModified()
,这会对负载下的磁盘IO造成压力。 Bug? access="package"
的使用,因为它最终会有很多java.security.AccessController.checkPermission
次来电。java.security.AccessController.checkPermission
调用都会有更高的成本。