FastCGI“静态”和“dynamic”应用程序在性能和稳定性方面有什么区别?

我想知道在使用mod_fastcgi的Apache 2服务器中将应用程序configuration为静态或dynamic时需要考虑的事项。 这个应用程序是一个典型的报告应用程序,用MySQL编写,作为Db后端,具有相当中等的stream量。 我很想听听你在这种情况下运行FastCGI的经验。

他们都没有设置性能或可扩展性的特点离开您的应用程序和环境的上下文。 哪个更好,取决于你所做的事情。

静态:设置总是挂起的应用程序进程的数量。 争论的条件包括:

  1. 你可以负担得起有足够的应用程序实例挂在所有的时间,以尽可能快地为您提供尽可能多的stream量,无论出于何种原因(机器不需要做其他任何事情,你永远不会得到那么多的stream量,机器有大量的闲置资源,你有什么)。
  2. 一个应用程序stream程实例的启动时间很长,您的用户会被它激怒。
  3. 机器只需要有一定比例的资源用于这个应用程序,使其他工作可以运行没有不适当的干扰。

dynamic:可变数量的应用程序进程,根据需要启动,并在未使用时closures。 争论的条件包括:

  1. 你的stream量是非常尖锐的(自相似的),所以重要的是能够产生更多的应用程序进程来处理它。
  2. 应用程序stream程实例启动速度非常快,因此如果需要处理请求,它不会造成太大的伤害。
  3. 该机器确实需要其资源用于其他目的,所以尽可能将它们释放出来是件好事,但是当stream量很大时,可以为这个应用程序吸收大量的资源。