糟糕的 PHP 脚本导致服务器瘫痪

糟糕的 PHP 脚本导致服务器瘫痪

我的 Debian VPS 上有一个非常标准的 LAMP 设置。VPS 有 512MB 的 RAM,我在 php.ini 中为 php 分配了 128MB。

如果我创建一个带有无限循环的脚本,VPS 几乎就会停止运行(SSH 停止响应等)。

我想知道是否有办法降低 PHP 的优先级或类似的东西,以便坏脚本不会对服务器造成太多干扰。

谢谢,约翰。

答案1

实际上,这里有两个选项,具体取决于您如何运行它。一个解决方案是限制 PHP 脚本的运行时间 - 也就是说,您可以让 PHP 脚本根据其实际运行时间自动终止。

如果你从 Web 服务器(Apache、Lighttpd 等)运行此程序,则可以使用最大执行时间参数。默认情况下,这是 30 秒。如果您从 CLI 运行此命令,请使用设置时间限制功能。

另一个解决方案是使用某种方法来monit监视 PHP 进程的负载和 CPU 使用率,并在达到指定水平时将其终止。

希望这会有所帮助;尽管从脚本中完全消除这些类型的逻辑错误可能是个好主意。

答案2

如果 PHP 作为模块运行(例如 mod_php),则在 Web 服务器进程上使用nice或。这将允许 PHP 在资源可用时使用更多资源,但会优先考虑可能需要这些资源的其他进程。renice

我应该补充一点,这仅适用于 Linux,也许还适用于 UNIX。

相关内容