是否有可能通过过多地请求PHP脚本来重载php脚本或重载服务器?

时间:2012-06-28 13:22:44

标签: php performance scripting

似乎是一个很长的问题。我希望根据一般经验提出一些意见。

我使用PHP脚本在服务器上执行多项任务。我想知道,如果我使用三个不同的脚本来完成三个不同的任务,或者根本不重要,它是否会有所作为?

考虑到我一次依靠2-3k用户(晚上时间,非常罕见),我仍然无法负担每月300美元的服务器

4 个答案:

答案 0 :(得分:0)

使用单独的脚本可以帮助您识别每个脚本的问题。您将在日志中获得错误消息和指针到确切的文件。

它还可以帮助您查看哪一个运行得很长(est),如果一个脚本崩溃,它不会影响其他脚本。您可以更轻松地监控哪些脚本需要优化。

确保他们不相互依赖。

答案 1 :(得分:0)

取决于脚本的用途以及将产生多少并发请求。 假设它将基于php-mysql,我会说它主要取决于你的查询的性能。所以是的,我知道由于MySQL守护程序负载过重导致Web服务器无法提供超时的脚本;即使是一定数量的用户。

希望它对你有用!

答案 2 :(得分:0)

您可能还想检查php.ini文件以进行php安装。默认超时为30秒,因此根据服务器上的负载,如果脚本尚未完成执行,则任务将失败。你可以增加这一点,但要注意它可能对任何耐心的用户产生影响,可以在前30秒内等待来自前端的任何长时间执行的脚本。

除此之外,在非高峰时段只用一项任务重载任何现代服务器是非常困难的。

答案 3 :(得分:0)

人们使用cronjobs来完成PHP多任务是很常见的。我认为这就是你想做的事情。我只是将这些脚本作为cronjobs运行,如果负载证明服务器很重,那么你应该考虑升级你的网络。 300美元对于服务器来说很重要,你可以从AWS获得一个不错的数据库服务器,预付100英镑,每月7英镑使用小型实例,专用服务器基础就可以了。

请注意,如果您运行相同的脚本多任务处理(同一脚本的许多crons运行数小时),您将需要对数据进行乐观锁定,否则您将遭受严重损失。

当然,如果这对您的服务器来说有点过于沉重,为什么不考虑将您的处理借给像iron.io这样的更好的地方?有许多处理网络可以愉快而廉价地处理您的处理负担。

我个人一直在努力的另一个选择是AWS Spot Instances,这是一个如此出色的创作!我有一个自动缩放的微型实例,每小时耗资0.005c,自动缩放组可以在0台服务器上运行,这意味着当它没有被使用时,它会花费我很多。我肯定会说要查看处理脚本的现场实例,甚至可能保留这些脚本的残留数据,这样你就不会对数据库施加负担。无论哪种方式,它都比每月300美元便宜很多。

但是为了回答你的标题,我在我的AWS小实例处理数据等上每2小时运行150个cronjobs并且没有,我还没有推翻PHP或我的服务器,也是在CLI模式下PHP没有超时,所以如果你的进行长处理使用如下命令:

php myscript.php

运行处理作业。