Apache-2.2
伺服器速度:共享一個 script.php 或使用多個副本相同的 script.php
讓我們假設:
- 我在同一個 Apache 伺服器上有數千個域。
- 每個域都在伺服器 public_html 文件文件夾下的一個文件夾中,因此可以通過呼叫“www.somedomain.com”或呼叫“www.serverdomain.com/somedomain_folder”來訪問它
- 在每個域中都有一個需要特定 script.php 的網站(每個域都相同)。
從編碼的角度來看,很明顯最好使用唯一的 script.php,所以當我用新功能/錯誤修復等更新它時,我只需要在伺服器上更新一個文件,它將適用於所有域。
但是從伺服器的角度來看呢? 如果我使用一個唯一的腳本,所有域都將同時訪問它,與每個域呼叫自己的腳本的情況相比,伺服器會執行得更慢嗎?
如果我使用一個唯一的腳本,所有域都將同時訪問它,與每個域呼叫自己的腳本的情況相比,伺服器會執行得更慢嗎?
我認為情況正好相反。它不應該更慢。問題是,“共享執行會使其更快”嗎?至於這一點 - 從理論上講,是的。但實際差異可能難以察覺。
關鍵是 - 如果只有一個腳本適用於所有使用者(共享庫的想法),它不僅更容易維護,正如前面指出的那樣,而且內置的記憶體機制應該更有效(至少從我對主題)。一個文件即可讀取,輕鬆記憶體在記憶體中。多個相同的文件(不是 sym-/hardlinked,不同的inode)——這更成問題。還是我在這裡低估了Linux的能力?如果我錯了,請糾正我——我對內部的了解並不深刻,但我認為這會導致獨立的搜尋/緩衝。
另一點——使用操作碼記憶體。我不確定它在不同實現中的外觀,但在大多數情況下,使用多個相同的腳本會導致不必要的記憶體條目。但是,共享腳本存在一個潛在問題 - 當記憶體變得過於激進時(例如在不同使用者之間記憶體外部配置文件)。我最近在XCache 和 hardlinks中遇到了這種行為。通過正確的配置和非錯誤的實現,這不是問題。
所以,我的結論:
如果可行,為了方便和性能,我會使用****共享安裝。但是,在某些情況下,性能差異可以忽略不計,因此可能是“更適合您的情況”。