1

祝大家有美好的一天!

我面临着一个前所未有的问题,半天的谷歌搜索(特别是通过 StackOverflow、Nginx 社区等)也没有发现任何有用的东西。

我有一台安装了 Nginx (1.4) + PHP-fpm (5.4) 的服务器。Nginx 配置中有大约 100 多个服务器(域)。事实上,这些域“属于”不同的人,我需要知道 Nginx 和 PHP 对每个域的总体 CPU、磁盘和流量使用情况。我可以通过分析访问日志轻松计算流量使用情况,因为我不知道如何分别获取每个域的 CPU 和磁盘使用情况:( 统计数据不需要是实时的 - 如果我得到每天的总体值,没关系。统计数据不需要精确 - +/-10% 绝对可以。但我仍然没有看到任何有用的解决方案。

提前感谢您的任何想法!

PS 我知道我可以为每个网站运行单独的 OpenVZ 机器,它可以让我轻松测量每个网站的 CPU 和磁盘使用情况,但我不喜欢这个解决方案。请帮我找到另一种方法!

4

1 回答 1

0

据我所知,PHP-FPM 和 Nginx 都没有内置对这种 metrix 的支持;因此,似乎没有办法衡量 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
(...)

然后我们需要设置 Nginx,以便它使用每个站点的适当套接字将请求传递给 FCGI。瞧,现在我们可以使用标准会计实用程序来衡量每个用户的资源消耗,实际上这意味着每个站点的数据。这些数据仍然没有考虑 Nginx 本身消耗的资源;但是,据我所知,它仍然比我希望的 90% 精度要好得多。为了让事情变得更好,我可以为每个站点使用单独的日志来计算静态文件的流量,这个值显然非常接近 Nginx 本身的磁盘使用量。因此,我不会错过提供大量静态文件而 PHP 的资源消耗适中的站点。

于 2013-09-19T11:46:01.423 回答