首页 > 其他分享 >利用 perf top找出 sys%高的原因

利用 perf top找出 sys%高的原因

时间:2024-07-18 21:29:05浏览次数:11  
标签:perf 16 top 故障 sys% 节点 07

1. 故障背景

同事在客户现场进行POC测试,测试过程不太顺利,节点1的GRID集群自动重启。为了排除隐患,需要找到集群重启的原因。

数据库环境: 12.2.0.1 两节点RAC,安装了最新的PSU补丁。

 

2. 故障原因分析

(1). 查看节点1的asm日志。

2024-07-18T18:16:25.925231+08:00
Process m000 died, see its trace file
2024-07-18T18:16:29.138658+08:00
Instance termination initiated by instance 2 with reason 1.
2024-07-18T18:16:29.213929+08:00
Received an instance abort message from instance 2
可以看出,节点1是被节点2驱逐的。

(2).查看lmon日志。

*** 2024-07-18T18:16:22.790193+08:00
ConnReq: id 1 timeout 20 secs options x1
ConnReq: 0x7ffff1b476a8 in pending (3) queue w/ state 0x0
ConnReq: time submit at 0x6698eb61 start 0x6698eb62 expire 0x6698eb76
ConnReq: inst initmap: 1 2
ConnReq: inst nrsptmap: 1
ConnReq id 1 hist:
  inst 2 state 0x3 reqtm 1721297762 acktm 1721297762
kjxgm_conn: reqid 1 status 2 nonresp 1 master 1
kjxgm_conn: action 4 nonresp map: 1
kjxgm_conn: issue an IMR
2024-07-18 18:16:22.790 : kjxgrcomerr: Comm reconfig to inst 1 by ospid 27721 inc (8,8)
2024-07-18 18:16:22.795 : kjxgrrcfg: done (device ok) - ret = 3  hist 0x1679a (initial rsn: 3, cachd rsn: 0)
kjxgrrcfgchk: Initiating reconfig, reason=3

reason=3,通常可能的原因大致如下:a. 网络异常。 b. 主机资源耗尽。 c. 数据库争用。 d. 数据库BUG。

(3). 查看osw日志。

发现故障点之前的几分钟内,CPU空闲率基本为0,其中sys%高达70%。

(4). 至此,故障原因基本上有点线索了,CPU耗尽,导致集群间通信异常,所以节点2将节点1驱逐。那为什么sys%这么高呢? 从现场的同事反馈得知,故障可以复现,能复现就好办,让同事用perf工具抓取数据,同时让故障复现。

(5).继续查看osw相关日志。

此时,又发现其他异常。a. 故障之前的几分钟内,swap free迅速下降为0。 b. 故障之前的几分钟,消耗CPU最多的进程是kswapd进程。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  492 root      20   0       0      0      0 R 100.0  0.0   7:02.23 kswapd3:0
  490 root      20   0       0      0      0 R  96.8  0.0   9:36.64 kswapd1:0
  489 root      20   0       0      0      0 S  75.4  0.0   6:53.02 kswapd0:0
  491 root      20   0       0      0      0 S  50.8  0.0   9:11.47 kswapd2:0

看到这里,真正导致故障的原因,原来是内存耗尽,导致大量的页交换所至。

(6).同时,现场的同事也复现了故障,分析抓取的perf信息。page_vma_mapped_walk函数排一第一位,遥遥领先。 看这个函数名大概也能猜出是虚拟内存页相关。

(7). 这两条证据链,都指向了内存相关。 让现场的同事检查数据库的内存设置情况,果然发现异常。 合理设置数据库相关内存后,故障消失。

 

3. 通过这个案例,其实主要是想介绍perf工具。在这个案例中,其实完全不需要perf也能找出故障原因。 但在一些复杂的案例中,尤其sys%占比非常高的情况下,用perf找到内核调用,真的非常棒。

标签:perf,16,top,故障,sys%,节点,07
From: https://www.cnblogs.com/missyou-shiyh/p/18310473

