gpt4 book ai didi

php - 限制 PHP 脚本的建议/技巧

转载 作者:可可西里 更新时间:2023-11-01 12:43:29 24 4
gpt4 key购买 nike

我有一个定期(每小时)运行脚本的计划任务。该脚本与数据库和文件系统进行大量交互,通常需要几分钟才能运行。问题是,服务器的 cpu 使用率在脚本运行时出现峰值并减慢了正常操作。有没有一种方法可以限制此过程,使其花费更长的时间但不会消耗那么多资源?

我查看了 PHP 的不同配置选项,但似乎没有适合我需要的配置选项。

将 php.ini 中的 memory_limit 设置得较低会导致我的数据对象很容易溢出。

我看过类似的帖子,其中有人建议在脚本的某些点使用 sleep() 但这并不能阻止脚本对服务器产生峰值。

最佳解决方案是通过某种方式告诉 Lamp(在本例中为 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”可能对您有帮助,但我还没有尝试过。

关于php - 限制 PHP 脚本的建议/技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/752337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com