【问题标题】:Bottleneck of web applications?Web应用的瓶颈?
【发布时间】:2009-02-06 16:00:34
【问题描述】:

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

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

【问题讨论】:

    标签: php ruby-on-rails


    【解决方案1】:

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

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

    此外,您还没有具体说明所提供的组合是什么 - 所以很难给出答案。

    【讨论】:

      【解决方案2】:

      只要你能保持缓存,你只需要计算/获取一次,但这真的取决于你的网络应用程序有多动态。

      【讨论】:

        【解决方案3】:

        在普通的 crud 应用程序中,您将在 cpu 墙之前遇到内存墙。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

              如果您还没有选择托管公司,我可以推荐Tektonic。价格无法被击败,如果您获得中级或更高级别的计划,他们将拥有相当数量的 RAM 和 CPU。带宽不是计量的,而是受实际容量的限制,因此如果您发现自己的带宽不足,您可能需要为额外的容量付费,就像任何主机一样。

              【讨论】:

                【解决方案7】:

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

                【讨论】:

                  猜你喜欢
                  • 2013-06-18
                  • 2011-04-02
                  • 1970-01-01
                  • 2011-01-31
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多