分析網路伺服器執行時間
我有 2 個幾乎相同的虛擬機,除了主機名和不重要的東西(據我所知)。
在這些虛擬機上,我執行nginx/1.14.2作為代理,後面有一個Apache/2.4.38網路伺服器,包括php-7.4.28和mysql-5.7.37。
我什至將配置文件從 php 和 mysql、nginx 和 apache vhost 從一台機器複製到另一台機器。
phpinfo();
如果我用內容或靜態 html 文件呼叫站點,則在兩個 VM 上,網路伺服器都執行良好。在兩個虛擬機上,線上商店系統(openmage)執行良好。但是在一個 VM 上,另一個線上商店系統 (shopware6) 非常慢(= 響應時間長達 60 秒)。在另一個虛擬機上執行良好。
由於我在相同的作業系統(debian/buster)上使用相同的版本和相同的配置,我不知道是什麼導致了問題。
有什麼想法或建議嗎?
如果需要,我可以提供任何進一步的配置細節。
謝謝!
更新:
我看了不同的東西:
- 中央處理器時間:102 毫秒
- 掛鐘時間:90秒
- 關閉mysql沒有任何區別
- 避免代理沒有任何區別
- cli執行也需要很長時間
來自非工作機器的 vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 1792 2250052 381472 1175636 0 0 100 407 162 337 2 0 98 0 0 0 0 1792 2250140 381472 1175636 0 0 0 0 105 134 0 0 100 0 0 0 0 1792 2250140 381472 1175636 0 0 0 0 73 101 0 0 100 0 0
來自工作機器的 vmstat:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 1792 1709948 321864 1311356 0 0 14 68 151 262 0 0 99 0 0 0 0 1792 1709908 321864 1311356 0 0 0 0 287 482 0 0 100 0 0 0 0 1792 1709908 321864 1311356 0 0 0 0 282 493 0 1 100 0 0
我找到了問題的原因。
作為@gerhardd。正確提到:我沒有復製網路設置。因此,可能存在差異,而且確實如此!
在慢速伺服器上配置了搜尋域。並且安裝的 php-script 包含一個嘗試連接到具有域的 mysql-server 的部分:“_placeholder.test”。由於“_placeholder.test”不是 FQDN,它會附加搜尋域後綴。搜尋域 dns-records 提供解析為實際伺服器的萬用字元條目。此伺服器丟棄了禁止的請求,而不是拒絕它們。所以腳本必須等待超時然後繼續。
在快速伺服器上,沒有配置搜尋域。所以它找不到“_placeholder.test”的伺服器,也沒有等待任何響應。該腳本隨後立即執行。