可能重复:
如何对网站进行负载测试和容量规划
我希望这是提出这个问题的合适地方。我把它放在了 webapps 中,但它被关闭了,没有给出把它放在哪里的建议。希望这里的人们能更友善一些。
我有一个正在收集使用情况指标的应用程序。这些指标通过 PHP 脚本发送到 MySQL DB。这一切都在 AWS EC2 微型实例上运行。
我的问题是,我想收集大约 10 个指标。将 PHP 脚本拆分为 10 个独立单元,每个单元将一个指标写入数据库,还是编写一个整体 PHP 脚本来处理所有指标,效果会更好?
我不在乎维护 10 个脚本的复杂性或固有难度,我关心的是大量用户的可扩展性。一般来说,是使用更多脚本为许多人服务更好,还是使用一个脚本为许多人服务更好?基本上,如果有 10 个人使用我们的应用,每个人达到不同的指标,一种方法将为同一页面提供 10 次服务,另一种方法将为每个用户提供一次单个页面。
哪个表现更好?
谢谢您的任何意见!
克里斯
答案1
首先,我相信这个网站 (ServerFault) 是提出问题的合适地方,只要您关心如何配置和部署您的 Web 服务器(SF 是系统管理员的地方)。如果您有更多编码问题(如何在 php 中正确执行此操作),那么您可以将其发布到 StackOverflow,它更适合解决编程问题。
但对于你的主要问题,不幸的是,答案是,这取决于(tm)。您的原始问题和评论中的讨论之间存在一个显著区别,即使用 PHP 将更新发布到数据库与从 Web 服务器提供一个或多个文件存在显著区别。原因在于,配置良好的 php 应用程序将在 Web 服务器进程(即 Apache 中的 mod_php)内运行,因此将占用 Web 服务器的 CPU 时间,并且 PHP 二进制文件的库也将加载到内存中。
但是,这些都是运行 Web 应用程序的“购买”成本。无论您拥有一个带有调度逻辑的 PHP 脚本,还是一堆不同的单一用途脚本,这些成本都不会发生很大变化。
概括地说,许多 Web 应用程序最慢且最耗资源的部分是它们连接到数据库的步骤。这就是有这么多应用程序框架与 Web 或应用服务器紧密集成的原因:利用资源池来完成那些昂贵的设置任务。同样,假设您在 Apache 中使用 mod_php 运行应用程序,那么这很可能会自动为您处理,或者至少会变得非常简单。