系统监控命令

2023-05-16

top命令

    top -c: 在top命令显示界面显示出完整的进程名和启动参数

    top -H: 在top命令中显示所有的线程

    top -p pid: 这个pid可以是进程pid,也可以是线程pid(进程的pid就是该进程主线程的pid), 该命令实际显示的是该线程所属进程的状态.

    top -H -p pid: pid是一个线程号, 该命令列出该线程所属进程的所有线程的状态


gstack 参看进程堆栈

    gstack pid:

1. pid是进程号时(主线程号),显示进程当前所有线程的调用堆栈

2. pid是线程号时(非主线程号), 显示当前线程的调用堆栈

    gstack是实时的, 某个时刻的堆栈显示只是这个时刻的堆栈调用情况


rdtsc CPU clock计数

typedef struct CPUUsage
{
double m_cycles; /* number of cycles */
} CPUUsage;

static inline unsigned long rdtsc(void)
{
    unsigned int hi = 0;
    unsigned int lo = 0;
    asm volatile("rdtsc" : "=a"(lo), "=d"(hi));
    return ((unsigned long)lo ) | (((unsigned long)hi) << 32);
}

static void
CPUUsageGetCurrent (CPUUsage *cur)
{
cur->m_cycles = rdtsc ();
}

static void
CPUUsageAccumDiff(CPUUsage *dst,
 const CPUUsage *add,
 const CPUUsage *sub)
{
dst->m_cycles += add->m_cycles - sub->m_cycles;
}

可以用于CPU计数, 一个时钟周期,CPU计数就加1, 通过计算两个点之间的CPU计数的差值, 就可以得出两个点之间的时间(计数差值/CPU频率).

问题:

1. 当CPU处于省电模式时, CPU频率可能跳变, 时间不准---- >解决方法: 关闭CPU省电,让CPU频率不变

2. 多核CPU时, 进程可能在不同CPU之间跳变, 如果CPU之间的时钟计数器不同步,计数差值会错误---->解决方法:

1):关闭CPU省电,同步CPU之间的计数(貌似很困难)

2):将进程与CPU绑定


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统监控命令 的相关文章

