1つのWordPressサイトのみをホストするNGINX / PHPのパフォーマンスが低下するのはなぜですか?

1つのWordPressサイトのみをホストするNGINX / PHPのパフォーマンスが低下するのはなぜですか?

(Proxmox)ハイパーバイザーでLXCコンテナを作成しました(パフォーマンスの問題なしに複数のコンテナを実行します)。 NGINXとPHP7.4がインストールされており(現在)、WordPressサイトは1つだけホスティングしています。 Webサイトは非常にシンプルで、WooCommerceプラグイン、WPMLプラグイン、FooEventsプラグインのみが含まれており、デフォルトのテンプレート(Twenty Twenty)を使用しています。 3つの製品のみが構成されています。開発の目的で、現在はホストファイルエントリを介して内部ネットワークを介してのみサイトにアクセスします。

続行する前にハードウェア設定を指定してください。

管理プログラム

  • HP DL360G9
  • VMおよびLXC専用2TB raid 1 Enterprise HP SSD
  • Proxmox OS用128GB raid1 Enterprise HP SSD
  • 2つのXeon E5-2680v3
  • ほぼ実行されます。同じ仕様のコンテナ10個(そのうち1つはWebサーバー)
  • 平均CPU負荷2%
  • 平均メモリ使用量10%
  • 平均IOレイテンシ0%
  • 平均SWAP使用量0%
  • 平均ネットワークトラフィック<50kbps

LXCコンテナ仕様

  • 4096MB RAM
  • Vコア2個
  • 50GBのストレージスペース
  • 平均CPU負荷0.2%
  • 平均メモリ使用量3%
  • 平均SWAP使用量0%
  • 平均ネットワークトラフィック<10kbps

Webサイトのページにアクセスすると、ハイパーバイザーとLXCコンテナがほぼアイドル状態であるため、より高速であると考えましたが、パフォーマンスは許容可能です(約300ms - 750ms)。

管理パネル(/wp-admin)で作業するときのパフォーマンスは非常に低いです。たとえば、ログインしてダッシュボードからプラグインページに移動した場合は、31時間待つ必要があります。毎回秒 ここに画像の説明を入力してください。

トピックページにアクセスするのに約16秒かかります。 ここに画像の説明を入力してください。 ページの読み込み中に、LXCコンテナには大きなCPU、RAM、またはディスクIOスパイクが発生せず、NGINXまたはPHPに責任があると考える他の要因もありません。

server {
        listen 80;
        listen [::]:80;

        # *** is just for obfuscastion
        root /var/www/webshop.internal.***.de;

        index index.php index.html index.htm index.nginx-debian.html;

        server_name webshop.internal.axxteq.de;

        location / {
              try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                 try_files $uri =404;
                 fastcgi_split_path_info ^(.+\.php)(/.+)$;
                 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
                 fastcgi_index index.php;
                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                 include fastcgi_params;
        }
}

/var/logs/nginx/error.logまたは、エラーログにエントリがありません/var/log/php7.4-fpm.log。これをデバッグする方法や問題が何であるかを見つける方法がわかりません。この質問に追加したNGINX設定に加えて、追加設定が必要ですか?

答え1

リスニングでは、これは接続できないリモートサーバーにアクセスしようとするいくつかのコードでよく見られる問題のようです。

たとえば、ベンダーのウェブサイトと通信してアップデートを通知するプラグイン(最も一般的)

この場合に発生する遅延は、カール要求のタイムアウトです。PHP-FPMロギングを有効にするこれにより、待機を引き起こしたコードを確認できます。

関連情報