性能测试之Redis和Nginx 性能监控
Posted 七月的小尾巴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试之Redis和Nginx 性能监控相关的知识,希望对你有一定的参考价值。
redis 监控
redis 监控一共有两种方式,一种是通过info命令,还有一种是使用redis-stat工具。两者其实本质是一样的,不过一个是命令行的模式下查看监控数据,而另外一种是图形化页面查看。但是实际上,我们性能测试主要更多的是关注性能测试指标本身。
首先,我们来查看一下命令行模式。---- info
info命令展示了redis当前的一些实时状态。下方我们可以看到redis中返回的一些参数。
在性能测试中,我们主要是关注以下这些参数。
clients
- connected_clients:当前已经连接的客户端数量
- blocked_clients:正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端数量
通常在看到blocked_clients,我们需要跟开发沟通,为什么在连接客服端的时候,会有这么多连接阻塞,如果不是必要的设计,就需要做性能优化。
Memory
memory中主要关注的是used_memory_rss_human,这个是用来关注我们redis中的内存够不够用。(redis中可以配置最大内存,这里可以查看我们距离最大内存还有多少)
- used_memory_rss_human:这个是以人类可读的格式,从操作系统的角度,返回redis已分配的内存总量(俗称常驻集大小)。这个值和top、ps等命令的输出一致。
比如我们redis没有内存的情况下,默认情况下redis会删除一些长期未使用的内存腾出内存空间。
Status 缓存命中率
- keyspace_hits:命中次数
- keyspace_misses:没命中的次数
命中率 = keyspace_hits / (keyspace_hits + keyspace_misses)
对于程序来说,命中率越高则意味着越好。
redis-stat工具
后面发现除了在命令行之外还提供了图形化的一些监控,可以直观的查看Redis各个实例的一个使用情况。
redis-stat安装和使用:
-
在redis服务器上执行如下命令
java -jar redis-stat-0.4.14.jar - server [--auth 密码]
-
关闭Linux防火墙,在浏览器输入服务器IP+63790:/
Nginx监控
nginx重点监控连接数,一般是通过 netstat 命令来监控。Nginx的连接数主要取决于我们的配置,可以在 nginx.conf 文件中查看,这里我们配置的 1024,然后worker_processes是2,那么最大连接数为 worker_connections * worker_processes = 2048.
监控80端口的连接数情况
安装: yum install -y net-tools
netstat -anp | grep 80
查看80端口的连接数情况
netstat -anp | grep 80 |wc -l
查看nginx所有连接数的状态,分类展示
netstat -anp | grep 80 | awk '{print $6}' | sort | uniq -c | sort -rn
以上是关于性能测试之Redis和Nginx 性能监控的主要内容,如果未能解决你的问题,请参考以下文章
redisbench和reids-cli测试监控redis状态和性能