用取样思想一探AIX上进程性能瓶颈

本篇文章也是我在解决客户问题时的一些思路,希望对读者有用。

本文与GDB也与DBX(AIX上的调试工具)无关,只是用到了前文《GDB技巧》中的思想:取样思想

客户问题:

原始问题是磁盘被占满了,通过调查得知有个我们的进程刷数据刷的特变慢,于是就得查这个进程到底慢在哪?

解决方案:

通过每隔一秒取样当时的callstack,然后统计下谁最耗时。

AIX上可以用dbx取得callstack,但有现成的procstack能直接用,免得麻烦了。

写一个简单的shell script:

#!/bin/sh# Usage: ./call_stack.sh <pid>
# Target: Get call stack of process every secondif [ "$#" -ne 1 ]; thenecho "Usage: $0 <process_id>"exit 1
fiprocess_id="$1"while true; doif ! kill -0 "$process_id" 2>/dev/null; thenecho "Process $process_id has exited."breakfidate >>/tmp/callstack.outprocstack "$process_id" >>/tmp/callstack.outsleep 1
done

最后一统计第一层的函数竟然是writev占绝对优势, 是IO方面的问题,所以请求客户与IBM联系去了。

总结

也许AIX上有现成的像Linux上gperf这样的工具? 我不得而知,但我直接用了适用于各种平台的大法:取样,不必去研究AIX上的性能工具了,而且适用于release版本程序。

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

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

相关文章

C++ 系列 第四篇 C++ 数据类型上篇—基本类型

系列文章 C 系列 前篇 为什么学习C 及学习计划-CSDN博客 C 系列 第一篇 开发环境搭建&#xff08;WSL 方向&#xff09;-CSDN博客 C 系列 第二篇 你真的了解C吗&#xff1f;本篇带你走进C的世界-CSDN博客 C 系列 第三篇 C程序的基本结构-CSDN博客 前言 面向对象编程(OOP)的…

Star 10.4k!推荐一款国产跨平台、轻量级的文本编辑器,内置代码对比功能

notepad 相信大家从学习这一行就开始用了&#xff0c;它是开发者/互联网行业的上班族使用率最高的一款轻量级文本编辑器。但是它只能在Windows上进行使用&#xff0c;而且正常来说是收费的&#xff08;虽然用的是pj的&#xff09;。 对于想在MacOS、Linux上想使用&#xff0c;…

不瞒各位,不安装软件也能操作Xmind文档

大家好&#xff0c;我是小悟 作为搞技术的一个人群&#xff0c;时不时就要接收产品经理发过来的思维脑图&#xff0c;而此类文档往往是以Xmind编写的&#xff0c;如果你的电脑里面没有安装Xmind的话&#xff0c;不好意思&#xff0c;是打不开这类后缀结尾的文档。 打不开的话…

TensorRT-LLM保姆级教程(二)-离线环境搭建、模型量化及推理

随着大模型的爆火&#xff0c;投入到生产环境的模型参数量规模也变得越来越大&#xff08;从数十亿参数到千亿参数规模&#xff09;&#xff0c;从而导致大模型的推理成本急剧增加。因此&#xff0c;市面上也出现了很多的推理框架&#xff0c;用于降低模型推理延迟以及提升模型…

即兴语录-即兴小索奇语录

如果你想要实现自己的梦想&#xff0c;就不能害怕失败。因为失败是成功的垫脚石。 谁说失败了就一定是坏事&#xff1f;其实每一次失败都是一次成功的垫脚石。只有经历过失败的人&#xff0c;才能更好地理解成功的滋味。

处理器中的TrustZone之安全状态

在这个主题中&#xff0c;我们将讨论处理器内对TrustZone的支持。其他部分则涵盖了在内存系统中的支持&#xff0c;以及建立在处理器和内存系统支持基础上的软件情况。 3.1 安全状态 在Arm架构中&#xff0c;有两个安全状态&#xff1a;安全状态和非安全状态。这些安全状态映射…

改善你的登录页:登录设计的极致指南!

登录页面相当于产品的立面。无论是网站还是APP&#xff0c;用户打开后&#xff0c;首先映入眼帘的就是登录页面&#xff0c;用户在这里进行下一步的操作。如果登录页面的UI设计错误&#xff0c;界面视觉混乱&#xff0c;往往会在用户详细了解产品之前关闭并离开。希望大家通过这…

【qml入门系列教程】:qml QtObject用法介绍

