我们有一个CF8的Web应用程序,可以运行在两种模式:数据库或静态文件。 在负载较重的情况下,数据库模式显着执行Staticfile模式。 我正试图弄清楚为什么。
首先是一些背景:
我们运行Solaris Zones&Oracle; ColdFusion 8,32位,带有JRun 4
在数据库模式下,所有数据都是从运行Oracle 10g的外部数据库服务器获取的。
在静态文件模式下,应用程序运行所需的所有数据都是从数据库提前生成的,并放置在运行CF的Web服务器上,并通过CFINCLUDE调用。
在负载testing中,虚拟用户反复执行每个定义的操作,在数据库模式下,我们能够运行31600个会话(在CDATA表中),而在静态文件中,则是25900个会话。 这是60分钟的过程。 在DB模式下完成迭代(login,执行操作,注销)的平均时间为22秒,静态文件模式下的平均时间为33秒。 在数据库模式下,最大Java堆使用量为〜800MB,在静态文件模式下为〜700MB。
这就是为什么我期望静态文件更好:
任何想法,为什么这可能是? 我可以在哪里查看(或询问相应的pipe理员 – 数据库,操作系统,应用程序),看看为什么这可能是?
谢谢!
KM
这很可能是因为您节省了访问磁盘的延迟时间。 Oracle数据库pipe理系统会将所有可能的数据保存在缓冲区caching中,因此除了开始之外,您可能只做很less的磁盘访问。 您还必须比较磁盘子系统的相对速度。 公司将花费很多时间在一个数据库服务器的快速磁盘arrays上,而这些数据库服务器不会花费在应用服务器上。