1Windows性能计数器分析
对象
|
计数器
|
分析
|
processor
|
%precessor
time
|
建议阈值85%
|
memory
|
Available
bytes
|
建议阈值少于4MB需要添加内存;
另外,又建议至少要有10%的物理内存值
|
Pages
reads/sec
|
Page
Reads/sec 是指为解析硬页错误而读取磁盘的次数,如果该值一直持续较大,表明可能内存不足
建议阈值30(5?),大数值表示磁盘读而不是缓存读
|
Pages
writes/sec
|
Page
Writes/sec 是指为了释放物理内存空间而将页写入磁盘的次数
|
Pages
Input/sec
|
Pages
Input/sec 指为解决页错误从磁盘上读取的页数
|
Pages
Output/sec
|
Pages
Output/sec 是指为了释放物理内存空间而写入磁盘的页数
如果该值远远大于Pages
Input/sec,可能有内存泄露
|
Pages/sec
|
Pages/sec
是指为解析硬页错误从磁盘读取或写入磁盘的页数
建议阈值20
|
Network
interface
(对于TCP/IP)
|
Bytes
received/sec
|
该数据结合Bytes
total/sec看
|
Bytes
sent/sec
|
该数据结合Bytes
total/sec看
|
Bytes
total/sec
|
推荐不要超过带宽的50%
|
Packets/sec
|
根据实际数据量大小,无建议阈值,该数据结合Bytes
total/sec看
|
physicaldisk
|
Disk
reads/sec
|
取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格
|
Disk
writes/sec
|
取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格
又:上两值相加,应小于磁盘设备的最大容量
|
%Disk
Time
|
建议阈值90%
|
Current
disk queue length
Avg.
disk queue length(如果使用RAID设备,%Disk
Time计数器显示的值可以大于100%。如果大于100%,则使用Avg.
disk queue length计数器决定正在等待磁盘访问的系统请求的平均数)
|
不超过磁盘数的1.5~2倍
如果上两值始终较高,可以考虑升级磁盘驱动器或将某些文件移动到其他磁盘或服务器
|
2一些注意事项
1. 如果监视不超过4个小时,则每15秒更新一次比较合理;如果将监视系统8个小时或更长时间,则设置的间隔不要小于300秒
2. 个人认为测试报告结果同时还要附上图参考,因为单靠最小、最大和平均值还不能说明问题
3. 与物理磁盘计数器的数据不同,逻辑磁盘计数器的数据默认情况下不是由操作系统搜集。要获得逻辑驱动器或存储卷的性能计数器数据,必须在命令提示符下键入diskperf
–yv。默认情况下,操作系统使用diskperf –yd命令包含物理驱动器数据。使用命令diskperf的详细信息,请在命令提示符下键入diskperf
-?。
4. 通常,决定性能是否可以接受是一种主观判断,随用户环境的变化而明显地变化。
5. 内存不足是计算机系统中的严重性能问题最常见的原因。工作站响应速度很慢最有可能是内存和处理器问题造成的;服务器更容易受到磁盘和网络问题的影响。
6. 在程序启动时,每个程序的Process\%Processor Time值迅速攀升、降低,然后稳定。注意程序启动时处理器的峰值非常重要;你可能要暂时忽略监视数据中高的启动值,以获得典型程序使用处理器情况的更精确的图片。
7. 当内存减少时,操作系统开始通过从活动较少的程序的工作集(working set)中获得内存来补充,因此,将看到一个程序工作集的增大,而其他程序的值减少。如果系统中没有足够的内存来满足所有活动程序的要求,将发生内存页交换,程序性能将受到影响。
8. 如果发生了内存泄漏,Process\Private Bytes计数器和Process\Working set 计数器的值往往会升高,同时Available
bytes会降低。
9. 如果Process不见了,修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance
下的Disable Performance Counters值为0.
3Unix性能计数器分析
计数器
|
描述
|
Average
load
|
Ready状态并发进程的平均数
|
Collision
rate
|
在以太网上侦察到的每秒冲突数
|
Context
switches rate
|
每秒进程或线程之间的切换数
|
CPU
utilization
|
CPU使用时间的百分比
|
Disk
rate
|
磁盘传输的速率
|
Incoming
packets error rate
|
接受以太网包每秒的错误
|
Incoming
packets rate
|
每秒接受的以太网包
|
Interrupt
rate
|
每秒设备的中断次数
|
Outgoing
packets error rate
|
发送以太网包每秒的错误
|
Outgoing
packets rate
|
每秒发送以太网包
|
Page
in rate
|
每秒读到物理内存的页数
|
Page
out rate
|
每秒写到页面文件和从物理内存移动的页数
|
Paging
rate
|
每秒读到物理内存或者写到页面文件的页数
|
Swap
in rate
|
交换的进程数
|
Swap
out rate
|
交换的进程数
|
System
mode CPU utilization
|
系统模式下CPU使用时间的百分比
|
User
mode CPU utilization
|
用户模式下CPU使用时间的百分比
|
4
SQL Server性能计数器分析
计数器
|
描述
|
Buffer
manager/buffer cache hit ratio
|
指可在缓冲池中找到而不需要从磁盘中读取(物理I/O)的页面的百分比。如果该值较低则可能存在内存不足或不正确的索引
|
General
statistics object/user conections
|
指系统中活动的SQL连接数。该计数器的信息可以用于确定系统得最大并发用户数
|
Locks/lock
requests/sec
|
指每秒请求的锁个数。通过优化查询来减少读取次数,可以减少该计数器的值。
|
Locks/lock
timeouts/sec
|
指每秒由于等待对锁的授权的锁请求数,理想情况下,该计数器的值为0
|
Locks/lock
waits/sec
|
指每秒无法立刻得到授权而超时的锁请求数,理想情况下,该计数器的值应该尽可能为0
|
Locks/number
of deadlocks/sec
|
指每秒导致死锁的锁请求数。死锁对于应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器必须为0
|
Memory
manager/memory grants pending
|
指每秒等待工作空间内存授权的进程数。该计数器应该尽可能接近0,否则预示可能存在着内存瓶颈
|
SQL
statistics/batch requests/sec
|
指每秒向服务器提交批的请求次数。该计数器被用来确定系统的负载大小
|
SQL
statistics/ SQL compilations/sec
|
指每秒编译数。理想状态下该计数器的值应该低,如果batch
requests/sec计数器的值非常接近该计数器,那么可能存在大量的特殊SQL调用
|
SQL
statistics/ re- compilations/sec
|
指每秒的重新编译数。该计数器的值越低越好。存储过程在理想情况下应该只编译一次,然后被他们的执行计划重复利用。如果该计数器的值较高,或许需要换个方式编写存储过程,从而减少重编译的次数
|
原创:UML软件工程组织 |