每个人都过得愉快!
我面临的问题就像我以前从未做过的那样半天的谷歌搜索(特别是通过StackOverflow,Nginx社区等)也没有发现任何有用的东西。
我安装了Nginx(1.4)+ PHP-fpm(5.4)的服务器。 Nginx配置中有大约100多个服务器(域)。事实上,这些域“属于”不同的人,我需要知道Nginx和PHP对每个域的粗略的整体CPU,磁盘和流量使用情况。我可以通过分析访问日志轻松计算流量使用情况,我不知道如何为每个域单独获取CPU和磁盘使用情况:(统计数据不需要是实时的 - 如果我获得每日总体值,没关系。统计数据不需要精确 - +/- 10%是绝对可以的。我仍然没有看到任何有用的解决方案。
提前感谢任何想法!
P.S。我知道我可以为每个网站运行一个单独的OpenVZ机器,它允许我轻松测量每个网站的CPU和磁盘使用情况,但我不喜欢这个解决方案。请帮助我找到另一种方法!
答案 0 :(得分:1)
到目前为止,正如我所知,Nginx也没有PHP-FPM内置支持这样的metrix;所以,似乎无法衡量Nginx内部的每站点资源消耗。但是有一种方法可以衡量PHP使用的资源(如果数据库位于不同的机器上,几乎总是至少占所有消耗资源的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的资源消耗是适中的。