我有一個定期運行腳本(每小時)的計劃任務。該腳本與數據庫和文件系統進行了一些繁重的交互,並且需要花費幾分鐘時間才能運行。問題是,腳本運行時服務器的cpu使用率會激增,並會降低正常運行速度。有沒有辦法來限制這個過程,以便它花費更長的時間,但不會消耗盡可能多的資源?限制PHP腳本的建議/技巧
我已經看過不同的PHP配置選項,但似乎沒有任何符合我的需求。
將php.ini中的memory_limit設置爲較低的值會導致我的數據對象很容易溢出。
我見過類似的帖子,其中人們建議在腳本中的某些點使用sleep(),但這不會阻止腳本插入服務器。
最佳解決方案是告訴Lamp(在這種情況下爲Wamp)堆棧以僅使用10%max cpu利用率的某種方式。我並不關心運行時間,如果它意味着每秒鐘節省CPU週期,它會花費更長的時間。我的替代解決方案是使用數據庫複製來設置不同的服務器,以便cron可以在不減速其他任何事情的情況下進入城鎮。
環境:Windows服務器2K3,阿帕奇2.2.11,PHP 5.2.9,MySQL 5.1中
我明白任何洞察到這種情況。
編輯:我欣賞所有的答案,即使是* nix特定的答案。在我的情況下,改變託管環境還爲時尚早。不管操作系統如何,希望這個問題能夠幫助別人。
哎呀,對不起。我看到你正在運行Windows。我被'燈'和'cron'標籤拋棄了! – grossvogel 2009-04-15 16:09:17