我想知道在使用 mod_fastcgi 的 Apache 2 服务器中,选择将应用程序配置为静态还是动态时需要考虑哪些因素。该应用程序是一个典型的报告应用程序,用 Perl 编写,以 MySQL 作为 Db 后端,流量相当中等。我很想听听您在这种情况下运行 FastCGI 的经验。
答案1
它们都没有真正脱离你的应用及其环境而设定性能或可扩展性特征。哪个更好取决于你正在做什么。
静态:设置始终挂起的应用进程数。支持此设置的条件包括:
- 你可以负担得起足够多的应用程序实例一直处于运行状态,以便快速满足你得到的尽可能多的流量,无论出于什么原因(机器不需要做任何其他事情,你永远不会真正获得那么多的流量,机器有很多备用资源,等等)。
- 应用程序进程实例具有相当长的启动时间,您的用户会因此而感到烦恼。
- 机器只需要让该应用程序占用一定比例的资源,以便其他作业可以不受过度干扰地运行。
动态:按需启动并在未使用时终止的应用进程数量可变。支持此方法的条件包括:
- 您的流量非常尖锐(自相似),因此能够产生更多的应用程序进程来处理它非常重要。
- 应用程序进程实例启动非常快,因此如果需要生成一个进程实例来处理请求,它不会造成太大的损害。
- 机器确实需要将其资源用于其他目的,因此在可以时释放这些资源是很好的,但是当流量很大时,为该应用程序吸收大量资源也是可以的。