2012-06-28 40 views
0

似乎是一个很长的问题。我想根据一般经验提出一些意见。是否可以重载一个PHP脚本或超载服务器通过请求一个PHP脚本太多?

我使用PHP脚本在服务器上执行多个任务。我想知道,如果我使用三种不同的脚本来完成三项不同的任务,或者它们根本就不重要,它是否会产生影响?

要考虑到我在一次指望像2-3K用户(晚上的时间,相当罕见),我还是买不起300块钱的服务器一个月

回答

0

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

此外,它可以帮助你看到哪一个运行很久(est),如果一个脚本崩溃它不会影响其他人。您可以更轻松地监视哪些脚本需要优化。

只要确保它们不依赖于对方。

0

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

希望它对您有用!

0

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

除此之外,在非高峰流量时间内,只有一项任务使任何现代服务器超载是相当困难的。

0

人们使用cronjobs来制作PHP多任务是很常见的。我认为这是你想要做的。我只是将这些脚本作为cronjobs运行,并且如果服务器负载过重,那么您应该考虑升级网络。 300美元对于一个服务器来说是很多的,你可以从AWS获得一个体面的数据库服务器,就像前面的100英镑和每个月7英镑一样,使用专用服务器基础的小型实例就可以。

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

当然,如果这证明对您的服务器有点太重要,为什么不考虑将您的处理借给像iron.io这样更好的地方?有许多处理网络可以愉快且便宜地处理您的处理负载。

我个人一直在努力的另一种选择是AWS竞价实例,这是一个非常棒的创造!我有一个自动缩放一堆微型实例花费我每小时0.005c和自动缩放组可以从0服务器工作,这意味着,当它不被使用它花费我nout。我肯定会说要查看现场实例来处理你的脚本,甚至可能为这些脚本保留剩余的数据,这样你就不会在数据库上加载负载。无论哪种方式,它都比每月300美元便宜。

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

php myscript.php 

运行您的处理作业。

相关问题