首页 > 数据库 >关于Window操作系统中对Oracle的性能监控

关于Window操作系统中对Oracle的性能监控

时间:2024-09-02 12:48:20浏览次数:9  
标签:操作系统 性能 计数器 进程 Window 线程 内存 Oracle

目的
本文是为了测试数据仓库的 实时数据抽取功能对源数据库和操作系统的性能的影响 。由于 Windows 操作系统未提供类似于 UNIX 下的 Top 、 ps 、 vmstat 等 CPU 、内存、 I/O 监控工具,同时 Oracle 作为操作系统下的一个唯一进程而存在,这就导致 windows 操作系统在监控 Oracle 方面效果不是很理想。
 

一、 任务管理器
任务管理器能够提供正在您的计算机上运行的程序和进程的相关信息。还显示最常用的度量进程性能的单位。
使用任务管理器可以监视计算机性能的关键指示器。可以查看正在运行的程序的状态,并终止已停止响应的程序。还可以使用多达 15 个参数评估正在运行的进程的活动,查看反映 CPU 和内存使用情况的图形和数据。
通过任务管理器的菜单— > 查看— > 选择列,可以自定义需要监测系统和用户进程的活动状况。

 

任务管理器的使用是非常普遍的,因为它可以从宏观上反映出服务器系统的负载情况 (CPU ,内存, I/O ,虚拟内存 ) ,进一步能够判断出机器硬件的配置和软件的运行状况。
但是任务管理器只能在进程这一级上进行监测,检测不到更细微的线程的运行情况,对于 Oracle 这样的大型数据库系统的监控显然不够的。

二、 性能监视器
可以使用“性能”来自动收集本地或者远程计算机的性能数据。您可以使用“系统监视器”查看已记录的计数器数据,或者将数据导出到电子表格程序或用于分析和生成报表的数据库中。
与“系统监视器”相似,“性能日志和警报”支持定义:性能对象、性能计数器和性能对象实例。它同时支持为有关监视硬件资源和系统服务的数据设定采样间隔。
默认情况下,进程和线程实例附加了 #n (其中, n 是整数) ( 联机帮助中的解释,不太明白什么含意 ) ,缺省情况下,性能监视器无法对用户进程和进程内的线程情况进行跟踪,按照以下进行设置后,即可实现线程和用户进程的跟踪。
要添加进程标识符 ID ,可以在 KEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPerfProcPerformance 子项下创建名为 ProcessNameFormat 的 DWORD 值,并将其值设为 2 。
同样,要添加线程 ID ,可以在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPerfProcPerformance 子项下创建名为 ThreadNameFormat 的 DWORD 值,并将其值设为 2 。

 

通常情况下需要监视的组件和关注对象,更详细的信息,请看计数器中的说明
组件:磁盘
  正被监视的性能方面:用法
  要监视的计数器:
  物理磁盘 Disk Reads/sec (磁盘读取 / 秒)
  物理磁盘 Disk Writes/sec (磁盘写入 / 秒)
  逻辑磁盘 % Free Space (可用空间)
  组件:磁盘
  正被监视的性能方面:瓶颈
  要监视的计数器:物理磁盘 Avg.Disk Queue Length (磁盘队列平均长度)(所有实例)
  组件:内存
  正被监视的性能方面:用法
  要监视的计数器:
  内存 Available Bytes (可用字节)
  内存 Cache Bytes (缓存字节)
组件:内存
  正被监视的性能方面:瓶颈或漏洞
  要监视的计数器:
  内存 Pages/sec (页面 / 秒)
  内存 Page Reads/sec (页面读取 / 秒)
  内存 Transition Faults/sec (传输错误 / 秒)
  内存 Pool Paged Bytes (分页的内存池字节)
  内存 Pool Nonpaged Bytes (未分页的内存池字节)
  组件:处理器
  正被监视的性能方面:用法
  要监视的计数器:处理器 % Processor Time (处理器时间)(所有实例)
  组件:处理器
  正被监视的性能方面:瓶颈
  要监视的计数器:
  系统 Processor Queue Length (处理器队列长度)(所有实例)
  处理器 Interrupts/sec (中断 / 秒)
  系统 Context switches/sec (上下文切换 / 秒)

