Apache-Httpd

分析網路伺服器執行時間

  • March 10, 2022

我有 2 個幾乎相同的虛擬機,除了主機名和不重要的東西(據我所知)。

在這些虛擬機上,我執行nginx/1.14.2作為代理,後面有一個Apache/2.4.38網路伺服器,包括php-7.4.28mysql-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”的伺服器,也沒有等待任何響應。該腳本隨後立即執行。

引用自:https://unix.stackexchange.com/questions/693744