2012-06-28 56 views
0

似乎是一個很長的問題。我想根據一般經驗提出一些意見。是否可以重載一個PHP腳本或超載服務器通過請求一個PHP腳本太多?

我使用PHP腳本在服務器上執行多個任務。我想知道,如果我使用三種不同的腳本來完成三項不同的任務,或者它們根本就不重要,它是否會產生影響?

要考慮到我在一次指望像2-3K用戶(晚上的時間,相當罕見),我還是買不起300塊錢的服務器一個月

回答

0

使用單獨的腳本將幫助你找出每個問題。您將在日誌中獲得錯誤消息和指針以確切的文件。

此外,它可以幫助你看到哪一個運行很久(est),如果一個腳本崩潰它不會影響其他人。您可以更輕鬆地監視哪些腳本需要優化。

只要確保它們不依賴於對方。

0

取決於腳本的目的以及將發生多少個併發請求。 假設它將基於php-mysql,我會說它將主要取決於您的查詢性能。所以是的,我知道腳本導致Web服務器由於MySQL守護程序的負載過重而無法給出超時;即使通過一定量的用戶。

希望它對您有用!

0

您可能還想檢查php.ini文件中的php安裝。默認的超時時間爲30秒,因此根據服務器的負載情況,如果您的腳本尚未完成執行,您的任務將失敗。您可以增加這一點,但請注意,它可能會影響任何耐心等待的用戶,以便在過去30秒內等待來自前端的任何長執行腳本。

除此之外,在非高峯流量時間內,只有一項任務使任何現代服務器超載是相當困難的。

0

人們使用cronjobs來製作PHP多任務是很常見的。我認爲這是你想要做的。我只是將這些腳本作爲cronjobs運行,並且如果服務器負載過重,那麼您應該考慮升級網絡。 300美元對於一個服務器來說是很多的,你可以從AWS獲得一個體面的數據庫服務器,就像前面的100英鎊和每個月7英鎊一樣,使用專用服務器基礎的小型實例就可以。

請注意,如果您正在運行相同的腳本多任務處理(同一腳本的許多crons運行數小時),您將需要對數據進行樂觀鎖定等操作,否則您將遭受嚴重的損失。

當然,如果這證明對您的服務器有點太重要,爲什麼不考慮將您的處理借給像iron.io這樣更好的地方?有許多處理網絡可以愉快且便宜地處理您的處理負載。

我個人一直在努力的另一種選擇是AWS競價實例,這是一個非常棒的創造!我有一個自動縮放一堆微型實例花費我每小時0.005c和自動縮放組可以從0服務器工作,這意味着,當它不被使用它花費我nout。我肯定會說要查看現場實例來處理你的腳本,甚至可能爲這些腳本保留剩餘的數據,這樣你就不會在數據庫上加載負載。無論哪種方式,它都比每月300美元便宜。

但是要回答您的標題,我在我的AWS小型實例處理數據等上每運行2小時運行150個cronjobs,並且我還沒有推翻PHP或我的服務器,並且在CLI模式下PHP沒有超時,所以如果您的長時間處理使用如下命令:

php myscript.php 

運行您的處理作業。

相關問題