【问题标题】:Have I outgrown the shared hosting or I my scripts aren't optimized?我是否超出了共享主机或者我的脚本没有优化?
【发布时间】:2011-02-20 19:20:07
【问题描述】:

我目前每天有超过 1000 次访问,并在 1and1 托管,PHP 内存限制为 30MB 我有一个包含 5000 多件商品的动态购物指南,用户可以输入以浏览/搜索商品。我开始时不时地收到“内部错误 500”。哪些在日子里显示得更多,而我在其他人身上没有注意到它们。 1and1 支持说我已经超出了 30MB PHP 的限制。 你怎么看?真的吗?或者他们只是想卖给我一个更贵的主机?我目前买不起共享主机:(

我正在使用 PHP / MySQL Javascript / My BB Forum / PHP thumbail(我现在正尝试用静态缩略图切换以减轻负载) 感谢您的建议

【问题讨论】:

  • 听起来可能...您必须找出代码的哪些部分超出了限制。您很可能可以通过优化代码来帮助解决这个问题。

标签: php hosting


【解决方案1】:

磁盘空间限制不太可能导致 500s,即使 5000 个项目超过 30mb,也就是每个项目大约 6k - 只有当每个项目都有图像时才可能。

当您达到磁盘配额时,大多数 PHP 框架会自行报告错误,而不是发送标准的 500 响应,因此 30Mb 限制几乎肯定不是问题。您的托管公司可能会施加其他限制,但即使每天 1000 次访问也不应该打破最严格的托管门槛。您的托管公司更有可能正在寻找简单的追加销售。

给我们一个 URL,也许我们可以更清楚地了解情况,但更有可能的是,您网站的代码有问题。当然,没有任何参考资料,这只是一个理论。

【讨论】:

  • 似乎@Yasser 说限制是PHP 可以获得多少内存——30 兆字节——而不是磁盘空间。任何只提供 30 兆磁盘空间的主机都在几年前消失了。
  • 我也这么认为,但是 30mb 的 RAM 似乎更不可能,因为它通常以 2 的幂次方分配。PHP 必须同时处理十个左右的命中才能消耗那么多内存,并且即使这样,Apache 也应该将它们排队,而不是提供 500 个。
  • 是的,是内存使用量,不是流量配额的磁盘空间。 1and1 说我的用户消耗的资源每次都会出现错误 500。
【解决方案2】:

如果您遇到 30 兆字节的 PHP 内存(如果您实际上是在谈论 php memory_limit 设置,看起来确实如此),那么很可能一些优化可以解决它。如果我正在处理大型数组和/或转换为 PDF 文件等,我通常只会达到那种数字。然后我通常会想办法通过使用 memcached 或以其他方式或其他方式编写 PDF 来降低数组大小像那样。

有时最简单的做法是购买他们的升级。在问题上投入硬件至少可以快速解决问题。如果你从你的网站上赚钱,任何时候你得到 500,你可能会亏钱,所以这对你来说可能是明智的。但是,你没有问这个问题。 :)

要确定您的脚本使用了多少内存,请将http://us2.php.net/memory_get_usage 散布在战略位置以查看(假设您没有可以更好地处理此问题的分析器)。

【讨论】:

  • 抛出 memory_get_usage() 有助于优化脚本,但不会告诉我整个用法。我仍然不明白为什么在某些日子我有更多的错误 500,而在其他日子却没有。它甚至有时只发生 1 次射击.. 在其他时候,它会持续 10 秒!我不知道主办方是否诚实:(
【解决方案3】:

我已经转移到另一个主机“Blue Host”,并且错误从此停止。他们似乎以不同的方式处理资源:“CPU 节流”。他们告诉我我可以使用他们的服务,直到我觉得网站很慢,然后我应该切换到 VPS 或专用服务器。 1and1 处理共享限制的过载,错误为 500。这不好!

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多