Procwatcher: Script to Monitor and Examine Oracle DB and Clusterware Processes

Procwatcher是一款用于监控Oracle数据库及集群进程的工具,能够收集进程堆栈跟踪和SQL数据,适用于解决会话级挂起、性能问题及内存管理等场景。本文档详细介绍了其安装要求、适用场景及命令操作。

 

 

Purpose

Procwatcher is a tool to examine and monitor Oracle database and/or clusterware processes at an interval.   The tool will collect stack traces of these processes using Oracle tools like oradebug short_stack and/or OS debuggers like pstack, gdb, dbx, or ladebug and collect SQL data if specified.

 

Requirements

  • Must have /bin and /usr/bin in your $PATH
  • Have your instance_name or db_name set in the oratab and/or set the $ORACLE_HOME env variable.(PRW searches the oratab for the SID it finds and if it can't find the SID in the oratab it will default to $ORACLE_HOME). Procwatcher cannot function properly if it cannot find an $ORACLE_HOME to use.
  • Run Procwatcher as the oracle software owner if you are only troubleshooting homes/instances for that user. If you are troubleshooting clusterware processes (EXAMINE_CLUSTER=true or are troubleshooting for multiple oracle users) run as root.
  • If you are monitoring the clusterware you must have the relevant OS debugger installed on your platform; PRW looks for:

Linux - /usr/bin/gdb
HP-UX and HP Itanium - /opt/langtools/bin/gdb64 or /usr/ccs/bin/gdb64
Sun - /usr/bin/pstack
IBM AIX - /bin/procstack or /bin/dbx
HP Tru64 - /bin/ladebug

 

 

Procwatcher is Ideal for:

  • Session level hangs or severe contention in the database/instance. See Note: 1352623.1
  • Severe performance issues. See Note: 1352623.1
  • Instance evictions and/or DRM timeouts.
  • Clusterware or DB processes stuck or consuming high CPU (must set EXAMINE_CLUSTER=true and run as root for clusterware processes)
  • ORA-4031 and SGA memory management issues. (Set sgamemwatch=diag or sgamemwatch=avoid4031 (not the default). See Note: 1355030.1
  • ORA-4030 and DB process memory issues. (Set USE_SQL=true and process_memory=y).
  • RMAN slowness/contention during a backup. (Set USE_SQL=true and rmanclient=y).

Procwatcher is Not Ideal for...

  • Node evictions/reboots. In order to troubleshoot these you would have to enable Procwatcher for a process(es) that are capable of rebooting the machine. If the OS debugger suspends the processs for too long *that* could cause a reboot of the machine. I would only use Procwatcher for a node eviction/reboot if the problem was reproducing on a test system and I didn't care of the node got rebooted. Even in that case the INTERVAL would need to be set low (30) and many options would have to be turned off to get the cycle time low enough (EXAMINE_BG=false, USE_SQL=false, probably removing additional processes from the CLUSTERPROCS list).
  • Non-severe database performance issues. AWR/ADDM/statspack are better options for this...
  • Most installation or upgrade issues. We aren't getting data for this unless we are at a stage of the installation/upgrade where key processes are already started.

 

Procwatcher User Commands

To start Procwatcher:

./prw.sh start



Or if you want to start on all nodes in a clustered environment:

./prw.sh start all




To stop Procwatcher: :

./prw.sh stop



Or if you want to stop on all nodes in a clustered environment:

./prw.sh stop all



To check the status of Procwatcher:

./prw.sh stat

 

To package up Procwatcher files to upload to support:

./prw.sh pack



All user syntax available:

./prw.sh help

 

源码地址: https://pan.quark.cn/s/a4b39357ea24 欧姆龙触摸屏编程软件MPTST 5.02是专门为欧姆龙品牌的工业触摸屏而研发的编程解决方案,它赋予用户在直观界面上构建、修改以及排错触摸屏应用程序的能力。 该软件在工业自动化领域具有不可替代的地位,特别是在生产线监视、设备操控以及人机互动系统中发挥着核心作用。 欧姆龙MPTST(Machine Process Terminal Software Touch)5.02版本配备了多样化的功能,旨在应对不同种类的触摸屏项目要求。 以下列举了若干核心特性:1. **图形化编程**:MPTST 5.02采用图形化的编程模式,允许用户借助拖拽动作来设计屏幕布局,设定按钮、滑块、指示灯等组件,显著简化了编程流程,并提升了工作效率。 2. **兼容性**:该软件能够适配欧姆龙的多个触摸屏产品线,包括CX-One、NS系列、NJ/NX系列等,使用户可以在同一个平台上完成对不同硬件的编程任务。 3. **数据通信**:MPTST 5.02具备与PLC(可编程逻辑控制器)进行数据交互的能力,通过将触摸屏作为操作界面,实现生产数据的显示与输入,以及设备状态的监控。 4. **报警与事件管理**:软件中集成了报警和事件管理机制,可以设定多种报警标准,一旦达到预设条件,触摸屏便会展示对应的报警提示,助力操作人员迅速做出响应。 5. **模拟测试**:在设备实际连接之前,MPTST 5.02支持用户进行脱机模拟测试,以此验证程序的正确性与稳定性。 6. **项目备份与恢复**:为了防止数据遗失,MPTST 5.02提供了项目文件的备份及还原功能,对于多版本控制与团队协作具有显著价值。 7. **多语言支持**:针对全球化的应...
本资源包为流体力学与化学传质交叉领域的研究提供了一套完整的数值模拟解决方案,重点针对湍流条件下通道内溶解物质的输运与分布规律进行定量分析。该工具集专为高等院校理工科专业的教育与科研需求设计,尤其适合计算机科学、电子工程及数学等相关学科的本科生在完成课程项目、综合设计或学位论文时使用。 软件环境兼容多个版本的MatLAB平台,包括2014a、2019b及后续的2024b发行版,确保了在不同实验室或个人计算环境中的可移植性。资源包内预置了经过验证的示例数据集,用户可直接调用主程序执行计算,显著降低了初始学习成本,使初学者能够迅速掌握基本操作流程。 代码架构采用模块化与参数驱动设计。所有关键物理参数(如流速、扩散系数、边界条件等)均集中于独立的配置模块,用户无需深入底层算法即可灵活调整计算条件,从而高效模拟多种湍流溶解场景。程序逻辑结构清晰,各功能段均配有详尽的说明注释,既阐述了数值方法的理论依据,也解释了关键步骤的实现意图,便于使用者理解模型构建过程并进行针对性修改。 在学术训练方面,本工具能够帮助学生将抽象的流体动力学与传质理论转化为可视化的数值实验结果,深化对湍流混合、浓度边界层等概念的理解。对于毕业设计或专题研究,其参数化框架支持用户嵌入自定义模型,开展创新性数值实验,为深入研究复杂流动中的溶解机制提供可靠的技术支撑。 总体而言,该MATLAB分析工具集通过结构化的代码设计、完备的案例支持与广泛的版本兼容性,为流体溶解现象的数值研究提供了一个高效、可扩展的计算平台,兼具教学示范与科研探索的双重价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
In SystemVerilog, there are several types of coverage used to assess the thoroughness of testing. ### Code Coverage - **Line Coverage**: It ensures that each line of code in the design is executed at least once. For example: ```systemverilog module code_coverage_example; reg a, b, c; always @(*) begin c = a & b; // This line's execution is tracked by line coverage end endmodule ``` - **Branch Coverage**: Guarantees that all possible branches of conditional statements (such as if - else, case statements) are executed. ```systemverilog module branch_coverage; reg [1:0] sel; reg out; always @(*) begin if (sel == 2'b00) begin out = 1'b0; end else if (sel == 2'b01) begin out = 1'b1; end else begin out = 1'bx; end end endmodule ``` - **Condition Coverage**: Verifies all possible outcomes of conditional expressions in the design, ensuring that all possible value combinations of conditions are tested. ```systemverilog covergroup condition_cg @(posedge clk); cond_cover: coverpoint (condition1 && condition2); endgroup ``` ### Functional Coverage Functional coverage focuses on whether the functional features of the design are fully tested. It is defined based on the design's functional specifications. For example, for a processor, functional coverage may include the execution of the instruction set and testing of different operation modes. ```systemverilog covergroup functional_cg; opcode_cover: coverpoint cpu.opcode; mode_cover: coverpoint cpu.mode; endgroup ``` ### Assertion Coverage Assertion coverage is used to verify whether the assertions in the design are triggered. Assertions are statements used to check if the design behavior meets expectations. By assertion coverage, it can be ensured that assertions are correctly executed during testing. ```systemverilog module assertion_coverage; reg clk, rst; reg [7:0] data; always @(posedge clk) begin assert (data < 8'hFF) else $error("Data out of range"); end endmodule ``` ### Toggle Coverage Toggle coverage measures the state changes of signals during testing, ensuring that all possible signal transitions (from 0 to 1, from 1 to 0) are tested. ```systemverilog covergroup toggle_cg @(posedge clk); toggle_cover: coverpoint signal iff (enable) { bins rise = (0 => 1); bins fall = (1 => 0); } endgroup ``` ### Path Coverage Path coverage is used to verify the behavior of different signal paths in the design, ensuring that all possible signal propagation paths are tested. ```systemverilog module path_coverage; reg a, b, c, d; wire e, f; assign e = a & b; assign f = c | d; wire out = e ^ f; endmodule ``` ### Interface Coverage Interface coverage focuses on the usage of interfaces in the design, ensuring that all functions and protocols of the interface are fully tested. For example, for a bus interface, interface coverage may include different bus transaction types and address ranges. ```systemverilog covergroup interface_cg; transaction_type_cover: coverpoint bus_if.transaction_type; address_range_cover: coverpoint bus_if.address; endgroup ``` ### Transaction Coverage Transaction coverage is based on transactions in the design. It ensures that all possible transaction types and sequences are tested. For example, for a communication system, transaction coverage may include different message types and message lengths. ```systemverilog covergroup transaction_cg; message_type_cover: coverpoint comm_system.message_type; message_length_cover: coverpoint comm_system.message_length; endgroup ``` ### State Machine Coverage State machine coverage verifies the behavior of state machines, ensuring that all states and state transitions of the state machine are fully tested, which helps to check if the state machine performs state transitions correctly according to the design specifications and avoid issues such as state loss or illegal state transitions [^1]. ```systemverilog covergroup state_machine_cg @(posedge clk); state_transition: coverpoint state_machine.current_state -> state_machine.next_state; endgroup ``` ### Block Coverage Block coverage focuses on the execution of code blocks, ensuring that each code block (such as always blocks, tasks, functions) in the design is executed at least once. ```systemverilog covergroup block_cg; always_block_cover: coverpoint always_block_executed; task_cover: coverpoint task_executed; endgroup ``` ### Weighted Coverage Weighted coverage can be used to specify the proportion of a certain coverage point in the overall. For example, when covering a counter, the goal is to observe a range rather than collect all cases. In this case, option.weight = 0 can be set, which means that the coverage rate of this group or point is not calculated in the overall coverage statistics [^2]. ```systemverilog covergroup weighted_cg; coverpoint counter { option.weight = 5; bins small = {[0:10]}; bins medium = {[11:50]}; bins large = {[51:$]}; } endgroup ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值