诊断实验室一启动中打开文件错误

简介:


本系列主要是充分使用eBPF来延时如何定位实际问题,在生产中碰到类似问题也可以采用文中所描述方法。

            先编译源码,代码下载位置:

https://github.com/kernel-z/linux-tracing-workshop/blob/master/server.c

            代码就是模拟一个应用启动,启动过程会去读取配置文件,如果没有配置文件会循环一直去读永不止息,这个是为了演示方便(实际应用会退出并提示相关错误的)。

# gcc -g -fno-omit-frame-pointer -O0 server.c -o server

            其中参数-fno-omit-frame-pointer,O0表示取消栈和相关代码编译优化。

            然后执行./server

1.   基本诊断

发现系统卡主了,用top命令查看该进程还占用一定的CPU资源。

然后使用pidstat来查看进程每秒用户和系统资源情况。

# pidstat -u -p $(pidof server) 1

213427   UID       PID    %usr %system  %guest    %CPU   CPU  Command

213428     0      2654    5.13   14.10    0.00   19.23     0  server

213429     0      2654    5.13   15.38    0.00   20.51     0  server

            其中-u表示显示CPU使用率,另外从监控数据可以看到CPU使用率是位于内核系统。

            既然在内核态,那么程序肯定调用了大量的系统调用。使用bcc的syscount工具。

2.   内核态挖掘

  既然在内核态,那么程序肯定调用了大量的系统调用。使用bcc的syscount工具。

  # ./syscount.py  -p $(pidof server)

输出如下:

Tracing syscalls, printing top 10... Ctrl+C to quit.

^C[21:44:08]

SYSCALL                   COUNT

open                      52400

nanosleep                 52400

看主要是open系统调用。

3.   跟踪系统调用

使用opensnoop工具,调用如下:

#./opensnoop.py -p $(pidof server)

……

2654   server             -1   2 /etc/tracing-server-example.conf

……

发现做打开的目的文件了,返回的错误为-1,表示文件找不到。

至此,问题已非常明确。

 

目录
相关文章
|
6月前
|
存储 数据库
PACS-诊断报告系统包括哪些内容 ?
PACS是影像归档与通信系统(Picture Archive and Communication System)的英文缩写,是应用在医院信息管理系统的影像信息系统,主要类别包括医学影像成像PACS、医学影像存档与通信系统、医学影像报告工作站、医学影像远程会诊系统。 PACS影像查看工作站是其中的一个子系统,完成对医学影像设备的接入,医学影像的采集、存储、管理、处理、调阅、查看以及诊断报告的书写等功能。
117 1
|
6月前
|
安全 Linux 开发者
⭐⭐⭐⭐⭐Linux C/C++ 进程崩溃诊断以及有效数据收集:解锁代码问题快速定位与修复的方法
⭐⭐⭐⭐⭐Linux C/C++ 进程崩溃诊断以及有效数据收集:解锁代码问题快速定位与修复的方法
411 1
|
6月前
|
数据采集 存储 监控
LabVIEW起重机工作参数远程监测系统
LabVIEW起重机工作参数远程监测系统
40 1
|
6月前
|
数据采集 机器学习/深度学习 监控
使用R编写公司电脑监控软件的异常行为检测算法
本文阐述了在数字化时代,企业使用R语言开发高效异常行为检测算法的重要性,以保障网络安全和数据隐私。文章通过示例展示了如何加载和预处理数据,绘制数据传输趋势图,并运用3倍标准差法识别异常点。此外,还介绍了一种利用R的httr库将异常数据自动提交到网站的方法,以增强安全防护。
142 3
|
6月前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI 操作报错合集之在PAI-DSW(平台上的AI数据科学工作站)上尝试修改实例名时,收到"实例不存在"的错误信息如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
VS2017诊断工具意外失败处理方法
VS2017诊断工具意外失败处理方法
VS2017诊断工具意外失败处理方法
|
6月前
|
数据挖掘
dlookr包,自动输出一份数据诊断报告
dlookr包,自动输出一份数据诊断报告
242 0
|
机器学习/深度学习 人工智能 分布式计算
可解释的监控:停止盲目行动并监控您的 AI
对 AI/ML 监控的需求 我们生活在一个前所未有的时代,在短短几周内,全球许多人和企业的情况发生了巨大变化。随着 COVID-19 在全球蔓延并夺走人类生命,我们看到失业率和小企业破产数量创历史新高。
|
安全 IDE 开发工具
VS2010调试X64项目工程时,报错提示VS调试监视器(MSVSMON.EXE)未能启动,解决方案。
VS2010调试X64项目工程时,报错提示VS调试监视器(MSVSMON.EXE)未能启动,解决方案。
512 0
|
关系型数据库 Unix Oracle