Mik*_*e B 7 php cron lamp wamp
我有一个计划任务,定期运行脚本(每小时).此脚本与数据库和文件系统进行了一些繁重的交互,并且通常需要几分钟才能运行.问题是,当脚本运行时服务器的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特定的答案.在我的情况下,改变托管环境仍然足够早.希望无论操作系统如何,这个问题都可以帮助其他人.
这是一个棘手的问题.如果您通过命令行运行PHP脚本,则可以将进程的调度优先级设置为低(start /low php.exe myscript.php我相信).如果您的PHP脚本本身实际上正在处理占用CPU的大部分处理,这可能会起作用.但是,你说你正在做一些繁重的数据库和文件系统交互,这个解决方案无济于事.对于INSERT和UPDATE查询,看起来有一个MySQL提示"LOW_PRIORITY"可能对你有所帮助,但我还没有尝试过.