Linux系统卡顿处理记录(Debian)

问题现象描述

        现象linux操作系统卡顿(就是很慢),但是系统任然能够使用。

        文章一步步的排查并且定位问题。

排查步骤

1. 使用top命令查看CPU是否占用过高。(未发现)排除问题

2. 使用df -h查看硬盘是否被占满。(未发现)排除问题

3. 使用cat命令在/tmp目录下执行速度很快,在/home/xxx 目录先执行很慢。(猜测和硬盘有关)但是他们是同一块硬盘。由于该问题在很多电脑上都出现暂时排除硬盘坏道导致。(猜测和硬盘读写有关,如果硬盘读写被占满有可能会导致读写速度缓慢的情况)

使用一下命令查看IO状态

# 安装
sudo apt-get install iotop
sudo iotop

未发现文件读写很多的情况。

4. 发现vim和cat命令都很卡,所以直接使用strace定位cat命令的问题。

sudo apt install strace
strace -tt -o tt.log cat xxxx 

 发现在这个位置执行了快2分钟。大概率问题就在这里。

在日志中看头看到这样的的读取,这个非系统so文件。

通过16923可以知道进程,问题大概定位到那个应用导致的。

 5. 通过进程号查找进程环境变量

cat /proc/进程号/environ

最终发现该进程PRE_LOAD了一个so文件,该so文件修改了读取文件的函数逻辑导致程序卡顿。

他其实是一个监控软件,监控系统文件读写情况(安全相关)

6. 通过进程号查应用

ps -ef | grep 进程ID

通过dpkg -S 查询应用名称。

strace命令使用

strace 是一个用于跟踪程序系统调用的Linux命令。它可以记录程序执行时与操作系统内核之间的交互,包括系统调用、信号传递、进程间通信等。下面我将以教程的方式分点说明如何使用 strace 命令,并附带一个简单的案例。

1.安装 strace

在大多数Linux发行版中,`strace` 工具是预装的。如果你的系统没有安装,你可以使用包管理器安装它。

- 在Debian/Ubuntu系统中使用以下命令安装:

  sudo apt-get install strace

- 在Red Hat/CentOS系统中使用以下命令安装:

 sudo yum install strace

2. 基本使用

要使用 `strace`,只需在终端中输入命令,然后跟上要跟踪的命令。例如:

strace ls

这将会显示 `ls` 命令的系统调用。

3. 输出到文件

你可以将 `strace` 的输出保存到文件中,以便后续分析:
```bash
strace -o output.txt ls
```

4. 显示系统调用的详细信息

默认情况下,`strace` 只会显示系统调用的名称。如果你想要查看更详细的信息,可以使用 `-v` 选项:
```bash
strace -v ls
```

5. 跟踪特定系统调用

如果你只对特定的系统调用感兴趣,你可以使用 `-e` 选项来指定:
```bash
strace -e open ls
```
以上命令将只跟踪 `open` 系统调用。

6. 案例:跟踪一个程序

