问题排查-进程分析工具-001strace-安装方式--用法用量

news2024/11/27 4:30:01

参考来源:
centos7 安装strace
《极客时间-网络排查案例课》

strace工具介绍

跟网络排查中有 tcpdump 这样强大的工具类似,进程的排查也有相关的强大工具,比如strace。通过 strace,我们可以把排查工作从进程级别,继续追查到更细的 syscall(系统调用)级别。无论是系统调用读写文件时的问题,还是系统调用本身的问题,都可以在strace 的帮助下现出原形。

strace 这个工具的 s,指的就是 sycall,所以strace 就是对 syscall 的 trace。通过这个命令,我们可以观测到一个进程访问的所有系统
调用、给这些系统调用传入的参数,以及系统调用的输出。可想而知,这样充足的信息就给系统排查工作提供了极大的帮助。
你可以想象一下,没有 strace 的时候,你只是看到了程序的表象,也就是程序想让你看到的,你才能看到(比如通过标准输出或者日志文件)。而有了 strace,程序的一举一动就全在你的视野里了,你就像有了火眼金睛,程序在明里暗里干的所有事情,都会被你知道。

除了 strace,你还知道哪些 trace 类的工具可以帮助排查呢?(来自AI-文言一心)

ptrace可以用来追踪和记录系统调用,它能够让你了解程序在执行期间发生了什么。它提供了强大的分析功能,以帮助你理解程序的执行流程和性能瓶颈。

此外,ltrace是一个类似于strace的工具,但它用于追踪库函数调用而不是系统调用。它能够追踪程序执行过程中所有调用的库函数,帮助你查找库函数调用中出现的问题。

另外,ktrace是另一个常用的trace工具,它可以追踪进程在内核态的行为。通过使用ktrace,你可以了解内核函数调用的具体情况,从而帮助你分析内核级别的错误和问题。

还有,perf是一个强大的性能分析工具,它可以用来追踪程序在各种情况下的性能瓶颈。它提供了丰富的功能,能够让你准确地了解程序的执行情况和性能特征。

安装环境和方式

操作系统环境centos7

[root@centos7 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@centos7 ~]# uname --kernel-release
3.10.0-1160.95.1.el7.x86_64

安装方式

[root@centos7 ~]# yum install --assumeyes strace

用法用量

直接在命令之前加上 strace。比如我们想知道 curl www.baidu.com 这个命令,在系统调
用层面具体发生了什么,就可以执行 strace curl www.baidu.com,然后就能看到前后的
几十个系统调用,包括打开文件的 openat()、关闭文件描述符的 close()、建立 TCP 连接
的 connect() 等等。

**执行 strace -p PID。**这样的话,你需要先找到进程的 PID,然后执行这条指令来完成追
踪。这比较适合对持续运行的服务(Daemon)进行追踪。比如,你可以先找到某个进程
的进程号,然后执行 strace -p PID,找到这个进程在系统调用方面的细节。当然,你还可
以加上各种其他参数,来达到不同的追踪效果。

在这里插入图片描述

我们可以对 strace 命令加上 -c 参数,这样可以统计每个系统调用消耗的时间和次数,看
看这个top系统调用,占用了多少比例。我们在 strace 前面加上
timeout 5,就可以收集 5 秒钟的数据了,命令如下:

timeout 5 strace -cp 进程号
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1192949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【EI会议征稿】第八届先进能源科学与自动化国际研讨会(AESA 2024)

第八届先进能源科学与自动化国际研讨会(AESA 2024) 2024 8th International Workshop on Advances in Energy Science and Automation 继AESA 2017-2023相继成功举办之后,来自国内外多所高校、科研院所及企业代表在先进能源科学与自动化的科研合作和交流…

【虹科干货】Lambda数据架构和Kappa数据架构——构建现代数据架构

如何更好地构建我们的数据处理架构,如何对IT系统中的遗留问题进行现代化改造并将其转变为现代数据架构?该怎么为你的需求匹配最适合的架构设计呢,本文将分析两种最流行的基于速度的数据架构,为你提供一些思路。 文章速览&#xf…

2023最新版JavaSE教程——第5天:数组

目录 一、数组的概述1.1 为什么需要数组1.2 数组的概念1.3 数组的分类 二、一维数组的使用2.1 一维数组的声明2.2 一维数组的初始化2.2.1 静态初始化2.2.2 动态初始化 2.3 一维数组的使用2.3.1 数组的长度2.3.2 数组元素的引用 2.4 一维数组的遍历2.5 数组元素的默认值 三、一维…

【开源】基于Vue和SpringBoot的生活废品回收系统

项目编号: S 003 ,文末获取源码。 \color{red}{项目编号:S003,文末获取源码。} 项目编号:S003,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&…

SAP 50策略测试简介

上篇博文写了40策略的测试,40策略就是典型的按库存生产,考虑库存,考虑销售订单。 本文将测试50策略,按单生产用的最多的策略。相信很多公司按单生产应该都会用到50的策略 1、首先还是先创建物料AB3 同时将BOM中的原材料的独立集中的字段设置为1 2、创建BOM—CS01 3、同杨…