相关文章

  • top 命令
     选项-b:以批处理模式操作;-c:显示完整的治命令;-d:屏幕刷新间隔时间;-I:忽略失效过程;-s:保密模式;-S:累积模式;-i<时间>:设置间隔时间;-u<用户名>:指定用户名;-p<进程号>:指定进程;-n<次数>:循环显示的次数;-H:所有线程占用资源情况。 top交互命令在top命令执行过程中可以使用的一些交互命令。......
  • windows不下 Docker Desktop 也能部署 docker程序
     可以在Windows上不安装DockerDesktop直接使用Docker服务,但这需要一些额外的设置和配置。以下是一些方法,可以在Windows上实现这种配置。 使用WindowsSubsystemforLinux(WSL2)1、启用WSL2:打开PowerShell并运行以下命令以启用WSL和WSL2:dism.exe/on......
  • Cisco NX-OS System Software - ACI 16.0(6c)M
    CiscoNX-OSSystemSoftware-ACI16.0(6c)M适用于ACI模式下的CiscoNexus9000系列交换机系统软件请访问原文链接:https://sysin.org/blog/cisco-aci-16/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoNX-OS网络操作系统软件CiscoNX-OS操作系统助力......
  • 达梦数据库的系统视图v$rapply_sys
    达梦数据库的系统视图v$rapply_sys在达梦数据库(DMDatabase)中,V$RAPPLY_SYS是一个系统视图,用于显示数据库的实时应用(Real-timeApply)系统信息。实时应用是一种数据库复制技术,允许将一个数据库的更改实时应用到另一个数据库中,通常用于数据同步、数据分发和灾难恢复等场景。......
  • 安装Windows subsystem Linux
    1.启用功能在系统设置里面,启用子系统功能。2.安装从商店安装或者命令行安装3.初始化报错1: ​造成该问题的原因是WSL版本由原来的WSL1升级到WSL2后,内核没有升级,前往微软WSL官网下载安装适用于x64计算机的最新WSL2Linux内核更新包即可。报错2:Windows子系统初始化......
  • EtherCAT总线耦合器:在Codesys里进行IO组态案例
    EtherCAT总线耦合器:在Codesys和Twincat软件里组态案例EtherCAT总线耦合器作为网络接口,连接主控制器(如PLC)和其他EtherCAT设备,实现实时、高效的数据交换。它能够支持工业自动化系统中的监控和控制功能,确保数据的准确性和实时性。一、在欧姆龙SysmacStudio软件中配置EtherCAT总线耦......
  • gwang.top:一键官网查询
    原文地址:https://itxiaozhang.com/one-click-official-site-query/本文配合视频食用效果最佳,视频教程在文章末尾。简介gwang.top是一个小章做的在线查询工具,可以快速找到各种官网,例如软件、学校、组织等等。使用方法访问网站:打开浏览器,地址栏输入gwang.top。输入关键词:......
  • 基于 Swoole 扩展的框架如 Hyperf 或 EasySwoole的用户请求流程
    当使用基于Swoole扩展的框架如Hyperf或EasySwoole时,不再需要PHP-FPM和传统的FastCGI协议来处理请求。这些框架直接利用Swoole扩展的特性来处理网络请求,并通过协程提高并发处理能力。以下是这些框架处理请求的正确流程:1.Web服务器接收请求Web服务器(如Nginx或......
  • 电脑开机报错operating system not found解决方法
          最近有网友问我电脑一启动提示:operatingsystemnotfound,这个提示意思是未找到操作系统。该提示主要原是此电脑启动没有检测可启动的操作系统,原因有很多,比如设置的第一启动项不对、硬盘数据线没接好、硬盘故障等都有可能导致,下面我们来详细分析一下开机出现ope......
  • 解决React Warning: Can't perform a React state update on an unmounted component.
    在写react程序时遇到警告:Warning:Can'tperformaReactstateupdateonanunmountedcomponent.Thisisano-op,butitindicatesamemoryleakinyourapplication.Tofix,cancelallsubscriptionsandasynchronoustasksinauseEffectcleanupfunction.我们......