让我们以一个简单的C程序为例。假设有一个名为 `example.c` 的C程序:```c
 

#include <stdio.h>int main() {printf("Hello, World!\n");return 0;
}

首先,编译这个程序:
 

gcc -o example example.c

然后,使用 `strace` 跟踪这个程序:

strace ./example

这将输出 `example` 程序执行期间的所有系统调用信息,包括文件操作、内存分配等。

以上就是使用 `strace` 的基本教程和一个简单的案例。请注意,`strace` 可以提供非常详细的输出,因此在分析大型程序时可能需要使用其他工具来处理和筛选输出。

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

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

相关文章

竞赛 深度学习 opencv python 实现中国交通标志识别

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…

Kubernetes使用OkHttp客户端进行网络负载均衡

在一次内部Java服务审计中&#xff0c;我们发现一些请求没有在Kubernetes&#xff08;K8s&#xff09;网络上正确地实现负载均衡。导致我们深入研究的问题是HTTP 5xx错误率的急剧上升&#xff0c;由于CPU使用率非常高&#xff0c;垃圾收集事件的数量很多以及超时&#xff0c;但…

ctfshow-ssti

web361 名字就是考点&#xff0c;所以注入点就是name 先测试一下存不存在ssti漏洞 利用os模块&#xff0c;脚本 查看一下子类的集合 ?name{{.__class__.__base__.__subclasses__()}} 看看有没有os模块&#xff0c;查找os 利用这个类&#xff0c;用脚本跑他的位置 import …

LeetCode(力扣)416. 分割等和子集Python

LeetCode416. 分割等和子集 题目链接代码 题目链接 https://leetcode.cn/problems/partition-equal-subset-sum/ 代码 class Solution:def canPartition(self, nums: List[int]) -> bool:sum 0dp [0]*10001for num in nums:sum numif sum % 2 1:return Falsetarget …

arm实验

设置按键中断&#xff0c;按键1按下&#xff0c;LED亮&#xff0c;再次按下&#xff0c;灭 按键2按下&#xff0c;蜂鸣器叫&#xff0c;再次按下&#xff0c;停 按键3按下&#xff0c;风扇转&#xff0c;再次按下&#xff0c;停 头文件 #ifndef __CTRL_KEY_H__ #define __CT…

Learning Sample Relationship for Exposure Correction 论文阅读笔记

这是中科大发表在CVPR2023的一篇论文&#xff0c;提出了一个module和一个损失项&#xff0c;能够提高现有exposure correction网络的性能。这已经是最近第三次看到这种论文了&#xff0c;前两篇分别是CVPR2022的ENC&#xff08;和这篇文章是同一个一作作者&#xff09;和CVPR20…

cap分布式理论

cap 理论 cap是实现分布式系统的思想。 由3个元素组成。 Consistency&#xff08;一致性&#xff09; 在任何对等 server 上读取的数据都是最新版&#xff0c;不会读取出旧数据。比如 zookeeper 集群&#xff0c;从任何一台节点读取出来的数据是一致的。 Availability&…

Unity基于C#事件委托机制

事件委托是一种用于实现观察者模式的设计模式&#xff0c;它允许对象在发生特定事件时通知其他对象。在Unity中&#xff0c;事件委托机制为开发者提供了一种简单而有效的方式来处理游戏中的事件和交互。 对啦&#xff01;这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的…

解决方案 | 法大大电子签精准击破销售场景签约难题

新商业形态及新交易模式不断涌现&#xff0c;电子签已经成为现代商业活动中不可或缺的一部分。特别是在销售场景中&#xff0c;电子签的应用不仅可以提高销售效率&#xff0c;还可以降低成本&#xff0c;提高客户满意度。本文将详细分析电子签在销售场景中的应用价值能力&#…

快速解决“找不到msvcr120.dll无法执行代码”问题,总结5解决方法

计算机已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;在使用计算机的过程中&#xff0c;我们常常会遇到各种问题&#xff0c;其中之一就是找不到msvcr120.dll文件。这个问题可能会可能导致计算机程序软件&#xff0c;游戏无法正常运行&#xff0c;影响到我们的工…

(十四)VBA常用基础知识:当前excel文件所有sheet循环,获取sheet名,获取最大行数最大列数

获取当前excel的所有sheet以及sheet名 Sub test()Dim ws As WorksheetFor Each ws In Worksheetsws.ActivateDebug.Print ws.NameNext ws End Sub 输出结果&#xff1a; Sheet1 Sheet2 Sheet3 Sheet4 Sheet52.获取最大行数 首先要明白取最大行的方式&#xff0c;为什么这样取…

ceph 分布式存储与部署

目录 一、存储基础&#xff1a; 1.单机存储设备&#xff1a; 2. 单机存储的问题&#xff1a; 3. 商业存储解决方案&#xff1a; 4. 分布式存储&#xff1a; 5. 分布式存储的类型&#xff1a; 二、Ceph 简介&#xff1a; 三、Ceph 优势&#xff1a; 四、Ceph 架构&#xff1a…

01 时钟配置初始化,debug

1. 开启debug series&#xff0c;否则只能下载一次&#xff0c;再次下载要配置boot 2.f0外部时钟配置 h750 配置 实测可用

FPGA面试题(1)

一.FPGA内部结构 可编程I/OPLL锁相环&#xff08;其作用为&#xff1a;分频&#xff0c;倍频&#xff0c;相位调节、占空比&#xff09;逻辑阵列块LAB&#xff08;每个LAB由16个逻辑器件LE组成&#xff0c;每个LE包括一个查找表LUT和一个RAM构成。Cyclone IV EP4CE6F17C8中包含…

【Spring AOP】统一异常处理

统一异常处理 统⼀异常处理使⽤的是 ControllerAdvice ExceptionHandler 来实现的&#xff0c; 类上面加上 ControllerAdvice 注解表示控制器通知类方法上面加上 ExceptionHandler 表示异常处理器&#xff0c;并添加异常返回的业务代码 两个结合表示当出现异常的时候执⾏某个…

Android终极大招之全面取代drawble文件实现View圆角背景样式的新方案

简介 最近一直忙于音视频SDK的开发&#xff0c;遇到很多问题&#xff0c;简单来说&#xff0c;就是怎么让别人接入SDK时越简单越好。相信大多数Android开发都会遇到一个场景&#xff0c;给TextView或Button添加背景颜色&#xff0c;修改圆角&#xff0c;描边等需求。一看到这样…

React 组件传 children 的各种方案

自定义组件的时候往往需要传 children&#xff0c;由于写法比较多样&#xff0c;我就总结了一下。 方案列表 1. 类组件1.1 类组件&#xff0c;不使用解构1.2 类组件&#xff0c;使用解构 2. 函数组件2.1 函数组件&#xff0c;不使用解构2.2 函数组件&#xff0c;外部解构2.3 函…

docker 登录本地仓库harbor问题

1、报错如下&#xff1a; 添加目标harbor 仓库的hosts vim /etc/hosts 2、报错如下&#xff1a; 添加修改/etc/docker/daemon.json文件中的 insecure-registries vim /etc/docker/daemon.json 然后 systemctl daemon-reload systemctl restart docker再次登录

HQChart实战教程66-动态调整HQChart布局大小

HQChart实战教程66-动态调整HQChart布局大小 需求小程序h5AppHQChart插件源码地址 需求 在不销毁hqchart实例的情况下&#xff0c;动态调整K线图或分时图的大小&#xff0c; 如下图&#xff0c;把图1的K线图大小调整为图2的大小 图1 图2 小程序 调整画布大小&#xff0c;并…

(c语言进阶)指针的进阶

一.字符指针 1.一般应用 &#xff08;1&#xff09;%c的应用 &#xff08;2&#xff09;%s的应用 字符指针没有权限通过解引用去改变指针指向的值 2.笔试题 题目&#xff1a;判断输出结果 int main() { const char* p1 "abcdef"; const char* p2 "…