我有一个计划的任务,定期运行脚本(每小时).此脚本与数据库和文件系统进行了一些繁重的交互,并且通常需要几分钟才能运行.问题是,脚本运行时服务器的cpu使用率激增,并降低了正常运行速度.有没有办法限制这个过程,以便它需要更长的时间,但不消耗尽可能多的资源?
我已经查看了PHP的不同配置选项,但似乎没有任何适合我的需求.
将PHP.ini中的memory_limit设置为较低的值会导致我的数据对象很容易溢出.
我已经看过类似的帖子,人们建议在脚本中的某些点使用sleep(),但这并不妨碍脚本加入服务器.
最佳解决方案是告诉灯(在这种情况下为Wamp)堆栈仅使用10%最大cpu利用率.我并不关心运行时,如果这意味着每秒节省cpu周期,则会更长.我的替代解决方案是设置一个具有数据库复制的不同服务器,这样cron可以进入城镇而不会减慢其他所有内容.
环境:Windows Server 2k3,Apache 2.2.11,PHP 5.2.9,MysqL 5.1
我很欣赏这种情况.
编辑:我感谢所有的答案,甚至是那些* nix特定的答案.在我的情况下,改变托管环境仍然足够早.希望无论操作系统如何,这个问题都可以帮助其他人.