参考文章:https://blog.csdn.net/zouhui1003it/article/details/79397987
目录
1 引言
1.1 编写目的
1.2 适用对象和范围
1.3 参考文档
2 业务指标监控
2.1 监控指标
2.2 监控工具
3 操作系统指标监控
3.1 Linux
3.2 Windows
4 应用中间件指标监控
4.1 Tomcat
4.2 JBoss
4.3 IIS监控
4.4 JVM
4.5 .NET CLR
5 数据库指标监控
5.1 MySQL
5.2 SQLServer
5.3 MonogoDB
5.4 Redis
6 前端指标监控
6.1 监控指标说明
6.2 监控工具
访问性能测试控制台
本文档主要目标是规范使用性能测试过程中需监控的各项技术指标,描述各指标项的具体含义,并给出相应的监控工具与方法说明。本文档将作为测试监控的指导性规范,用以选取监控关注指标,使用监控工具。
监控指标及监控工具适用于使用性能测试进行性能测试项目技术质量评价依据。 预期读者为测试管理人员、测试实施人员、技术支持人员、项目质量管理人员、项目管理人员等系统技术质量相关人员。
相关的指标定义及解释可以参照:性能测试指标,本章可能会增加及减少相关指标的描述,并不与性能测试指标中相关指标冲突。
业务指标主要包括并发用户数、响应时间、处理能力,成功率这四个指标,目前大部分压测工具都能将这些指标放在压测工具里面。
性能测试分布式压测工具,将相关业务指标集成在平台上。
通过后台日志log,采用分析工具也可进行分析得出TPS,响应时间等。
指标类型 | 指标名称 | 指标描述 |
---|---|---|
CPU | CPU utilization | CPU 的使用时间百分比 |
System mode CPU utilization | 在系统模式下使用 CPU 的时间百分比 | |
User mode CPU utilization | 在用户模式下使用 CPU 的时间百分比 | |
Memory | Page-in rate | 每秒钟读入到物理内存中的页数 |
Page-out rate | 每秒钟写入页面文件和从物理内存中删除的页数 | |
Paging rate | 每秒钟读入物理内存或写入页面文件的页数 | |
Disk | Disk rate | 磁盘传输速率 |
3.1.2.1 性能测试
性能测试压测工具监控操作系统指标主要有:
CPU%:所有CPU资源利用率
网络流量:每秒入网出网多少Kb
磁盘:每秒读写多少Kb
3.1.2.2 命令
Linux提供丰富的命令进行监控,针对CPU、Memory、I/O等有一些列命令及参数进行监控。具体如下:
top : 整体查看资源情况。
sar :CPU资源消耗
vmstat:内存相关消耗
iostat: 磁盘相关消耗
………
具体用法和参数,可以参照联机帮助(man top等)。
3.1.2.3 Shell
可以将以上命令通过shell来包装,每隔多少秒监控一次,总共监控多少次,将监控结果写到文件里面。
例如:下面shell就是将CPU Load每隔3秒写到文件里面。
while true ; do uptime | awk -F' average: ' '{print $2}' ;sleep 3;done >> `hostname`_`date +%Y%m%d_%H%M`.uptime
3.1.2.4 nmon
Nmon安装 将 nmonXXX.tar.gz 文件复制到计算机。如果使用 FTP,请记住使用二进制模式。
解压该文件,运行 gzip -d nmonXXX.tar.gz
提取该文件,运行tar xvf nmonXXX.tar
Nmon实时监控 登陆要监控的系统,进入nmon安装目录中
输入命令nmon,运行 nmon(如root用户可能需要输入./nmon).显示的起始屏幕及CPU等信息。如图:
依次按c,m,d即可显示CPU,内存,磁盘等信息。如图:
Nmon运行时的键盘命令
命令 | 说明 |
---|---|
c | 提供关于物理CPU使用的详细信息 |
m | 提供内存使用的详细信息:系统(内核)和进程,活动虚拟内存 |
d | 提供关于磁盘,磁盘类型大小,可用空间,卷组,适配器等更详细的信息 |
t | 当前进程详细情 |
P | Paging space 使用情况 |
k | 显示内核信息 |
+ | Nmon 结果保存为文件 |
提供的监控指标比较丰富,包括CPU、内存、网络、磁盘以及每个进程的资源。
3.2.2.1 性能测试
同3.1.2.1 性能测试
3.2.2.2 资源管理器
Windows操作系统自带的windows资源管理器,在任务栏里面点击右键,启动任务管理器:
点击性能面板,再点击资源监视器:
3.2.2.3 性能监视器
Windows有自带的性能监视器,可以指定相关的监控指标进行监控,将结果保存为文件,从windows控制面板->管理工具->性能监视器->新建数据搜集器,添加你感兴趣的指标计数器。
Tomcat主要监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。
4.1.2.1 Tomcat提供的manager
通过使用Applications Manager(又称opManager)来进行监控。
使用这种方式,所监控Tomcat必须运行manager应用,缺省情况下,该应用总是运行在服务器中的。
增 加Manager Role: 访问manager应用的用户的角色权限必须是 manager. 修改
在5.x和6.x中创建一个manager角色的用户,用户名为admin,密码为chenfeng:
在 7.x中创建一个manager角色的用户,用户名为admin,密码为xxxxx:
通过浏览器访问http://localhost:8080/manager/jmxproxy ,输入用户名密码,然后就可以看到返回了所有的监控信息
4.1.2.2 Probe
vi /usr/local/tomcat/conf//tomcat-users.xml
设置环境变量,获取服务器状态 # vi /etc/profile JAVA_OPTS=-Dcom.sun.management.jmxremote export JAVA_OPTS
重启动服务器
4.1.2.3 JConsole
Linux 系统下,需要修改 tomcat主目录\bin\ catalina.sh文件 增加一行 CATALINA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=218.28.198.188 -Dcom.sun.management.jmxremote.port=9527 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" 然后使用JConsole就可以监控Tomcat。 点击%JAVA_HOME%\bin下的jconsole.exe即可
4.1.2.4 JProfile
设 置好之后, 服务器上的应用,会等待你客户端连接上以后,才真正启动应用。 Jprofile连接上之后,则可以看到一下界面了, 它可以帮助你分析内存信息,线程信息,jdbc连接等等, 以下是监控本地开发机的应用情况,可以看到,哪个线程在跑哪些SQL,由哪些方法调用的。
JBoss主要监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。
4.2.2.1 JBoss管理控制台
如果需要监控jboss的系统资源,如:jboss的基本配置情况,jvm的利用率,线程池的使用情况,可以使用web-console进行监控。
web- console-users.properties、web-console-roles.properties定义了访问 web-console的用户、用户角色,具体位置,使用find /jboss -name web-console-users.properties 找到以后可以修改用户名、密码。
监控 使用http://localhost:8080/web-console/ 中,获取当前JBOSS-WEB应用模块的负载分担情况,并可以查看到当前JAVA虚拟机的内存使用情况,及线程池使用情况。 使用http://localhost:8080/web-console/status,可以进一步监控到每个线程的状态。
4.2.2.2 Probe
具体可以参照4.1.2.2 Probe
4.2.2.3 JConsole
具体可以参照4.1.2.3 JConsole
4.2.2.4 JProfile
具体可以参照4.1.2.4 JProfile
主要针对会话、事务、缓存、内存、线程池等进行监控,具体如下:
4.3.2.1 集成的性能监视器
在性能监视器里面添加IIS应用计数器即可。
JVM关注的指标主要是java虚拟机内存年轻代、年老代堆大小以及GC频率及回收时间。 JVM堆内存结构如下:
4.4.2.1 JVM自带的jstat
4.4.2.2 shell
将jstat中感兴趣的相关指标通过shell保存为文件,例如以下shell是每隔2秒钟将jstat监控的信息保存到文件中。
while true;do /usr/local/java/bin/jstat -gcutil `/usr/local/java/bin/jps | grep -v 'Jps' | grep -v 'Jstat' | egrep 'OrderPlatformLauncher|Bootstrap|TcpServerLauncher'| awk '{print $1}'` | grep -v 'S0' | awk '{print strftime("%m-%d-%H:%M:%S",systime()),$0}';sleep 2;done >> `hostname`_`date +%Y%m%d_%H%M`.jstat
4.4.2.3 jmap
jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等
命令格式 jmap [options] pid -dump:[live,]format=b,file=
因为在dump:live前会进行full gc,因此不加live的堆大小要大于加live堆的大小 -finalizerinfo 打印等待回收对象的信息
-heap 打印堆总结
-histo[:live] 打印堆的对象统计,包括对象数、内存大小等等
-permstat 打印java堆perm区的classloader统计
-F 强制,在jmap -dump或jmap -histo中使用,如果pid没有相应的回复 -J 提供jvm选项,如:-J-Xms256m
4.4.2.4 jstack
4.4.2.5 JProfile
JProfile也可以监控JVM,并且以图形化的方式进行展示,方便信息的查看及分析。具体可以参照4.1.2.4章节。
4.4.2.6 JConsole
JConsole也可以监控JVM,并且以图形化的方式进行展示,方便信息的查看及分析。具体可以参照4.1.2.3章节。
.NET CLR是有微软开发的一台虚拟平台,支持C#/C++/VB等,此虚拟平台功能类似于JVM. .NET CLR主要功能如下:
性能计数器 说明
指标 | 解释 |
---|---|
# Bytes in all Heaps(所有堆中的字节数) | 显示以下计数器值的总和,此计数器指示在垃圾回收堆上分配的当前内存(以字节为单位)。 |
# GC Handles(GC 处理数目) | 显示正在使用的垃圾回收处理的当前数目。 |
# Gen 0 Collections(第 2 级回收次数) | 显示自应用程序启动后第 0 级对象(即最年轻、最近分配的对象)被垃圾回收的次数。 |
# Gen 1 Collections(第 2 级回收次数) | 显示自应用程序启动后对第 1 级对象进行垃圾回收的次数。 |
# Gen 2 Collections(第 2 级回收次数) | 显示自应用程序启动后对第 2 级对象进行垃圾回收的次数。此计数器在第 2 级垃圾回收(也称作完整垃圾回收)结束时递增。 |
# Induced GC(引发的 GC 的数目) | 显示由于对 GC.Collect 的显式调用而执行的垃圾回收的峰值次数。让垃圾回收器对其回收的频率进行微调是切实可行的。 |
# of Pinned Objects(钉住的对象的数目) | 显示上次垃圾回收中遇到的钉住的对象的数目。钉住的对象是垃圾回收器不能移入内存的对象。 |
# of Sink Blocks in use(正在使用的接收块的数目) | 显示正在使用的同步块的当前数目。同步块是为存储同步信息分配的基于对象的数据结构。 |
# Total committed Bytes(提交字节的总数) | 显示垃圾回收器当前提交的虚拟内存量(以字节为单位)。提交的内存是在磁盘页面文件中保留的空间的物理内存。 |
# Total reserved Bytes(保留字节的总数) | 显示垃圾回收器当前保留的虚拟内存量(以字节为单位)。保留内存是为应用程序保留(但尚未使用任何磁盘或主内存页)的虚拟内存空间。 |
% Time in GC(GC 中时间的百分比) | 显示自上次垃圾回收周期后执行垃圾回收所用运行时间的百分比。 |
Allocated Bytes/second(每秒分配的字节数) | 显示每秒在垃圾回收堆上分配的字节数。 |
Finalization Survivors(完成时存留对象数目) | 显示因正等待完成而从回收后保留下来的进行垃圾回收的对象的数目。如果这些对象保留对其他对象的引用,则那些对象也保留下来,但此计数器不对它们计数。 |
Gen 0 heap size(第 2 级堆大小) | 显示在第 0 级中可以分配的最大字节数;它不指示在第 0 级中当前分配的字节数。 |
Gen 0 Promoted Bytes/Sec(从第 1 级提升的字节数/秒) | 显示每秒从第 0 级提升到第 1 级的字节数。内存在从垃圾回收保留下来后被提升。 |
Gen 1 heap size(第 2 级堆大小) | 显示第 1 级中的当前字节数;此计数器不显示第 1 级的最大大小。 |
Gen 1 Promoted Bytes/Sec(从第 1 级提升的字节数/秒) | 显示每秒从第 1 级提升到第 2 级的字节数。在此计数器中不包括只因正等待完成而被提升的对象。 |
Gen 2 heap size(第 2 级堆大小) | 显示第 2 级中当前字节数。不直接在此代中分配对。 |
Large Object Heap size(大对象堆大小) | 显示大对象堆的当前大小(以字节为单位)。垃圾回收器将大于 20 KB 的对象视作大对象并且直接在特殊堆中分配大对象; |
Promoted Finalization-Memory from Gen 0(从第 1 级提升的完成内存) | 显示只因等待完成而从第 0 级提升到第 1 级的内存的字节数。 |
Promoted Finalization-Memory from Gen 1(从第 1 级提升的完成内存) | 显示只因等待完成而从第 1 级提升到第 2 级的内存的字节数。 |
Promoted Memory from Gen 0(从第 1 级提升的内存) | 显示在垃圾回收后保留下来并且从第 0 级提升到第 1 级的内存的字节数。 |
Promoted Memory from Gen 1(从第 1 级提升的内存) | 显示在垃圾回收后保留下来并且从第 1 级提升到第 2 级的内存的字节数。 |
4.5.2.1 集成的性能监视器
Windows性能监视器中,可以将.NET CLR Memory中相关的计数器加入到监控中。
4.5.2.2 .NET Memory Profiler
Profiler可以调试4种类型的.NET程序,分别为:
Profler调试共有三种方式选择:
如果需要设置启动参数,则设置好命令行参数以及工作目录.
选择”Next”进行收集数据的一些选项设置,一般直接按”Star”按钮开始调试程序.
查看收集数据
Profiler上有6个页卡,分别为:
Type/Resource 类型/资源页卡
主要针对SQL耗时、吞吐量(QPS/TPS)、命中率、锁等待等指标进行监控。
5.1.2.1 命令
5.1.2.2 iDBCloud
MySQL Status Inoformation : MySQL状态信息
【ins】表示insert语句每秒执行次数
【upd】表示update语句每秒执行次数
【del】表示delete语句每秒执行次数
【sel】表示select语句每秒执行次数
【hit%】表示缓存命中率,主要指innodb_buffer_pool的命中率
InnoDB Row Operation : InnoDB存储引擎行操作
【read】表示InnoDB存储引擎表的读取记录行数
【insert】表示InnoDB存储引擎表的写入记录行数
【update】表示InnoDB存储引擎表的更新记录行数
【delete】表示InnoDB存储引擎表的写入记录行数
Thread : 连接数相关
【running】表示活跃的连接数,即正在执行sql的连接
【connected】表示连接在实例上的空闲连接,即未执行sql的连接
Network : 网络流量,单位为KB
【in】表示进入实例的网络流量
【out】表示流出实例的网络流量
5.1.2.3 PHPMyAdmin
phpMyAdmin 是Mysql的管理工具。相比一些Mysql客户端的GUI管理工具(如“MySQL Administrator”),phpMyAdmin是Web模式的。phpMyAdmin 是以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的资料库管理工具。
在phpMyAdmin直接点击状态,可以查看SQL查询,InnoDB,Cache,线程等状态信息。
5.1.2.4 性能测试
通过性能测试RDS监控,可以监控当前活跃连接数、IOPS、TPS、磁盘容量、QPS。
监控项 | 解释 |
---|---|
连接数 | 当前总连接数 |
缓存命中率 | 缓存命中率 |
平均每秒全表扫描数 | 平均每秒全表扫描次数 |
每秒SQL编译 | 实例中每秒编译的SQL语句数 |
每秒检查点写入Page数 | 每秒检查点写入Page数 |
每秒登录次数 | 每秒登录次数 |
每秒锁超时次数 | 每秒锁超时次数 |
每秒死锁次数 | 每秒死锁次数 |
每秒锁等待次数 | 每秒锁等待次数 |
网络流量 | SQL Server实例平均每秒钟输入和输出的流量。单位为KB。 |
QPS/TPS | 平均每秒SQL语句执行次数和事务数。 |
CPU使用率 | RDS实例CPU使用率(占操作系统总数) |
IOPS | RDS实例的IOPS(每秒IO请求次数) |
磁盘空间 | RDS实例空间占用 |
5.2.2.1 SQLServer活动监视器
SQL Server 数据库提供了专门的工具对数据库的活动进行监控,这个工具称为“活动监视器”。使用活动监视器可以获取与数据库引擎相关的用户连接状态及其所保存的锁等有用信息。
该“活动监视器”对话框包含3组选项,分别是“进程信息”选项、“按进程分类的锁”选项和“按对象分类的锁”选项。
“进程信息”选项:包含有关连接到数据库的信息
“按进程分类的锁”选项:显示按连接对锁进行排序
“按对象分类的锁”选项:显示按对象名称对锁进行排序
应用筛选器可以减少显示的信息量。对数据库锁定问题进行故障排除时,可以使用“活动监视器”终止死锁或无响应的进程。
5.2.2.2 SQLServer Profile
SQL Server Profiler(事件探查器)是SQL跟踪的图形用户界面,用于监视SQL Server 数据库引擎或SQL Server Analysis Services(分析服务)的实例。用户可以捕获有关每个事件的数据,并将其保存到文件或表中供以后分析。
“事 件选项”选项卡包含一个网格控件,网格控件是包含所有可跟踪事件类的表。每个事件类在表中占一行。根据用户所连接的服务器的类型和版本的不同,事件类会略 有不同。事件类是由网格的“Events”列进行标识,并按事件类别进行分组。其余列则列出每个事件类可以返回的数据列。
完成设置后,单击“确定”按钮,返回“跟踪属性”对话框。
5.2.2.3 性能监视器
系统性能监视器可以用于监视系统资源的使用率。它使用计数器形式收集和查看服务器资源(如处理器和内存使用的情况)和许多SQL Server 2005资源(如锁和事务)的实时性能数据。
5.2.2.4 iDBCloud
参照5.1.2.2 iDBCloud.
主要监控如下指标:
5.3.2.1 MonogoStat命令
mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。
5.3.2.2 Profiler
类似于MySQL的slow log, MongoDB可以监控所有慢的以及不慢的查询。
Profiler默认是关闭的,你可以选择全部开启,或者有慢查询的时候开启。 例如:
> use test
switched to db test
> db.setProfilingLevel(2);
{"was" : 0 , "slowms" : 100, "ok" : 1} // "was" is the old setting
> db.getProfilingLevel()
查看Profiler日志:
> db.system.profile.find().sort({$natural:-1})
{"ts" : "Thu Jan 29 2009 15:19:32 GMT-0500 (EST)" , "info" :
"query test.$cmd ntoreturn:1 reslen:66 nscanned:0 query: { profile: 2 } nreturned:1 bytes:50" ,
"millis" : 0} ...
3个字段的意义ts:时间戳、info:具体的操作、millis:操作所花时间,毫秒。
5.3.2.3 使用profiler
类似于MySQL的slow log, MongoDB可以监控所有慢的以及不慢的查询。
Profiler默认是关闭的,你可以选择全部开启,或者有慢查询的时候开启。
> use test
switched to db test
> db.setProfilingLevel(2);
{"was" : 0 , "slowms" : 100, "ok" : 1} // "was" is the old setting
> db.getProfilingLevel()
查看Profile日志
> db.system.profile.find().sort({$natural:-1})
{"ts" : "Thu Jan 29 2009 15:19:32 GMT-0500 (EST)" , "info" :
"query test.$cmd ntoreturn:1 reslen:66 nscanned:0 query: { profile: 2 } nreturned:1 bytes:50" ,
"millis" : 0} ...
3个字段的意义ts:时间戳、info:具体的操作、millis:操作所花时间,毫秒
注意,造成慢查询可能是索引的问题,也可能是数据不在内存造成因此磁盘读入造成。
5.3.2.4 使用Web控制台
Mongodb自带了Web控制台,默认和数据服务一同开启。他的端口在Mongodb数据库服务器端口的基础上加1000,如果是默认的Mongodb数据服务端口(Which is 27017),则相应的Web端口为28017
这个页面可以看到
5.3.2.5 MongoDB Monitoring Service
MongoDB Monitoring Service(MMS)是Mongodb厂商提供的监控服务,可以在网页和Android客户端上监控你的MongoDB状况。
Redis主要监空Server、Clients、Memory、Persistence、Stats、Replication、CPU、Keyspace 8大部分,具体如下:
Server
redis_version:2.8.8 # Redis 的版本
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:bf5d1747be5380f
redis_mode:standalone
os:Linux 2.6.32-220.7.1.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7 #gcc版本
process_id:49324 # 当前 Redis 服务器进程id
run_id:bbd7b17efcf108fdde285d8987e50392f6a38f48
tcp_port:6379
uptime_in_seconds:1739082 # 运行时间(秒)
uptime_in_days:20 # 运行时间(天)
hz:10
lru_clock:1734729
config_file:/home/s/apps/RedisMulti_video_so/conf/zzz.conf
Clients
connected_clients:1 #连接的客户端数量
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
Memory
used_memory:821848 #Redis分配的内存总量
used_memory_human:802.59K
used_memory_rss:85532672 #Redis分配的内存总量(包括内存碎片)
used_memory_peak:178987632
used_memory_peak_human:170.70M #Redis所用内存的高峰值
used_memory_lua:33792
mem_fragmentation_ratio:104.07 #内存碎片比率
mem_allocator:tcmalloc-2.0
Persistence
loading:0
rdb_changes_since_last_save:0 #上次保存数据库之后,执行命令的次数
rdb_bgsave_in_progress:0 #后台进行中的 save 操作的数量
rdb_last_save_time:1410848505 #最后一次成功保存的时间点, rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0 #redis是否开启了aof
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
Stats
total_connections_received:5705 #运行以来连接过的客户端的总数量
total_commands_processed:204013 #运行以来执行过的命令的总数量
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:34401 #运行以来过期的 key 的数量
evicted_keys:0 #运行以来删除过的key的数量
keyspace_hits:2129 #命中key 的次数
keyspace_misses:3148 #没命中key 的次数
pubsub_channels:0 #当前使用中的频道数量
pubsub_patterns:0 #当前使用中的模式数量
latest_fork_usec:4391
Replication
role:master #当前实例的角色master还是slave
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
CPU
used_cpu_sys:1551.61
used_cpu_user:1083.37
used_cpu_sys_children:2.52
used_cpu_user_children:16.79
Keyspace
db0:keys=3,expires=0,avg_ttl=0 #各个数据库的 key 的数量及生存周期
5.4.2.1 redis-faina
使用redis自带命令monitor的输出结果做分析的python脚本,在命令行下使用,可以做实时分析使用。 官网:https://github.com/Instagram/redis-faina
cd /opt/test
git clone https://github.com/Instagram/redis-faina.git
cd redis-faina/
redis-cli -p 6379 MONITOR | head -n 100 | ./redis-faina.py --redis-version=2.4
测试结果如下:
可以看到一些实时的数据,并且有一定的统计数据,可以作为一个命令行工具使用。推荐使用,不过redis版本要大于2.4。
5.4.2.2 redis-live
用来监控redis实例,分析查询语句并且有web界面的监控工具,python编写。 官网:https://github.com/nkrode/RedisLive 运行环境依赖包安装:http://www.nkrode.com/article/real-time-dashboard-for-redis redis-live安装:
cd /root
git clone https://github.com/nkrode/RedisLive.git
cd RedisLive/src ###修改redis-live.conf文件 {
"RedisServers": [ {
"server": "10.20.111.188",
"port" : 6379
} ],
"DataStoreType" : "redis", "RedisStatsServer":
{
"server" : "10.20.111.188",
"port" : 6380},
"SqliteStatsStore" :
{
"path": "to your sql lite file"
} }
修改完毕
启动监控服务,每30秒监控一次 ./redis-monitor.py --duration=30 ###再次开启一个终端,进入/root/RedisLive/src目录,启动web服务 ./redis-live.py 在浏览器输入: http://10.20.111.188:8888/index.html 即可看到下图:
一个web界面,可以同时监控多个redis实例,做集中监控比较好。
5.4.2.3 redis-stat
用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息,性能应该比monitor要好。
官网:https://github.com/junegunn/redis-stat
运行环境安装:
apt-get install ruby
apt-get install rubygems
redis-stat安装:
cd /root
git clone https://github.com/junegunn/redis-stat.git
cd /root/redis-stat/bin ###./redis-stat --help 可以看到使用帮助
./redis-stat 1
redis-stat的具体用法
usage: redis-stat [HOST[:PORT] ...] [INTERVAL [COUNT]]
-a, --auth=PASSWORD Password
-v, --verbose Show more info
--style=STYLE Output style: unicode|ascii
--no-color Suppress ANSI color codes
--csv=OUTPUT_CSV_FILE_PATH Save the result in CSV format
--server[=PORT] Launch redis-stat web server (default port: 63790)
--daemo Daemonize redis-stat. Must used with --server option.
--version Show version --help
redis-stat命令行模式:
redis-stat
redis-stat 1
redis-stat 1 10
redis-stat --verbose
redis-stat localhost:6380 1 10
redis-stat localhost localhost:6380 localhost:6381 5
redis-stat localhost localhost:6380 1 10 --csv=/tmp/output.csv --verbose
redis-stat web模式:
redis-stat --server
redis-stat --verbose --server=8080 5
redis-stat --server --daemon
效果如下:
运行web模式
cd /root/redis-stat/bin
./redis-stat --server=8080 5 --daemon
在浏览器输入: http://10.20.111.188:8080/ 结果如下:
不错的工具,既有命令行又有web界面,可以放到后台运行,数据比redis-live感觉直观 ,ruby开发的,唯一的缺点是如果同时监控多个redis实例,不能单独显示每一个实例的数据信息,貌似是总和。
5.4.2.4 redis-monitor
一个国人用java写的,官网的是在win下编译的,看着不错,官网:https://github.com /litiebiao2012/redis-monitor,个人感觉,做集中监控可以使用redis-live,在命令行使用可以使用redis- stat,也可以根据自己的情况自行编写,总之就是根据info和monitor命令获取并展示信息。
前端指标主要包括页面展示、网络所花的时间以及前端有哪些地方需要优化。
Firebug是firefox下的一个扩展,能够调试所有网站语言,如Html,Css等,但FireBug最吸引我的就是javascript调试功能,使用起来非常方便,而且在各种浏览器下都能使用(IE,Firefox,Opera, Safari)。
Firebug主要功能有:CSS调试、CSS尺标、网络监视器、JS调试器、Console 控制台、修改HTML、DOM查看器。
YSlow可以对网站的页面进行分析,并告诉你为了提高网站性能,如何基于某些规则而进行优化。 安装YSlow必须首先先安装 Firebug,然后下载YSlow,再对其安装。
YSlow可以分析任何网站,并为每一个规则产生一个整体报告,如果页面可以进行优化,则YSlow会列出具体的修改意见。
访问性能测试控制台