Linux
PHP & MySQL 組合在 Windows Server 2008 上執行異常緩慢
不久前,我在 Linux (Debian) 機器上編寫了一些 PHP 和 MySQL 腳本(在 LAMPP 上執行)。請求大約 2000 個 MySQL 行的頁面在大約 0.001 秒內執行並返回數據,更新此 MySQL 表的循環腳本(多執行緒)在後台執行,每個循環使用大約 10 秒。
我們剛剛升級了我們的盒子(全新 PC),獲得了四倍的 RAM 和更高的 CPU 時鐘速度。這個盒子安裝了 Windows Server 2008(和 XAMPP)。在 Linux 機器上執行的完全相同的腳本現在在 Windows 機器上執行,但是:
- 從 MySQL 獲取資訊的頁面需要 5-10 秒才能返回數據
- 在 Linux 機器上花費 10 秒的循環現在使用 60-80 秒
- 如果 Apache 正在執行,則循環凍結(或每個循環使用超過 30 分鐘)
到底是怎麼回事?在 Windows 上執行 PHP 和 MySQL 是否存在已知問題?如果不是,我將如何弄清楚為什麼每個小命令現在都以 100% 的速度泵送 CPU 幾秒鐘,而它們在配置較少的 Linux 機器上以 0.001 秒完成而不打擾 CPU?
主要是我想知道;我們應該責備Windows還是新盒子?(如果我們在新機器上安裝 Linux,結果會怎樣?)
原來這只是執行 Windows Server 以及每個 PHP 程序打開的所有 CMD 的更大成本。在盒子上安裝 Debian 讓一切再次順利執行。
當您啟用 IPv6 時,這是一個問題。在伺服器名稱上使用
localhost
(非常常見)會導致連接需要很長時間才能穩定。將其更改為127.0.0.1
.由於您有一個循環,如果您關閉並重新建立連接,它會成倍地降低速度,並且使連接快速會產生巨大的差異。