1

皆さん、こんにちは!

私は前にやったことのないような問題に直面しており、半日のグーグル検索(特にStackOverflow、Nginxコミュニティなども調べて)は何も役に立ちませんでした。

Nginx (1.4) + PHP-fpm (5.4) がインストールされたサーバーがあります。Nginx 構成には、約 100 以上のサーバー (ドメイン) があります。実際、これらのドメインはさまざまな人々に「属して」おり、これらのドメインごとに、Nginx と PHP による全体的な CPU、ディスク、およびトラフィックの使用量を大まかに知る必要があります。各ドメインの CPU とディスクの使用量を個別に取得する方法がわからないため、アクセス ログを分析することでトラフィックの使用量を簡単に計算できます :( 統計はリアルタイムである必要はありません。統計は正確である必要はありません - +/-10% は絶対に問題ありません. それでも、有用な解決策は見当たりません.

ご意見ありがとうございます。

PS Web サイトごとに個別の OpenVZ マシンを実行できることはわかっています。これにより、それぞれの CPU とディスクの使用量を簡単に測定できますが、このソリューションは気に入りません。別の方法を見つけるのを手伝ってください!

4

1 に答える 1

0

私が見つけた限りでは、Nginx も PHP-FPM もそのようなメトリクスを組み込みでサポートしていません。そのため、Nginx 内でサイトごとのリソース消費を測定する方法はないようです。しかし、PHP によって使用されるリソースを測定するためのトリックがあります (DB が別のマシン上にある場合、ほとんどの場合、すべての消費リソースの少なくとも 95% です)。これを行うには、PHP-FPM 構成でサイトごとに個別のプールを作成する必要があります。

[site-A]
listen = /var/run/php5-fpm.A.sock
user = user-A
group = user-A
(...)

[site-B]
listen = /var/run/php5-fpm.B.sock
user = user-B
group = user-B
(...)

次に、各サイトの適切なソケットを使用して要求を FCGI に渡すように Nginx をセットアップする必要があります。これで、標準のアカウンティング ユーティリティを使用してユーザーごとのリソース消費量を測定できるようになりました。実際、これはサイトごとのデータを意味します。それでも、このデータは Nginx 自体が消費するリソースを考慮していません。しかし、私が見る限り、私が望んでいた 90% の精度よりもはるかに優れています。さらに良くするために、サイトごとに個別のログを使用して静的ファイルのトラフィックを計算できます。この値は明らかに、Nginx 自体によるディスク使用量に非常に近くなります。したがって、大量の静的ファイルを提供しているサイトを見逃すことはありませんが、PHP によるリソースの消費は中程度です。

于 2013-09-19T11:46:01.423 に答える