作者:令狐掌门 技术交流QQ群:675120140 博客地址:https://mingshiqiang.blog.csdn.net/ 文章目录 QtObject 是 Qt/QML 中的一个基础类型,通常用作创建一个没有 UI 的(不渲染任何东西的)纯逻辑对象。可以使用它来组织代码、存储状态或者作为属性和方法的容器。 以下是如何…

dp-拦截导弹2

所有代码均来自于acwing中的算法基础课和算法提高课 Description 某国为了防御敌国的导弹袭击&#xff0c;发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷&#xff1a;虽然它的第一发炮弹能够到达任意的高度&#xff0c; 但是以后每一发炮弹都不能高于前一发的高度。…

Python神器:快速删除文本文件中指定行的方法

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 1. 简介 文件操作是编程中的重要方面。Python作为强大的编程语言&#xff0c;提供了处理文件的能力。删除特定行是文件处理中常见的需求。 2. 打开文件和读取内容 当打开文件并读取其内容时&#xff0c;open(…

Windows下打包C++程序无法执行:无法定位程序输入点于动态链接库

1、问题描述 环境&#xff1a;CLionCMakeMinGW64遇到问题&#xff1a;打包的exe无法运行&#xff0c;提示无法定位程序输入点于动态链接库。 2、解决思路 ​ 通过注释头文件的方式&#xff0c;初步定位问题是因为使用了#include <thread> 多线程库引起的。而且exe文件…

机器人学英语

我的prompt i want to you act as an english language teacher/asistant to help me study english, you could teach me in such a way: you ask me questions and i answer them, and you help me correct the grammer or word mistakes in my expression and polish my par…

Kubeadm构建K8S集群指南:从环境准备到Dashboard部署的详细步骤与常见问题解决方案

文章目录 一、环境准备1、准备1主2从2、设置主机名与时区3、添加hosts网络主机配置4、关闭防火墙5、验证是否配置正确 二、安装Kubeadm1、在每个Centos上安装Docker2、确保从cgroups均在同一个从groupfs3、安装kubeadm集群部署工具4、关闭交换区5、配置网桥6、通过镜像安装k8s7…

C#的参数数组

概念&#xff1a; 参数数组&#xff08;也称为可变参数&#xff09;可以来向方法传递可变数量的参数。 参数数组允许您以一种更灵活的方式定义和调用方法&#xff0c;而无需提前指定参数的数量。以下是使用参数数组的步骤&#xff1a; 1. 定义参数数组&#xff1a; 在方法的参…

继承 多态 拆箱装箱 128陷阱 枚举类

继承 在java里一个类只能继承一个类&#xff0c;但可以被多个类继承&#xff1b;c里一个类可以继承多个类&#xff1b; 子类可以使用父类的方法&#xff1b; 在java中&#xff0c;Object是所有类的父类&#xff1b; equals方法比较的是对象是否指向同一个地方&#xff0c;这个方…

C语言面试之旅:掌握基础,探索深度(面试实战之ARM架构一)

从前不会回头&#xff0c;往后不会将就。 ----小新 一.ARM采用32位架构 ARM约定一个Byte是8 bits&#xff0c;一个Halfword是16 bits (2 byte)&#xff0c;一个Word是32 bits (4 byte)。大部分ARM core …

华清远见嵌入式学习——C++——作业3

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;class Per { private:string name;int age;double *high;double *weight; public://有参构造函数Per(string n,int a,double h,double w):name(n),age(a),high(new double(h)),weight(ne…

Vue3.x 中 hooks 函数封装和使用

一、hooks 是什么 vue3 中的 hooks 就是函数的一种写法&#xff0c;就是将文件的一些单独功能的 js 代码进行抽离出来进行封装使用。 它的主要作用是 Vue3 借鉴了 React 的一种机制&#xff0c;用于在函数组件中共享状态逻辑和副作用&#xff0c;从而实现代码的可复用性。 注…

Python类型注解必备利器:typing模块解读指南

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python 3.5版本后引入的typing模块为Python的静态类型注解提供了支持。这个模块在增强代码可读性和维护性方面提供了帮助。本文将深入探讨typing模块&#xff0c;介绍其基本概念、常用类型注解以及使用示例&am…

详细学习Pyqt5的9种显示控件

Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图&#xff08;Item View&#xff09; 快速弄懂Pyqt5的4种项目部件&#xff08;Item Widget&#xff09; 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…