2012-11-16 80 views
1

我一直在做一些研究,我试图找出来运行我们的网站之一的最佳方法。简而言之,将会有大约100个子域名,每个子域名需要运行21个cron脚本。我通过使用一些可以使用的fopen函数将它缩短到了11。每个子域使用相同的API更少地提取数据并将其存储在本地mysql数据库中。所有子域都有自己的数据库,并且它们不共享,并且这些数据库之间的信息不会重叠,因为它们都是独特的数据片段。最佳方法加载一千cron脚本

我们打算托管到VPS主机,这我不知道会是最好的主意,但它应该做的从我们的预测工作。这11个脚本的区间为以下之一:

5分钟,8分钟,10分钟,15分钟,30分钟,45分钟,1小时,3小时,8小时,12小时和24小时

,根据间隔10分钟运行上的那些一般都非常快速加载(低于20秒/分脚本)

我的问题是,什么是最好的方法/无需打开该许多脚本的最佳实践... a。)崩溃服务器 b。)将服务器放慢到可笑 c)不超时我们的cron脚本。

我的方法的想法: 1)创建总共11个cron脚本并运行可能出现的睡眠()其间的每个脚本功能打开的功能。问题是可能有100个文件需要打开每个脚本。 2)创建1100个cron作业以在设定的时间运行。 3)创建约110个fopen cron脚本,每个文件运行10个脚本。

如果有人可以帮助与提示或技巧,将不胜感激!

此外,对于服务器使用的专用或VPS是必要的?

回答

2

如果我理解正确的话,你可能会想要安装11个cron脚本,而且每个cron脚本会调用其他需要的脚本序列。你可能不需要睡觉(),因为它们会按顺序运行,而不是平行运行。为了减少服务器负载,您还可以使用“nice”命令使脚本以低优先级运行。

专用或VPS完全取决于你有多少负载将在服务器上。 VPS的性能也可能因提供商而异。从所提供的信息来看,它确实无法衡量。如果你想省钱,那么我会说在VPS上试用它。您以后可以随时转移到更昂贵的专用服务器。

+0

谢谢JMack。我会通过HostGator VPS进行托管或者专门负责,除非人们真的不同意这一点。我想到了InMotion托管,因为我读了很多有关它们的伟大的事情。你介意提供一个很好的命令的参考,或者用外行的话来解释一下吗? – user1701252

+0

下面的页面应该会给你一些信息。基本上,你的cron脚本,调用所有其他脚本将在命令中使用nice。 (例如:nice -n19 php /path/to/my/script.php)-n19表示以尽可能低的优先级运行。请记住,如果它使用大量的MySQL,这可能无济于事。尽管PHP会以低优先级运行,但它连接的MySQL服务器不会。 –

+0

非常感谢JMack^ – user1701252