nginx performance monitor

Nginx中的stub_status模块主要用于查看Nginx的一些状态信息

示例

Active connections: 2
server accepts handled requests
12055 12055 34907
Reading: 0 Writing: 1 Waiting: 1

这些状态信息包括

1. Active connections:

对后端发起的活动连接数.

2. server accepts handled requests:

Nginx总共处理了12055个连接,成功创建12055握手(证明中间没有失败的),总共处理了34907个请求.

3. Reading:

Nginx读取到客户端的Header信息数.

4. Writing:

Nginx 返回给客户端的Header信息数.

5. Waiting:

开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接.所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中.

开启Nginx的stub_status模块

在Server块中添加如下location规则,重新加载配置文件。

location /nginx-status {
stub_status on;
access_log off;
#加入访问限制
allow 127.0.0.1;
deny all;
}

通过/nginx-status便可以查看nginx的性能参数状态。
在linux中默认是不会将stub_status编译进来的,所以要开启此功能,需要编译时增加配置 ./configure –with-http_stub_status_module

但是这样这样简单的即时值无法直观的展示nginx负载、性能的变化趋势,如果能够有一个实时趋势图是最好了。
如下代码使用highchart linechart图来展示nginx负载、性能趋势。
javascript code

$(function() {
$(document).ready(function() {
Highcharts.setOptions({
global: {
useUTC: false
}
}); function initData() {
var data = [],
time = (new Date()).getTime(),
i;
for (i = -100; i <= 0; i++) {
data.push({
x: time + i * 1000,
y: 0
});
}
return data;
}
$('#container').highcharts({
chart: {
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function() {
var series = this.series;
setInterval(function() {
$.get('/nginx-status', {}, function(data) {
var status = data.split(' ');
var x = (new Date()).getTime(); // current time
var y0 = Number(status[2]);
var y1 = Number(status[11]);
var y2 = Number(status[13]);
var y3 = Number(status[15]);
series[0].addPoint([x, y0], true, true);
series[1].addPoint([x, y1], true, true);
series[2].addPoint([x, y2], true, true);
series[3].addPoint([x, y3], true, true);
}, 'text');
}, 3000);
}
}
},
title: {
text: 'nginx stub-status'
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150
}, tooltip: {
formatter: function() {
return '<b>' + this.series.name + '</b><br/>' +
Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
Highcharts.numberFormat(this.y, 2);
}
},
legend: {
enabled: true
},
series: [{
name: 'Active connections',
data: (function() {
var data = [],
time = (new Date()).getTime(),
i;
for (i = -100; i <= 0; i++) {
data.push({
x: time + i * 1000,
y: 0
});
}
return data;
})()
}, {
name: 'Reading',
data: initData()
}, {
name: 'Writing',
data: initData()
}, {
name: 'Waiting',
data: initData()
}]
});
}); });

html page

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<title> performance monitor</title>
<script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script>
<script>
/* highchart code */
</script>
</head>
<body>
<div id="container" style="min-width:700px;height:400px"></div>
</body>
</html>

监控图像如下

nginx performance monitor的更多相关文章

  1. Orion Network Performance Monitor 软件在网络管理中的应用

    Orion Network Performance Monitor 软件在网络管理中的应用       Orion Network Performance Monitor是完全的带宽性能和故障管理软件 ...

  2. Send email alert from Performance Monitor using PowerShell script (检测windows服务器的cpu 硬盘 服务等性能,发email的方法) -摘自网络

    I have created an alert in Performance Monitor (Windows Server 2008 R2) that should be triggered whe ...

  3. Performance Monitor采集性能数据

    Performance Monitor采集性能数据 Windows本身为我们提供了很多好用的性能分析工具,大家日常都使用过资源管理器,在里面能即时直观的看到CPU占用率.物理内存使用量等信息.此外新系 ...

  4. 使用performance monitor 查看 每一个cpu core的cpu time

    使用performance monitor 查看 每一个cpu core的cpu time: 打开performance monitor,添加 counter 如下 运行一段cpu bound 的代码 ...

  5. 实战Performance Monitor监测EnyimMemcached

    首先要将EnyimMemcached安装至Windows Performance Counters中. 将Enyim.Caching.dll复制到一个文件夹中 在命令行中进入.NET Framewor ...

  6. 【Azure微服务 Service Fabric 】在SF节点中开启Performance Monitor及设置抓取进程的方式

    前提条件 当我们观察到SF中某一个节点出现CPU不正常的情况,但是由于不能肉眼长期观察,所以可以通过开启Performance Monitor的方式来获取每一个进程的%Processer Time的方 ...

  7. windows Sql server performance monitor

    对于sql server 性能的监控主要从2个方面: 1. sql server自带的监控 Management->SQL Server Logs->Activity Monitor 在这 ...

  8. 通过Performance Monitor观察程序内存使用情况

    在学习C# 数据类型和内存等知识点时,看到利用Windows系统下的Performance Monitor-性能监测工具查看程序内存的使用情况.使用过程中遇到个别小问题,现在把观察程序内存的操作步骤简 ...

  9. Greenplum记录(一):主体结构、master、segments节点、interconnect、performance monitor

    结构:Client--master host--interconnect--segment host 每个节点都是单独的PG数据库,要获得最佳的性能需要对每个节点进行独立优化. master上不包含任 ...

随机推荐

  1. 测试dockerfile

    测试dockerfile是否ok(比如我的Dockerfile在deploy目录下) docker build -t my_image -f deploy/Dockerfile . docker im ...

  2. 结算凭证中委托付款部分sql

    select a.makevdate,a.summary,a.totalcredit,a.cent_typeid,c.accidname from fts_voucher a,fts_voucher_ ...

  3. PLSQL Developer图形化窗口创建数据库全过程

    1.用系统管理员登陆,我这里用户名是system,密码是manager2.首先建立表空间(tablespaces),点击file->new->sql window   create tab ...

  4. win7、linux安装使用pip、mitmproxy

    安装pip https://pip.pypa.io/en/latest/installing.html 步骤: 下载 https://bootstrap.pypa.io/get-pip.py pyth ...

  5. JQuery 在循环中设置事件,最后一个覆盖了前面所有的设置

    function setValidation() {         for (i = 0; i < alValidations.length; i++) { //alValidations是一 ...

  6. OpenCV2.3.1在Win7+VS2010下的配置过程(转)

    转自:http://blog.csdn.net/mygis2005/article/details/10472717 这篇博客很好的解决了我遇到的问题,所以转到自己的博客里,方便以后进行查阅. 1.  ...

  7. Xcode8支持iphone4s真机调试

    由于Apple公司升级不ios到10.0以上版本,因为硬件.性能等因素,不再支持iphone4,iphone4s,ipad1, ipad2,ipad3等老款设备.所以这些老款设备无法升级到ios10. ...

  8. MyEclipse怎么设置个性化代码注释模板

    打开Eclipse/MyEclipse工具,打开或创建一个Java工程,点击菜单Window->Preferences弹出首选项设置窗口   展开左侧Java->Code Style-&g ...

  9. 类的高级:访问修饰符、封装、静态类成员static、内部类;

    访问修饰符: 公开访问(public):对所有子类,非子类访问: 受保护的(protected):只有同包子类.非子类.不同包子类可访问,不同包非子类不可访问: 私有的(private):只有本类可访 ...

  10. ZeroC Ice 暂记

    摘自: http://weibo.com/p/1001603869896789339575 原文地址: http://www.oschina.net/question/865233_242146 吴治 ...