随机推荐

  • c语言结构体对齐

    C语言结构体对齐也是老生常谈的话题了 基本上是面试题的必考题 结构体到底怎样对齐 xff1f 下面总结了对齐原则 xff0c 在没有 pragma pack宏的情况下 xff1a 原则1 普通数据成员对齐规则 xff1a 第一个数据成员放在
  • 【C语言】关于printf的缓冲区问题

    前言 使用printf时 xff0c 发现要打印的东西并没有打印出来 xff0c 而是要等到下次printf n 或者程序退出时才会一起打印出来 代码示例 xff1a span class token macro property span
  • ubuntu 18.04+melodic版本ros安装问题

    ubuntu 18 04 43 melodic版本ros安装问题 1 问题Cannot locate rosdep definition for openslam gmapping 原因是在melodic 版本中还没有加入openslam
  • ros安装问题:source/opt/ros/kinetic/setup.bash: 没有那个文件或目录

    source opt ros kinetic setup bash 没有那个文件或目录 最近在学习中科院的ros系统教程 xff0c 在安装ros过程中 xff0c 使用 source bashrc 会出现问题 xff1a bash sou
  • 错误:Failed to contact master

    在ros运行时 xff0c 可能出现一下错误 xff1a ERROR registerPublisher Failed to contact master at localhost 11311 Retrying 原因很简单 xff0c 忘记
  • 将两个字符串连接起来,不要用strcat函数。

    3 将两个字符串连接起来 xff0c 不要用strcat函数 include lt stdio h gt int main char str1 80 str2 40 int i 61 0 j 61 0 printf 34 please en
  • MSComm控件配置为奇偶校验的方式

    Put Settings T 9600 e 8 1 其中 xff1a e xff0c 表示even xff0c 偶校验 xff1b o xff0c 表示odd xff0c 奇校验 xff1b n xff0c 表示无奇偶校验
  • [转]C++头文件包含顺序问题

    C 43 43 中类的声明和类的定义分开几乎成了一个不成文的规定 这样做的好处是使得类的声明和实现分开 xff0c 清晰明了 xff0c 同时便于库函数发布 但是在实际编程中由此也常常引起了一些由于头文件的包含顺序问题而产生的符号未定义的编
  • ubuntu6-ubuntu采用tomcat搭建http下载服务器

    一 下载 1 1 tomcat官网 Apache Tomcat Welcome 1 2 ubuntu下载tomcat cd tmp sudo wget https dlcdn apache org tomcat tomcat 10 v10
  • 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误

    正文 最新哔哩哔哩视频弹幕播放器源码 43 带后台 亲测无错误 xff0c 此款播放器源码添加及修复了很多功能 xff0c 且所有源码均本地化 xff0c 不存在外链的情况 xff0c 测试环境 xff1a PHP7 0 43 MySQL5
  • UDP的socket绑定到IP地址后无法接受广播数据

    UDP的socket绑定到IP地址后无法接受广播数据 fannyth 05 11 10 18 37 由于考虑到我的程序要在多网卡的机器上运行 所以我将网卡的ip地址绑定到了socket server addr sin addr s addr
  • (四)可视化IMU数据

    一 xff29 xff2d xff35 数据格式 从KITTI的readme文件中https github com yanii kitti pcl blob master KITTI README TXT可以看到IMU里数据的格式 KITT
  • ROS项目开发实战(一)——STM32与ROS串口通信

    序 本文主要发布一些作者从零开始开发ROS的项目实战经验 xff0c 包括一些经验与本文遇到坑时的解决方案 xff0c ROS因为版本不同与开发环境不同在实际开发中会遇到各类问题 xff0c 下面就细细道来 一 环境搭建 本人开发环境 上位
  • I2C驱动体系结构一:驱动软件概念与对应硬件的关系

    一 概念 xff1a 1 设备 xff1a struct device xff1a 该数据结构是对物理设备的软件抽象 xff0c 比如I2C slave xff08 对应i2c client xff09 和I2C 适配器 xff08 对应i
  • TCP Server&Client socket实现(Ubuntu16.04)

    TCP Server amp Client socket实现 xff08 Ubuntu16 04 xff09 1 测试 xff1a 2 TCP Server3 TCP Client 1 测试 xff1a 2 TCP Server span
  • 关于为什么不能在头文件中包含变量定义的解释

    其实 xff0c 并不是C语言标准不允许在头文件中包含变量定义 xff0c 而是编译器本身产生了重复定义的错误 这时候有些人会很奇怪 xff0c 我不是写了 ifndef define endif这样的命令了吗 xff1f 如果你这样以为
  • 关于同一交换机下设置不同网段的PC的通信的猜测

    PC A IP 192 168 1 10 PC B IP 192 168 2 20 子网掩码24位 A和B都连接到一台二层交换机上 交换机上没有再接其他设备 A和B能否通信 从网上搜索了一下 发现有很多人问这个问题 但是大家的回答都很抽象
  • XP + Fedora 9 + Ubuntu8.10 安装过程点滴

    lt 64 page size 21cm 29 7cm margin 2cm P margin bottom 0 21cm gt XP 43 Fedora 9 43 Ubuntu8 10 安装过程点滴 fanfan 额外必须的软件 GRUB
  • 在Ubuntu下装MultiGet成功。。。

    本来用的是 xff0c deb包的1 1 2版 xff0c 下点不大的文件还可以 xff0c 可是我去下Ubuntu的DVD就出麻烦了 xff0c 早上把任务开起 xff0c 晚上回来居然什么都不见了 xff0c 连 Multiget程序都
  • 系统监控命令

    top命令 top c 在top命令显示界面显示出完整的进程名和启动参数 top H 在top命令中显示所有的线程 状 top p pid 这个pid可以是进程pid 也可以是线程pid 进程的pid就是该进程主线程的pid 该命令实际显示