01_ddim_inversion_CN

DDIM反转 设置 # !pip install -q transformers diffusers accelerateimport torch import requests import torch.nn as nn import torch.nn.functional as F from PIL import Image from io import BytesIO from tqdm.auto import tqdm from matplotlib import pyplot as p…

离散Hopfield神经网络分类——高校科研能力评价

大家好,我是带我去滑雪! 高校科研能力评价的重要性在于它对高等教育和科研体系的有效运作、发展和提高质量具有深远的影响。良好的科研能力评价可以帮助高校识别其在不同领域的强项和薄弱点,从而制定战略,改进教学和科研&#xff…

C语言求解:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位(约瑟夫问题)

完整代码&#xff1a; /* 有n个人围成一圈&#xff0c;顺序排号。从第一个人开始报数&#xff08;从1到3报数&#xff09;&#xff0c;凡报到3的人 退出圈子&#xff0c;问最后留下的是原来第几号的那位*/ #include<stdio.h>//约瑟夫问题 //递推关系f(n)(f(n-1)2)\mod n…

白嫖阿里云服务器,速看!数量不多

白嫖阿里云服务器攻略来了&#xff0c;在阿里云免费试用中心可以申请免费服务器&#xff0c;但是阿里云百科不建议选择免费的&#xff0c;只有3个月使用时长&#xff0c;选择99元服务器不是更香&#xff0c;2核2G配置3M固定带宽&#xff0c;一年99元&#xff0c;重点是新老用户…

使用screw一键生成数据库文档

今天分享一个好用的工具&#xff0c;screw&#xff0c;他是一款国产开源软件支持将数据库库表结构一键生成html、word、markdown文档&#xff0c;非常的好用&#xff0c;项目详情页&#xff1a;https://gitee.com/leshalv/screw 背景 我们项目的开发模式是甲方、乙方这种&…

k8s、数据存储

数据存储的概念 容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重启它&#xff0c;但是容器中的文件将丢失——容器以干净的状态&#xff08;镜像最初的状态&#xff09;…

ChatGPT风潮再起!最新国内产品一网打尽,畅游指南曝光!

一、国内类chatgpt产品 在人工智能领域&#xff0c;自然语言处理&#xff08;NLP&#xff09;是一个重要的方向&#xff0c;涉及到语音识别、文本生成、机器翻译、问答系统等多个应用场景。近年来&#xff0c;随着深度学习技术的发展&#xff0c;NLP也取得了突破性的进展&#…

PTE-DI 练习 + 模板

目录 重点&#xff1a;平时练习的模板&#xff0c;一定要滚瓜烂熟 25秒准备时间 要想拿还不错的分数&#xff0c;fluency 一定要足够地高 Preparation 1.Look at the title and other words inthe image 2.Look for simple information(highest/lowest) Speak 1.Speak …

断点续传-http中Header参数Range(分段请求基础)

文章目录 Range请求头信息介绍RangeIf-Range 响应头Content-RangeAccept-Ranges 需要用到几个http头 rangeif-rangecontent-rangeaccept-range 断点续传的优缺点 好处&#xff1a;防止大文件下载过程出现网络异常&#xff0c;而前功尽弃。缺点&#xff1a;要发起多次请求&…

Bean的循环依赖问题

2023.11.10 通俗来讲&#xff0c;循环依赖指的是一个实例或多个实例存在相互依赖的关系&#xff08;类之间循环嵌套引用&#xff09;。比如&#xff1a;丈夫类Husband&#xff0c;妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。 正常调用这两对象不会出现问题&am…

【华为数通HCIP | 网络工程师】821-BGP 组播高频题与解析(1)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

echarts 圆环图 高亮事件 切换 中心文字

createEcharts() {let chartDom this.$refs.echartsthis.Echarts echarts.init(chartDom)let option {title: {text: 128, //主标题文本subtext: 总数, //副标题文本left: center,top: 32%,textStyle: {fontFamily: Montserrat-MediumItalic,fontSize: 30,color: #fff,align…

百度搜索深度学习模型业务及优化实践

作者 | Xin 导读 百度搜索架构部模型架构组&#xff0c;致力于将最新的人工智能技术以更低的成本被百度数亿用户体验到。这个过程中会面临非常多的系统、工程层面的问题&#xff0c;甚至在深度学习模型领域&#xff0c;我们看到越来越多的工作并不拘泥于工程本身。 本文主要分享…

Jython可以运行在java中的python

什么是Jython Jython是一种Python语言在Java平台上的实现。它旨在让Python程序员能够在Java平台上编写Python程序&#xff0c;同时还可以利用Java类库中的所有功能。 与传统的Python相比&#xff0c;Jython具有以下几个特点&#xff1a; 可以直接访问Java类库&#xff1a;因为…

C++结构体定义 创建 赋值 结构体数组

结构体是什么&#xff1f; struct是自定义数据类型&#xff0c;是一些类型集合组成的一个类型。结构体的定义方式 #include<iostream> using namespace std;struct Student {string name;int age;int score; };创建结构体变量并赋值 方式一&#xff0c;先创建结构体变…