加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

限制PHP脚本的建议/诀窍

发布时间:2020-12-13 18:11:58 所属栏目:PHP教程 来源:网络整理
导读:我有一个计划的任务,定期运行脚本(每小时).此脚本与数据库和文件系统进行了一些繁重的交互,并且通常需要几分钟才能运行.问题是,脚本运行时服务器的cpu使用率激增,并降低了正常运行速度.有没有办法限制这个过程,以便它需要更长的时间,但不消耗尽可能多的资源
我有一个计划的任务,定期运行脚本(每小时).此脚本与数据库和文件系统进行了一些繁重的交互,并且通常需要几分钟才能运行.问题是,脚本运行时服务器的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”可能对你有所帮助,但我还没有尝试过.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读