Apache-2.2
在記憶體方面,如何確定 PHP 和 Wordpress 的 VPS 良好預設值?
我(只有)512MB 可用。我的 VPS 上唯一執行的是 PHP/MySQL 和 Wordpress。沒有郵件伺服器或任何其他應用程序,只有 Wordpress 和 LAMP 堆棧。
如何決定給 PHP 和 Wordpress 多少記憶體?現在PHP允許有128MB,增加多少安全量呢?我試過用Google搜尋這個問題,但從未真正找到任何答案。
TL;DR -不要為了它而提高你的記憶體限制。對於像 WordPress 這樣的標準 PHP 應用程序,128MB 是巨大的,應該足以滿足您 90% 的需求。
但是,這裡有一些重要的事實:
PHP 記憶體分配是按腳本/程序進行的
根據該選項的PHP 文件
max_memory
:這設置了允許腳本分配的最大記憶體量(以字節為單位)。這有助於防止編寫不佳的腳本耗盡伺服器上的所有可用記憶體。
一個重要的區別是這個設置沒有設置所有PHP 程序可用的記憶體量——它設置了一個PHP 程序的最大可用記憶體。
當 Apache 收到對 PHP 頁面的請求時,它會派生一個 PHP 程序,該程序在其工作完成後立即終止。然後,在該請求期間使用的任何記憶體都會釋放回作業系統,並且整個週期會從下一個請求重新開始。
除非您從 PHP 本身看到“記憶體不足”錯誤,否則您永遠不必調整設置,並且通常僅在以下情況下才會發生:
max_memory
- 正在使用大型數據集,如果您正在執行 WordPress 網站,我非常懷疑。
- 有記憶體洩漏或其他問題,這意味著記憶體沒有被釋放回作業系統,對此類問題的正確響應是調查源問題,而不僅僅是突破限制。
阿帕奇調整
如果您對調整性能感興趣,您應該查看模組中的 Apache
MaxClients
和相關選項prefork
。我通常會為核心和其他系統程序保留 50MB 的空間,並將剩餘的空間用於 Apache 和 MySQL - 有各種 線上 指南詳細說明瞭如何執行此操作(我強烈建議您閱讀),但總體構想是:
- 執行
top
並檢查您的平均 Apache 程序使用了多少記憶體(這是RES
列)- 取你的總記憶體,減去你想為其他程序保留的數量,然後除以上面的數字。這是Apache 在需要將客戶端拒之門外之前可以處理的同時連接數。
- 編輯您的 Apache 配置並將
MaxClients
選項設置為此數字。請注意,我在上面提到了同時連接,而不是您網站上的訪問者。兩者不一樣。