这是我离线整理资料里的内容,大概是2012年时候开始使用此性能监控工具的,直到至今,接触到几个性能监控工具里,还是美国quest公司生产的Spotlight此产品相对比较牛!
我也不知道现在发展到能支持监控多少资源,我就拿我之前整理的文档所对应的的工具版本进行讲解,至于下载软件支持某个资源或者某些资源,请自行百度搜索:quest Spotlight,官网下载的版本是需要收费的,因此自行在网上搜索下载破解版本。
Spotlight可以监控很多很资源,相关如下:
Spotlight on web server //web应用程序服务
Spotlight on Active Directory //wwindows操作系统上的AD域应用程序服务
Spotlight on DB2 //DB2关系型数据库应用程序服务
Spotlight on MySQL //mysql关系型数据库应用程序服务
Spotlight on Oracle //oracle关系型数据库应用程序服务
Spotlight on SQL Serever // SQL Serever 关系型数据库应用程序服务
Spotlight on Sybase ASE // sybase OLTP关系型数据库应用程序服务
Spotlight on Unix/Linux //Unix/Linux操作系统
Spotlight on Windows //Windows操作系统
Spotlight on Exchange //Windows server操作系统上的微软的Exchange邮件服务器应用服务
Spotlight不需要在服务器端安装代理,只需要创建一些管理对象。
在这里我只对常用的几个进行安装、配置及简单使用做个介绍:
Spotlight on windows服务器监控
1、Spotlight on Windows 基于WMI 监控,防火墙需要开放TCP 135 、TCP 445 端口。
Windows防火墙开启WMI支持方法:组策略,计算机配置 ,管理模板 ,网络 ,网络连接 ,Windows防火墙 ,标准配置文件 ,允许远程管理例外,添加监控机IP地址。不建议关闭Windows防火墙。
2、监控机需要远程计算机的管理员帐号作验证,另外,网络访问方式要改成 经典-本地帐户的共享和安全模式 。如果需要使用 仅来宾 的验证方式,请把guest帐号加到administrators系统用户组内。监控时填写guest帐号,密码留空。
3、Spotlight 依赖Remote Registry 服务,请确认远程计算机已开启。
网上我查询了,对windows操作系统服务器监控写的比较详细的文章推荐:https://www.cnblogs.com/qmfsun/p/4838625.html
Spotlight on unix\linux服务器
1、被监控服务器为centos的linux操作系统为例,其他linux发行版本雷同,只是每个操作系统的linux命令不尽相同而已,先在服务器上创建一个用户,专门用于监控使用!
因为远程监控服务器,需要获取服务器的资源,所以必须要有权限。使用文档明确说明,不能使用root用户,但是我用其他已存在的用户也不行,所以只能创建一个新用户,方便起见就用spotlight作为用户名,设置如下:
>> useradd spotlight
>> passwd spotlight
设置完密码就ok了。但是这个用户spotlight必须要有root权限才行,但这里我只是创建一个普通用户。如果创建具有root用户的权限,命令如下,同时建议密码稍微复杂一些:
>> useradd -g root -G root spotlight //将spotlight用户赋予和root一样的权限。
或者直接编辑:vim /etc/passwd将spotlight用户的UID和GID改成0:0
>> passwd spotlight
设置完密码即可。
2、由于spotlight监控linux仍然使用linux的sysstat包,所有需要安装sysstat包。需要在服务器有监控工具,如sysstat
(1)检查是否安装sysstat包:rpm -q sysstat;
(2)如果没有,安装:rpm -ivh sysstat。
完成即可
3、本地机器安装spotlight,创建监控信息如下
进入Spotlight界面,进入File菜单点击Connect,进入如下界面:
双击Add New connection,进入创建一个新的监控链接如下:
输入被监控的服务器IP地址,spotlight用户账号及其密码,填充完OK即可。
4、监控信息如下:
Linux操作系统服务器的监控信息一目了然。
(1)、system
系统信息包括Linux版本、系统运行时间、现在时间
(2)、Network
包括连接数和宽带
(3)、CPU
用户使用cpu、系统使用cpu和剩余cpu;
其中还包括进程列队。
(4)、Memory
内存情况包括物理内存与虚拟内存的使用情况
(5)、Swap Files
交换文件的使用情况
(6)、Disk Activity
磁盘使用情况
(7)、Paging in /out
每秒内存页读入的数量。/每秒内存分页写入内存数量。是CPU与内存间的交互。
(8)、Swapping in rate / out rate
上面是页交换,这个是进程交互。
(9)、Disk I/O writes / reads
虚拟内存是在硬盘上划分出来的,当内存不足时物理内存会与虚拟内存交互,响应的会产生磁盘的I/O问题。
Spotlight on mysql监控mysql
首先要安装使用ODBC 3.5X的版本;
如果是安装在windows操作系统上,则请阅读:https://www.jianshu.com/p/fc92cf133899
如果安装在linux操作系统上,请阅读下面的内容:
potlight on mysql监控mysql时,需要执行iostat命令,所以需保证在目标linux服务器上安装iostat
没有安装iostat,故磁盘I/O统计,OS Performance page 和OS Details drilldown等将得不到显示。
yum install -y sysstat.x86_64
建立连接
点击connect后就可以查看监控效果了
1、Sessios会话
Total Users:总用户数
前连接到MySQL服务器的用户会话总数
Active Users:活跃用户
此控件表示连接到当前正在执行SQL语句或其他数据库请求的MySQL服务器的会话数
Active Sessions:活动会话数
当前正在执行SQL语句或其他数据库请求的当前连接会话的百分比
2、Host主机
Total CPU Usage:总的CPU使用率
此旋转器表示使用的CPU总量,随着CPU需求的增加,它旋转得更快,
如果系统的总CPU利用率超过一个阈值(CPU忙警报),警报就可以成为这个组件上的指令,
持续的CPU利用率高会对系统的性能产生不利影响
Run Queue:运行队列
运行队列显示等待CPU资源的任务数。当这个数超过CPU资源的数量时,CPU瓶颈就存在了
Memory:内存
Free Physical RAM:可用物理内存
这是可用的物理RAM,
如果可用的物理RAM是低的(低*物理RAM警报),警报就可以在这个组件上成为指令
3、MySQL数据库
Sorts:分类
Sort Buffer Size:排序缓冲区大小
这是全球服务器设置sort_buffer_size价值。sort_buffer_size定义的可用内存,每次要执行排序,
如果排序需要比可用的更多内存,它将使用磁盘上的临时表来执行排序,
所显示的值是全局设置。个别会话可能会在个别基础上更改此参数
Rows Sorted:行排序
此控件显示MySQL服务器每秒排序的行数。它是基于服务器的状态变量的值sort_rows,
MySQL只报告在排序完成时排序的行数,因此如果执行一些长排序,则该统计量的值可能在短时间内周期性地急剧上升到非常高的值
per second:每秒
Query Cache:查询缓存
Status:现状
MySQL查询缓存的状态,有效值是:
OFF-查询缓存处于非活动状态,
ON-将缓存的选择比其他的sql_no_cache暗示,
需求-MySQL将缓存SELECT语句只包含sql_cache暗示
Size:大小
查询缓存的大小
Querirs:查询
MySQL查询缓存中当前包含的查询数
Free:空闲的
查询缓存中的空闲内存量
QC Hit Rate:查询缓存的命中率
在查询缓存中找到匹配选择的不需要执行的SELECT语句的百分比
查询缓存命中率警报
MySQL查询缓存存储MySQL数据库服务器执行的最近选择查询,
以及这些查询的结果集。
这可以减少大量的解析开销,以及逻辑和物理I/O,
如果查询重复的话,这些查询将与这些查询相关。
查询缓存命中率警报在MySQL查询缓存中找到的SQL查询比例低于指定阈值时触发。
您可以通过修改配置变量来调整查询缓存的性能:
更改查询缓存的大小或类型
更改可缓存的查询的最大大小
更改缓存查询的分配大小或最小块大小
Thread Pool:线程池
当前用于重新使用的连接线程的数目
4、InnoDB数据库引擎
Buffer Pool:缓冲池
Size:大小
InnoDB缓冲池缓存表中的数据,所以它不需要写磁盘的每一次,
此控件显示InnoDB缓冲池的大小,以兆字节为单位
Free:空闲的
在InnoDB缓冲池中没有包含数据的内存量,
在大多数系统中,这最终将达到0,
除非缓冲池足够大,以容纳从数据库中定期读取的所有数据
Hit Rate:命中率
在缓冲池中找到请求的数据块的时间百分比,避免了磁盘I/O,
较高的值表示良好的缓存有效性,
但是,如果应用程序执行大量的全表扫描,那么低值可能是正常的
Rows Processed:行处理
此度量显示插入、更新、删除和选择以每秒行表示的操作的速率,
它不包括排序的行率
per second:每秒
Log Buffer:日志缓冲区
Size:大小
在InnoDB日志缓冲区的大小,以兆字节为单位,
innodb日志缓冲区缓冲区写入InnoDB事务日志
IO Threads:IO线程
辅助线程执行InnoDB I/O数
5、Storage存储
Tablespace:表空间
在InnoDB表空间文件的总大小,这些文件中的空闲空间的总数,
注:
在这个版本中,
如果你使用一个表空间文件每个InnoDB表配置我们无法在表空间使用情况报告
Total:全部的
总的空间分配给InnoDB表为确诊的MySQL数据库,
对于InnoDB表空间配置参数的设置是通过在my.cnf文件[ mysqld ]段innodb_data_file_path选项或者在my.ini(Windows),
注意:聚光灯主页的刷新率可能会延迟显示该组件的准确值
Free:空闲的
残留在InnoDB表空间为确诊的MySQL数据库的可用空间,
表空间中的空闲空间量是由MySQL显示表状态命令返回的值之一,
注意:聚光灯主页的刷新率可能会延迟显示该组件的准确值
Auto Extend:自动扩展
在InnoDB表表可以设置为自动增长大小(自动)当他们成为全,
对于InnoDB表空间配置参数(包括AUTOEXTEND)是由在my.cnf文件[ mysqld ]段innodb_data_file_path选项或者在my.ini(Windows)的大小,
InnoDB表空间扩展可以通过设置innodb_autoextend_increment选项,
默认值是8,这corrresponds以固定增量8 MB
Logs:日志
InnoDB的事务日志。
注意:此组件目前没有附加值,仅显示为MySQL架构中的事务日志
数值的含义:数和在InnoDB存储引擎使用的日志组的日志大小,
在日志的日志文件组数设定在my.cnf文件[ mysqld ]段innodb_log_files_in_group选项,
默认值2,
在日志组中的每个日志文件的大小是由innodb_log_file_size,
具有5 MB的默认值,
价值观是由MySQL显示变量检索命令(见活动明细配置页)
读写流:
SQL Executions/s
SQL执行
此流显示客户机连接向服务器发送SQL语句或其他数据库请求的速率。
所有的数据库请求数,包括呼叫、显示、描述和设置报表。
但是,如果客户机发出一个调用语句,这只算作一个执行,即使存储过程调用执行多个SQL语句。
Data Send Rate
数据发送速率
此流表示从所有客户端发送数据到服务器的速率。
在此上下文中的数据包括命令包(例如SQL语句)以及发送到数据库中的数据。
高速率通常与高插入率有关。
Data Received Rate
数据接收率
此流显示数据从MySQL服务器发送到所有客户机的速率。
数据包可能包含返回代码和错误信息,但是从服务器向客户机传输的大部分数据通常是SELECT语句结果集的形式。
InnoDB Logical Writes/s
InnoDB的逻辑写的速度,
写操作是在InnoDB缓冲池中进行的,基于状态变量innodb_buffer_pool_write_requests。
InnoDB Logical Read Rate
InnoDB的逻辑读取率
逻辑读取请求的速率由InnoDB。这包括数据从InnoDB所有的要求,包括缓冲池中的数据和从硬盘读取的数据。
InnoDB Physical Writes/s
InnoDB物理写的
这种流动显示的速度,InnoDB的数据写入到磁盘上的表空间文件。
InnoDB Physical Read Rate
InnoDB物理读取率
物理I/O操作从InnoDB表空间文件到InnoDB缓冲池。
InnoDB Log Buffer Writes/s
InnoDB Log Buffer写的率在数据被写入到Innodb日志缓冲区。
InnoDB Log File Write Rate
innodb log文件的写入速度
这种流动显示的I/O速率InnoDB事务日志。
相关监控简介:
1、MySQL相关
1.1 Activity->Mutex 对应Show engine innodb mutex
1.2 Activity->InnoDB Status 对应 show engine innodb status;
1.3 Activity->Error Log 显示当前连接最近的一次报错,包括数据库的创建、启动,一个表的创建或者该check && repair,以及某个logfile的创建
1.4 Activity->General Log 以表格形式显示某客户端连接及断开的记录,以及各SQL statement
注:my.cnf里需设定参数log_output=table
1.5 Activity->Slow Query Log 以表格形式展示一个慢查询SQL语句
2 系统相关
2.1 OS Details->OS Performance 显示操作系统的cpu、磁盘I/O、memory等监控信息
2.2 OS Details-> OS Processes 显示当前活跃的进程
Spotlight on oracle监控oracle
1)首先要保证安装spotlight on oracle的机器上已安装oracle客户端工具。
安装Oracle客户端instantclient_11_2;
配置系统环境变量PATH和TNS_ADMIN都为instantclient_11_2的安装路径;
配置tnsnames.ora文件,将需要的数据库实例信息填写上,如下:
2)建立Oracle的连接
如果需要同步监控操作系统,则需要录入操作系统的用户名和密码;选择数据库客户端tnsnames.ora中配置的数据库;
注意:如果要同步监控OS,请确保Windows要用administrator账号,linux不能用root账号;
如果不需要同步监控OS操作系统,则不需要在“monitor OS”前打钩,如下图所示:
3)配置监控用户
设定oracle的连接用户(建议重新建立一个新的监控用户,不要使用系统实际账户)
在连接Oracle数据库前我们要先为待监控的数据库创建一个监控用户,通过这个监控用户来获取监控信息
在连接Oracle数据库前我们要先为待监控的数据库创建一个监控用户,通过这个监控用户来获取监控信息,
首先打开“file”->“OracleUser Wizard”界面,如下图所示:
4)系统主界面
系统主界面反映了系统的整体运行情况,如果系统哪方面出现问题,会报相应的警告,不同级别显示不同的颜色,最严重为红色警告。
然后据此警告可下钻到相应的子窗口,查看相应情况。下面介绍各子窗口。
注:绿色区域代表相关区域正常,出现黄色区域代表该区域超出标准值出现警告,红色区域代表该区域出现异常。
1.Session面板:
(1)Response<10,系统的响应时间
(2)Total Users:总用户SESSION数
(3)Active Users:当前正在执行的用户SESSION数
2.Host面板:
(1)CPU利用率
(2)内存的使用情况
3. Server Processes面板:显示服务器进程的信息
(1)PGA Target/Used显示PGA目标总数及当前使用数
(2)dedicated显示专用服务器进程的个数
(3)Shared显示共享服务器进程的个数。
(4)Dispatchers显示dispathers的个数.
(5)JobQueue显示作业进程的个数
4. SGA面板:显示SGA中各组件的内存使用情况
(1)CurrentSize显示当前sga使用M数
(2)BufferCache,KeepPool,RecyclePool显示数据缓冲区的内存情况
(3)SharedPool:共享池的使用情况
(4)RedoLog:重作日志的使用情况
(5)LargePool:大池的使用情况
(6)JavaPool:java池的使用情况
5.Background process面板-后台进程面板:显示与磁盘I/O相关的后台进程。
(1)DBWR 数据写入进程
(2)LGWR 日志进程
(3)ARCH 规档进程式
6. 磁盘存储面板:显示主要数据库文件的情况(控制文件除外)
(1)DatabaseFiles:显示数据文件使用情况。
(2)联机日志文件情况。包括组数及大小。
(3)归档日志情况。
5)重点监控及分析项目
通过topSession面板可以查看当前哪个session当前占用了大量的资源,以此定位数据库问题。
这是主从式的面板,单击上部列表,会在sessionInformation中显示该会话的所有信息。
通过topSession面板可以查看当前哪个session当前占用了大量的资源,以此定位数据库问题。
单击上部列表,会在session Information中显示该会话的所有详细信息。
下面是几个应注意的地方:
most recent sql:可以用来确定当前占用资源最大的sql语句
Session waits:可以找出与该session相关的等待事件。
Session locks:显示相关的锁信息。
6)SQL应用程序工作量
top sql: 点击Top Sql可以查看系统中所有占用资源较大的sql语句,选择相应行,可以查看SQL information详细信息;
根据条件来查看libraryCache中相应的sql.
主要的选项为sorting
可以据此来找出影响大的sql
找出占用耗用时间长的SQL语句,然后进行优化;找出哪些sql磁盘读写多、缓存命中率低、优化成本几乎为0的sql语句进行优化,先从语法优化,再从业务逻辑优化。
点击Fetch SQL按钮,可以查看到相应的SQL语句
7)活动分析
Activity:这个窗口,主要提供了等待事件,锁等待,闫锁等待,当前事务等。可以以图表方式查看磁盘、IO、事件等待等信息;
8)配置和内存:主要显示SGA的使用情况及参数配置情况
9)、磁盘存储情况:显示表空间利用率和在线日志的使用情况。