1. 在性能 的性能日志和警报 选择 计数器日志
2. 点击 新建日志设置

3. 在常规选项卡中选择添加计数器,性能对象选择 Thread ,计数器中选择需要监控的性能指标,并在实例中选择相应的 Oracle 线程进行跟踪。
4. 然后在计数器日志中选择名称 Oracle_Thread, 进行启动

 

具体的计数器解释请看说明:
 
Example:% Processor Time 是所有进程线程使用处理器执行指令所花的时间百分比。指令是计算机执行的基础单位。线程是执行指令的对象,进程是程序运行时创建的对象。此计数包括处理某些硬件间隔和陷阱条件所执行的代码。
 
5. 运行相应的程序后一段时间后,停止 Oracle_Thread 计数器的运行
6. 在性能监视器中,选择工具栏 查看日志活动,到指定的文件夹中选择相应的日志文件。
7. 然后可以通过 查看图表,查看直方图,查看报告的工具 阅读和评估一段时间以来各个线程的运行状况。
8. 但是在系统监视器中无法显示两个不同测试阶段的的测试对比,可以在计数器日志 日志文件设置中日志的格式,通常是文本文件 ( 制表符或者逗号分割方式)。然后将前后两段时间的数据倒入 Excel 表,利用 Excel 表的强大功能进行性能比较。

 

三、 QSlice 工具
Qslice 这个工具可以用来在 Windows 操作系统中观察用户进程 (Oracle 进程 ) 及各线程的资源消耗,主要是从 CPU 占用率角度来衡量的。

