Performance
將 eAccelerator 記憶體目錄放入 RAM 是否可取?
我剛剛在將要執行 Magento 的伺服器上安裝了 eaccelerator。我有一個硬碟,所以想知道如果我將 eaccelerator 記憶體目錄掛載到 RAM,我的伺服器性能是否會提高。有什麼缺點嗎?我有 16G 的 RAM,所以我認為分配的 256M 的加速器目錄大小不會對它產生負面影響。
謝謝
可能沒有用,除非它自己的記憶體管理非常糟糕。
eAccelerator 將編譯後的 PHP 腳本儲存在共享記憶體中,並直接從中執行程式碼。它只在短時間內創建鎖,同時在記憶體中搜尋已編譯的 PHP 腳本,因此一個腳本可以由多個引擎同時執行。無法放入共享記憶體的文件僅記憶體在磁碟上。
https://github.com/eaccelerator/eaccelerator/wiki
編輯- 為超出評論的記憶體設置添加註釋。
預設情況下,eaccelerator 將分配給作業系統可用的“共享記憶體”
; The amount of shared memory (in megabytes) that eAccelerator will use. ; "0" means OS default. Default value is "0". eaccelerator.shm_size = "0"
一個 Linux 機器很可能是 32MB(33554432 字節):
$ sudo sysctl -a | grep kernel.shm kernel.shmmax = 33554432 kernel.shmall = 2097152 kernel.shmmni = 4096 kernel.shm_rmid_forced = 0
我懷疑您編譯的程式碼甚至會達到那個大小,也許如果您為很多人執行大量虛擬主機並且擁有大量 PHP?似乎所有對儲存額外“會話數據”和“使用者數據”的支持已從 eAccelerator 中刪除,因此您不必擔心任何這些。
如果您將共享記憶體重新配置得更高一點,那麼是的,您不太可能填滿甚至觸及 256MB 的磁碟。我什至很想關閉磁碟記憶體,
eaccelerator.shm_only = "1"
因為您談到在增加外出到磁碟以獲取已編譯程式碼的延遲時會減少收益。找出問題的最佳方法是在設置站點時進行一些生產,例如對站點進行負載測試。