Web应用程序的瓶颈?

时间:2009-02-06 16:00:35

标签: php ruby-on-rails

这个问题与Ruby on Rails和PHP有关。在为Web应用程序寻找VPS主机时(还没有确定要编写它的两种语言中的哪一种),我应该考虑更多什么?内存还是CPU?我知道你需要两者的公平平衡,但我会先遇到哪一面?

我确定这取决于应用程序正在进行的工作类型,在我的情况下,它是正常的CRUD。我的猜测是记忆,但我想确定一下。

7 个答案:

答案 0 :(得分:6)

我认为DBMS以及您将要进行的查询的性质/数量将是这里最重要的考虑因素,而不是与所用语言有关的任何内容。 (假设数据库在同一台服务器上运行)

除非你有一个非常小的数据集,否则内存可能会在CPU之前受到限制。

另外,你还没有真正说明提供的组合是什么 - 所以很难给出答案。

答案 1 :(得分:0)

我在CPU问题出现之前就遇到了内存问题,但我在与Web前端相同的VPS上运行SQL服务器。在我付费升级之前,有一些严重的内存问题。

答案 2 :(得分:0)

只要您可以保持缓存,您只需要计算/获取一次,但这实际上取决于您的Web应用程序的动态性。

答案 3 :(得分:0)

你将在正常的crud应用程序的cpu墙之前遇到内存墙。

答案 4 :(得分:0)

让MySQL将其用于缓存的更多内存将为您提供出色的性能改进。 将它与良好的数据库设计相结合,避免构建大型昂贵的对象数组,你应该遇到任何CPU问题......好吧,除非你正在进行CPU重聚合或一些复杂的逻辑。

答案 5 :(得分:0)

我认为你遇到的第一面墙与数据库连接有关。更可能的是,减慢你速度的第一件事不是内存短缺或CPU资源,而是浪费时间打开,关闭数据库连接,以及等待可用的数据库连接。如果可以,请尝试确保在应用程序中使用连接池。

答案 6 :(得分:0)

实际上,根据我的经验,我在VPS上运行网络服务器时遇到的第一个瓶颈是带宽。要么使实际带宽饱和,要么耗尽VPS上允许的开放插座/连接。除非您的主机允许您购买更多带宽,否则前者您无能为力,但后者至少通常可以由托管公司进行调整。在带宽之后,内存是我遇到的下一个限制,主要来自与MySQL,Apache等同时运行SpamAssassin。我通过升级到具有更多可用内存的下一级计划来解决这个问题。

如果您尚未选择托管公司,我可以推荐Tektonic。价格不能超过,如果你得到中等或更高级别的计划,他们有相当数量的RAM和CPU。带宽不是计量的,而是你的实际容量,所以如果你发现自己的带宽不足,你可能需要支付额外的容量,就像任何主机一样。