Apache-2.2

在記憶體方面,如何確定 PHP 和 Wordpress 的 VPS 良好預設值?

  • April 27, 2015

我(只有)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

  1. 正在使用大型數據集,如果您正在執行 WordPress 網站,我非常懷疑。
  2. 有記憶體洩漏或其他問題,這意味著記憶體沒有被釋放回作業系統,對此類問題的正確響應是調查源問題,而不僅僅是突破限制。

阿帕奇調整

如果您對調整性能感興趣,您應該查看模組中的 ApacheMaxClients和相關選項prefork

我通常會為核心和其他系統程序保留 50MB 的空間,並將剩餘的空間用於 Apache 和 MySQL - 有各種 線上 指南詳細說明瞭如何執行此操作(我強烈建議您閱讀),但總體構想是:

  1. 執行top並檢查您的平均 Apache 程序使用了多少記憶體(這是RES列)
  2. 取你的總記憶體,減去你想為其他程序保留的數量,然後除以上面的數字。這是Apache 在需要將客戶端拒之門外之前可以處理的同時連接數。
  3. 編輯您的 Apache 配置並將MaxClients選項設置為此數字。

請注意,我在上面提到了同時連接,而不是您網站上的訪問者。兩者不一樣。

引用自:https://serverfault.com/questions/685774