限制PHP脚本的建议/诀窍

前端之家收集整理的这篇文章主要介绍了限制PHP脚本的建议/诀窍前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个计划的任务,定期运行脚本(每小时).此脚本与数据库文件系统进行了一些繁重的交互,并且通常需要几分钟才能运行.问题是,脚本运行时服务器的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脚本,则可以将进程的调度优先级设置为低(我相信开始/低PHP.exe myscript.PHP).如果您的PHP脚本本身实际上正在处理占用cpu的大部分处理,那么这可能会有效.但是,你说你正在做一些繁重的数据库文件系统交互,这个解决方案无济于事.对于INSERT和UPDATE查询,看起来有一个MysqL提示“LOW_PRIORITY”可能对你有所帮助,但我还没有尝试过.

猜你在找的PHP相关文章