使用 getsql.sql 脚本即可获得当前正在执行的 SQL 语句:
-- 来自 Eygle 网站上
REM getsql.sql
REM author eygle
REM 在 windows 上 , 已知进程 ID, 得到当前正在执行的语句
REM 在 windows 上 , 进程 ID 为 16 进制 , 需要转换 , 在 UNIX 直接为 10 进制
SELECT /*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,
0, prev_hash_value,
sql_hash_value
),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = TO_NUMBER ('&pid', 'xxxx')))
ORDER BY piece ASC
/
 
然后在 PL/SQL 中运行该脚本就可以找到最消耗资源的问题 SQL ,接下来就可以进行针对性调整了 .
20068-qslice.exe 将其改名为qslice即可

四、 pslist 工具
PsList 是一个能够列出进程和其线程占用资源详细信息的小软件。
PsList is utility that shows you a combination of the information obtainable individually with pmon and pstat. You can view process CPU and memory information, or thread statistics. What makes PsList more powerful than the Resource Kit tools is that you can view process and thread statistics on a remote computer. 。

 

Pstools.chm
pslist.exe
 

五、 关于 Oracle 进程和 Windows 线程的对照关系
事实上通过性能监视器或者 QSlice 工具、 PsList 看到的线程即可能是 Oracle 中的用户进程,也可能是 Oracle 的后台进程;这些工具给出的线程号也都是 16 进制的数字,不太有利于数据库的监控;因此我们必须把 Oracle 的后台进程以数据库的语言列举出来。
对于 Oracle 用户进程,则可以取出来在 Oracle 进行分析判断。
 

SELECT spid, name
FROM V$BGPROCESS, V$PROCESS
WHERE V$BGPROCESS.paddr=V$PROCESS.addr;
Spid name
1848 PMON
3100 DBW0
2568 LGWR
3080 CKPT
1868 SMON
3040 RECO
3776 CJQ0
2912 QMN0
-----------------------------------
©著作权归作者所有:来自51CTO博客作者baoqiangwang的原创作品,请联系作者获取转载授权,否则将追究法律责任
关于Window操作系统中对Oracle的性能监控
https://blog.51cto.com/baoqiangwang/312807

标签:操作系统,性能,计数器,进程,Window,线程,内存,Oracle
From: https://www.cnblogs.com/jijm123/p/18392491

相关文章

  • 查看Windows下引起Oracle CPU占用率高的神器-qslice
    前言:qslice是一个win2000的工具包,能分析进程的cpu占用率,我们用于分析oracle的性能 这是绿色的软件无需安装。 我们经常会碰到oracle的CPU占用居高不下,无法快速定位到问题SQL,就需要这个神器:qslice。分析过程:1、进入qslice,打开oracle进程,双击进入 2、最大化弹出的窗口,发......
  • 从 Oracle 到 TiDB 丨数据库资源评估指南
    本文作者:柳冬冬导读在当今技术飞速发展的时代,传统单机数据库正面临着前所未有的挑战。随着人工智能、云计算和大数据的崛起,企业对数据库的性能、可靠性和扩展性的需求日益增长,分布式数据库取代传统集中式数据库的必然趋势。本文将详细介绍企业如何通过资源评估、迁移策略和架构优......
  • oracle里的事务
    事务是一组不可分割的数据库操作,这些操作要么全部成功(提交),要么全部失败(回滚)。事务管理是数据库管理系统(DBMS)中的一个关键特性,它确保了数据库在并发操作下的稳定性和一致性。1. 事务的基本属性(ACID)事务具有四个基本属性,统称为ACID属性:Atomicity(原子性):事务中的所有操作......
  • Windows 7 安装 N卡驱动,出现错误代码 52
    NVIDIA最新的win7的驱动安装时,都会出现代码52错误。安装时,会出现不合法的驱动签名错误。安装后,驱动显示Code52错误。解决方案:1、Windows7安装KB4474419更新,KB4490628更新。KB4474419 http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/......
  • Windows 远程桌面指南
    概述Windows远程桌面(也称为RDP)允许你从一台计算机远程连接到另一台运行Windows操作系统的计算机。开启远程桌面在“设置”中前往“系统>远程桌面”,将“远程桌面”设置为“开”。确保Windows正确存储微软账号的密码绝大多数情况下,我们将使用微软账号及其密码来登录“远程......
  • windows的nohup后台运行
    在Linux系统中,可以通过nohup命令运行python程序,实现后台运行。windows操作系统也可以实现类似功能。1.适用操作系统本文主要使用win10,其他版本windows可以尝试,如果不行,请另行他法。假设test.py如下程序:importossource_path=r'D:\zjc\Daily_Batch\fastapitest\test......
  • nginx-部署windows服务(亲测有效)
    WindowsServiceWrapper(简称winsw)下载winswhttps://repo.jenkins-ci.org/artifactory/releases/com/sun/winsw/winsw/进入链接页面选择对应的版本下载后缀名为net4.exe的文件重命名文件将winsw-2.9.0-net4.exe重命名为nginx-service.exe,并放置到nginx根目录中......
  • 打破平台限制,使智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏的一款
    大家好,今天给大家分享一款专为Android设备设计的模拟器应用Winlator。其核心功能是能够在基于ARM架构的智能手机和平板电脑上无缝运行Windowsx86/x64架构的软件和游戏。Winlator是一款Android应用程序,它允许用户使用Wine和Box86/Box64在Android设备上运行Windows(x86_64)应用......
  • [oeasy]python0032_ 火星文字幕_os_操作系统的作用_time_sleep_延迟
     032导入_import_os_time_延迟字幕效果_道德经文化_非主流火星文154播放·0赞同视频​ show:stepversion:1.0enable_checker:trueHelloWorld!回忆上次内容这次我们了解了unix系统在multics项目失败后汤普森和里奇为了玩游戏自制了u......
  • 怎么在Windows操作系统部署阿里开源版通义千问(Qwen2)
    怎么在Windows操作系统部署阿里开源版通义千问(Qwen2) | 原创作者/编辑:凯哥Java              | 分类:人工智能学习系列教程GitHub上qwen2截图随着人工智能技术的不断进步,阿里巴巴通义千问团队近期发布了Qwen2系列开源模型,这一系列模型在多个领......