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

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

我想知道在使用 mod_fastcgi 的 Apache 2 服务器中,选择将应用程序配置为静态还是动态时需要考虑哪些因素。该应用程序是一个典型的报告应用程序,用 Perl 编写,以 MySQL 作为 Db 后端,流量相当中等。我很想听听您在这种情况下运行 FastCGI 的经验。

答案1

它们都没有真正脱离你的应用及其环境而设定性能或可扩展性特征。哪个更好取决于你正在做什么。

静态:设置始终挂起的应用进程数。支持此设置的条件包括:

  1. 你可以负担得起足够多的应用程序实例一直处于运行状态,以便快速满足你得到的尽可能多的流量,无论出于什么原因(机器不需要做任何其他事情,你永远不会真正获得那么多的流量,机器有很多备用资源,等等)。
  2. 应用程序进程实例具有相当长的启动时间,您的用户会因此而感到烦恼。
  3. 机器只需要让该应用程序占用一定比例的资源,以便其他作业可以不受过度干扰地运行。

动态:按需启动并在未使用时终止的应用进程数量可变。支持此方法的条件包括:

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

相关内容