Linux各类性能分析工具用法详解

news2024/11/26 5:40:05

文章目录

    • 静态性能分析工具
      • 文件系统观测工具
      • 虚拟文件系统(VFS)分析工具
      • 磁盘管理工具
      • 进程资源占用监测
      • 系统库调用分析工具
      • 网络配置
      • 防火墙配置
      • 多路径配置
      • 进程调度
      • 系统命令操作
      • 查看硬件信息
      • 磁盘管理
      • 网络端口
      • 硬件信息
    • 监测工具
      • 内核调用监测
      • 系统调用监测
      • 系统函数调用监测
      • 系统性能监测
      • 系统资源监测
      • 网络资源监测
      • I/O资源监测
    • 性能追踪工具
      • 性能分析和诊断工具
      • CPU性能监测

在Linux性能分析和优化过程中,选用一个好的工具能极大的提高自己的工作效率。这里以Brendan Gregg的Linux性能工具图谱为线索,梳理了Linux系统下各个模块的性能分析工具,并对部分常用工具的用法进行了详细说明。掌握这些工具,可以极大的提高开发者程序性能优化的效果和效率。
在这里插入图片描述

静态性能分析工具

文件系统观测工具

# df命令作用是列出文件系统的整体磁盘空间使用情况
# -h:--human-readable,以人们易读的GB、MB、KB等格式显示
# -a: 显示所有的文件系统; -k 以kb为容量显示单位; -m 以mb为容量显示单位
# 指定文件名称是查看文件所在目录磁盘使用情况,不加名称是所有磁盘的使用情况;
df -h  filename

显示效果如下:

在这里插入图片描述

虚拟文件系统(VFS)分析工具

# lsof 是系统管理/安全监测工具, 用来获取和网络相关的信息
lsof -i              # 显示所有的网络连接
lsof -i 6            # 仅获取ipv6的流量
lsof -iTCP           # 仅显示TCP连接
lsof -i :port        # 用来显示指定端口的网络信息
losf -i@127.0.0.1    # 显示指定到某个主机的连接
losf -i@127.0.0.1:22 # 指定到某个主机端口的连接
losf -i -sTCP:LISTEN # 找到正在等候连接的端口
lsof -i -sTCP:ESTABLISHED # 找出已经建立的连接
lsof -u daniel       # 查看指定用户打开了什么
kill -9 `lsof -t -u daniel` # 杀死指定用户做的一切事情
lsof -u ^daniel      # 除了daniel用户其它用户做的事情  
lsof -c syslog-ng    # 查看指定的命令正在使用的文件和网络连接
lsof -p 10075        # 查看指定进程ID已打开的内容
lsof /var/log/fil    # 显示与指定目录/文件交互的所有一切
# pcstat 用于判断一个文件是否被Linux cache缓存
# github地址: https://github.com/tobert/pcstat  
pcstat testfile3
|-----------+----------------+------------+-----------+---------|
| Name      | Size           | Pages      | Cached    | Percent |
|-----------+----------------+------------+-----------+---------|
| LICENSE   | 11323          | 3          | 0         | 000.000 |
| README.md | 6768           | 2          | 2         | 100.000 |
| pcstat    | 3065456        | 749        | 749       | 100.000 |
| pcstat.go | 9687           | 3          | 3         | 100.000 |
| testfile3 | 102401024      | 25001      | 60        | 000.240 |
|-----------+----------------+------------+-----------+---------|

磁盘管理工具

# mdadm命令可以进行创建、调整、监控、删除RAID设备
mdadm [参数] 设备名
mdadm -D         #  显示RAID设备的详细信息
mdadm -a         #  向RAID中添加新设备
mdadm -G         #  设置RAID设备大小
mdadm -E         #  显示RAID设备成员的详细信息 

# dmsetup(Device mapper setup)的缩写  用于管理硬盘映射器 
dmsetup [参数] 逻辑卷名  
dmsetup deps     #  显示设备的依赖关系
dmsetup info     #  显示有关磁盘映射器的概述信息
dmsetup ls       #  显示映射设备的名称列表
dmsetup remove   #  删除指定的磁盘设备
dmsetup status   #  显示指定设备中每个目标的状态信息
dmsetup table    #  显示虚拟设备的映射表

进程资源占用监测

# pidstat 监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况
pidstat -u -p ALL   # 显示了所有进程的cpu使用率
pidstat -u          # CPU使用情况统计
pidstat -r          # 内存使用情况统计
pidstat -d          # 集成的IO使用情况统计
pidstat -w -p 2831  # 显示进程2831的上下文切换情况
pidstat -t -p 2831  # 显示选择任务的线程的统计信息外的额外信息
pidstat -T TASK     # 报告独立的task 
pidstat -T CHILD    # 进程下所有线程统计信息
pidstat -T ALL      # 报告独立的task和task下面的所有线程

系统库调用分析工具

# ldd 打印程序或者库文件所依赖的共享库列表
ldd --version       # 打印指令版本号;
ldd -v              # 详细信息模式,打印所有相关信息
ldd -u              # 打印未使用的直接依赖
ldd -d              # 执行重定位和报告任何丢失的对象
ldd -r              # 执行数据对象和函数的重定位,并且报告任何丢失的对象和函数
ldd --help          # 显示帮助信息

网络配置

ip link show                        # 显示网络接口信息
ip link list                        # 用ip命令显示网络设备的运行状态 
ip -s link list                     # 显示更加详细的设备信息 
ip link set eth0 up                 # 开启网卡
ip link set eth0 down               # 关闭网卡
ip link set eth0 txqueuelen 1200    # 设置网卡队列长度
ip link set eth0 mtu 1400           # 设置网卡最大传输单元
ip link | grep -E '^[0-9]' | awk -F: '{print $2}' # 显示主机的所有网络接口
ip addr show                        # 显示网卡IP信息
ip addr add 192.168.0.1/24 dev eth0 # 为eth0网卡添加一个新的IP地址192.168.0.1
ip addr del 192.168.0.1/24 dev eth0 # 为eth0网卡删除一个IP地址192.168.0.1

ip route show                                            # 显示系统路由
ip route list                                            # 显示路由核心表   
ip route add default via 192.168.1.254                   # 设置系统默认路由
ip route list                                            # 查看路由信息

ip route add default via  192.168.0.254  dev eth0        # 设置默认网关为192.168.0.254
ip route del 192.168.4.0/24                              # 删除192.168.4.0网段的网关
ip route del default                                     # 删除默认路由
ip route delete 192.168.1.0/24 dev eth0                  # 删除路由

防火墙配置

# iptables 是Linux上常用的防火墙软件 
iptables -F                    # 清空所有的防火墙规则
iptables -X                    # 删除用户自定义的空链
iptables -Z                    # 清空计数

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
# 22为你的ssh端口, -s 192.168.1.0/24表示允许这个网段的机器来连接,其它网段的ip地址是登陆不了你的机器的。 -j ACCEPT表示接受这样的请求

# #本地圆环地址就是那个127.0.0.1,是本机上使用的,它进与出都设置为允许
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -P INPUT DROP          # 配置默认的不让进
iptables -P FORWARD DROP        # 默认的不允许转发
iptables -P OUTPUT ACCEPT       # 默认的可以出去

# 配置白名单
iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT            # 允许机房内网机器可以访问
iptables -A INPUT -p tcp -s 183.121.3.7 --dport 3380 -j ACCEPT  # 允许183.121.3.7访问本机的3380端口

# 开启相应的服务端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT                    # 开启80端口,因为web对外都是这个端口
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT                # 允许被ping
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 已经建立的连接得让它进来

# 保存规则到配置文件中
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak           # 任何改动之前先备份,请保持这一优秀的习惯
iptables-save > /etc/sysconfig/iptables
cat /etc/sysconfig/iptables

# 查看已经设置的规则
# iptables -L [-t 表名] [链名]
# 四个表名 raw,nat,filter,mangle
# 五个规则链名 INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
# filter表包含INPUT、OUTPUT、FORWARD三个规则链
iptables -L -t nat                  # 列出nat上面的所有规则
iptables -L -t nat  --line-numbers  # 规则带编号
iptables -L INPUT                   # 查看某个规则链
iptables -L -nv                     # 查看规则链的详细信息
iptables -L -n -v                   # 查看已添加的规则

# 清除已有规则
iptables -F INPUT  # 清空指定链 INPUT 上面的所有规则
iptables -X INPUT  # 删除指定的链,这个链必须没有被其它任何规则引用,而且这条上必须没有任何规则
                   # 如果没有指定链名,则会删除该表中所有非内置的链
iptables -Z INPUT  # 把指定链,或者表中的所有链上的所有计数器清零

# 删除已添加的规则
iptables -A INPUT -s 192.168.1.5 -j DROP # 添加规则
iptables -L -n --line-numbers            # 查看规则列表
iptables -D INPUT 8                      # 删除序号为8的规则
  
# 开放指定的端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口

# 屏蔽IP地址
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令

# 启动端口映射
# 本机的 2222 端口映射到内网 虚拟机的22 端口
iptables -t nat -A PREROUTING -d 210.14.67.127 -p tcp --dport 2222  -j DNAT --to-dest 192.168.188.115:22

# 过滤所有TCP连接中的字符串test
iptables -A INPUT -p tcp -m string --algo kmp --string "test" -j REJECT --reject-with tcp-reset

多路径配置

# multipath 是一个用于管理多路径设备的命令行工具
# 常用于处理存储设备中的多路径配置
multipath -ll  # 显示系统中所有的多路径设备及其状态信息
multipath -W   # 禁用所有多路径设备
multipath -r   # 重新扫描并重新发现所有的多路径设备

进程调度

# schedtool是一个用于设置进程调度策略和优先级的命令行工具  
schedtool -E <command> # 启动一个新的进程,并使用 schedtool 运行该进程
schedtool -B <PID>     # 将指定进程设置为后台运行,降低其调度优先级
schedtool -F <PID>     # 将指定进程设置为前台运行,提高其调度优先级
schedtool -D <PID>     # 将指定进程设置为非休眠状态,以便更频繁地运行
schedtool -N <PID>     # 将指定进程设置为休眠状态,降低其调度频率
schedtool -p <priority> <PID> # 设置指定进程的静态优先级。较低的值表示较高的优先级。
schedtool -R <PID>     # 将指定进程设置为实时(Real-time)优先级。
schedtool -u <CPU utilization> <PID> # 设置指定进程的 CPU 利用率限制。

系统命令操作

sysctl       #  被用于在内核运行时动态地修改内核的运行参数
journalctl   #  检索 systemd 日志,是 CentOS 7 才有的工具
lsmod        #  显示已载入系统的模块

查看硬件信息

cat cat /proc/cpuinfo  # 查看CPU信息
lscpu                  # 显示有关CPU架构的信息
numactl                # 工具可用于查看当前服务器的NUMA节点配置、状态,可通过该工具将进程绑定到指定CPUcore

磁盘管理

lsblk           # 列出块设备信息 -a 显示所有设备
blockdev        # 从命令行调用区块设备控制程序
fdisk -l        # 查看磁盘使用情况和磁盘分区 

网络端口

ethtool         # 显示或修改以太网卡的配置信息

ifconfig           # 处于激活状态的网络接口
ifconfig -a        # 所有配置的网络接口,不论其是否激活
ifconfig eth0      # 显示eth0的网卡信息
ifconfig eth0 up   # 启动网卡
ifconfig eth0 down # 关闭网卡

# 设置IP 子网掩码 广播地址
ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

硬件信息

dmidecode         # 在Linux系统下获取有关硬件方面的信息
lspci             # 显示当前主机的所有PCI总线信息
lsusb             # 显示本机的USB设备列表信息

监测工具

内核调用监测

# perf 强大的性能分析工具
perf top       # 动态时实追踪显示占用CPU较高的进程
perf report    # 重放perf.data的内容
perf record -p # 指定追踪进程的PID
perf record -g # 启用进程中函数的调用关系
perf record -a # 追踪所有的CPU
perf record sleep N   # 采集多长时间的数据
perf record -ag sleep 10;perf report  # 采集10s的数据并分析

# CPU使用率很高的常见原因
# 第一个原因,进程在不停地崩溃重启,比如因为段错误、配置错误等等
# 第二个原因,这些进程都是短时进程,也就是在其他应用内部通过 exec 调用的外面命令。这些命令一般都只运行很短的时间就会结束

# ftrace 是一个 Linux 内部的 trace 工具,能够帮助开发者和系统设计者知道内核当前正在干啥,从而更好的去分析性能问题。
# SystemTap 是一种跟踪和探测工具,它使用户可以详细研究和监视操作系统(特别是内核)的活动
# BCC是一个Python库,简化了eBPF应用的开发过程,并收集了大量性能分析相关的eBPF应用。

# LTTng(Linux Trace Toolkit Next Generation)它是用于跟踪 Linux 内核、应用程序以及库的系统软件包.
lttng list -k    # 列出所有的可追踪内核事件
lttng create mysession  # 创建一个追踪会话(session)
lttng start      # 开启追踪
lttng enable-event -a -k  # 追踪内核所有的探测点和所有的系统调用事件
lttng enable-event -a -k --syscall  # 追踪所有的系统调用
lttng add-context -k -e sched_switch -t pid  #  打开一个事件的上下文信息
lttng stop       # 关闭追踪  
lttng destroy    # 关闭追踪 

系统调用监测

# strace命令 是一个集诊断、调试、统计与一体的工具
strace -c     #  统计每一系统调用的所执行的时间,次数和出错的次数等.
strace -d     #  输出strace关于标准错误的调试信息.
strace -f     #  跟踪由fork调用所产生的子进程.
strace -o     #  将strace的结果输出到文件中
strace -T     #  将每个系统调用所花费的时间打印出来
strace -p pid #  追踪现有的进程的pid

# Trace 主要用来跟踪和记录系统的内核、内核扩展程序和用户程序,尤其是对系统调用,内核服务和中断处理进行详细的记录
trace -a      # 后台运行
trace -l      # 循环模式
trace -o      # 输出到文件
trace -T      # 表示缓冲区的大小

# sysdig 是一个开源系统发掘工具, 用于系统级别的勘察和排障

系统函数调用监测

#  ltrace命令 是用来跟踪进程调用库函数的情况
ltrace -a   # 对齐具体某个列的返回值
ltrace -c   # 计算时间和调用,并在程序退出时打印摘要
ltrace -C   # 解码低级别名称(内核级)为用户级名称
ltrace -d   # 打印调试信息
ltrace -e   # 改变跟踪的事件
ltrace -f   # 跟踪子进程
ltrace -h   # 打印帮助信息
ltrace -i   # 打印指令指针,当库调用时
ltrace -l   # 只打印某个库中的调用
ltrace -L   # 不打印库调用
ltrace -o   # 把输出定向到文件
ltrace -p PID # 附着在值为PID的进程号上进行ltrace
ltrace -r   # 打印相对时间戳
ltrace -s STRLEN # 设置打印的字符串最大长度
ltrace -S   # 显示系统调用。
ltrace -t, -tt, -ttt # 打印绝对时间戳
ltrace -T   # 输出每个调用过程的时间开销

系统性能监测

# Latencytop 通过在内核上下文切换的时候,记录被切换的进程的内核栈,然后通过匹配内核栈的函数来判断是什么原因导致上下文切换
# Latencytop 可以用来分析系统延迟
# mpstat  用来显示可用CPU的状态
# PowerTOP 是一个 Linux 工具,用于诊断电量消耗和电源管理的问题
# cat /proc/stat  显示统计数据信息

系统资源监测

# top 可以实时动态地查看系统的整体运行情况(CPU、内存)
top -i 时间      # 设置间隔时间
top -u 用户名    # 指定用户名 
top -p pid      # 指定进程
top -n 次数     # 循环显示的次数
top -H          # 所有线程占用资源情况
top -I          # 忽略失效过程;
top -s          # 保密模式
top -S          # 累积模式

# 显示列表的字段名称   
PID        # 进程PID    
USER       # 进程所属用户      
PR         # 优先级
NI         # nice值。负值表示高优先级,正值表示低优先级
VIRT       # 进程使用的虚拟内存总量,单位kb(VIRT=SWAP+RES)
RES        # 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR        # 共享内存大小,单位kb
S          # 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 
%CPU       # 上次更新到现在的CPU时间占用百分比
%MEM       # 进程使用的物理内存百分比
TIME+      # 进程使用的CPU时间总计,单位1/100秒
COMMAND    # 命令名/命令行

# 交互命令
k          # 终止一个进程
i          # 忽略闲置和僵死进程,这是一个开关式命令
q          # 退出程序
o或者O     # 改变显示项目的顺序
l          # 切换显示平均负载和启动时间信息
m          # 切换显示内存信息
t          # 切换显示进程和CPU状态信息
c          # 切换显示命令名称和完整命令行
M          # 根据驻留内存大小进行排序
P          # 根据CPU使用百分比大小进行排序
T          # 根据时间/累计时间进行排序
# htop  一个互动的进程查看器,可以动态观察系统进程状况
# vmstat  显示虚拟内存状态
# slabtop 实时显示内核slab内存缓存信息
# free    显示内存的使用情况
# /proc/meminfo 查看内存信息
# sar     系统运行状态统计工具

# pidstat 监控进程的系统资源占用情况
# pidstat -u 默认的参数,显示各个进程的cpu使用统计
# pidstat -r 显示各个进程的内存使用统计
# pidstat -d 显示各个进程的IO使用情况
# pidstat -w 显示每个进程的上下文切换情况
# pidstat -t 显示到线程的统计信息
# pidstat -p 指定进程号

# ps 查看资源
ps axo pid,comm,pcpu     # 查看进程的PID、名称以及CPU 占用率
ps aux | sort -rnk 4     # 按内存资源的使用量对进程进行排序
ps aux | sort -nk 3      # 按 CPU 资源的使用量对进程进行排序
ps -A                    # 显示所有进程信息
ps -u root               # 显示指定用户信息
ps -efL                  # 查看线程数
ps -e -o "%C : %p :%z : %a" | sort -k5 -nr # 查看进程并按内存使用大小排列
ps -ef                                     # 显示所有进程信息,连同命令行
ps -ef | grep ssh                          # ps 与grep 常用组合用法,查找特定进程
ps -C nginx                                # 通过名字或命令搜索进程
ps aux --sort=-pcpu,+pmem                  # CPU或者内存进行排序,-降序,+升序
ps -f --forest -C nginx                    # 用树的风格显示进程的层次关系
ps -o pid,uname,comm -C nginx              # 显示一个父进程的子进程
ps -e -o pid,comm,etime                    # 显示进程运行的时间
ps -aux | grep named                       # 查看named进程详细信息

网络资源监测

# ss 比 netstat 好用的socket统计信息
ss -t -a               # 显示TCP连接
ss -s                  # 显示 Sockets 摘要
ss -l                  # 列出所有打开的网络连接端口
ss -pl                 # 查看进程使用的socket
ss -lp | grep 3306     # 找出打开套接字/端口应用程
ss src 192.168.119.103:90 # 匹配本地地址和端口号
ss dst 192.168.119.113:443 # 匹配远程地址和端口 

# tcpdump  一款sniffer工具,是Linux上的抓包工具,嗅探器
# iptraf   实时地监视网卡流量
# netstat 查看Linux中网络系统状态信息
netstat -a        # 列出所有端口
netstat -at       # 列出所有tcp端口
netstat -au       # 列出所有udp端口   
netstat -l        # 只显示监听端口
netstat -lt       # 只列出所有监听 tcp 端口
netstat -lu       # 只列出所有监听 udp 端口
netstat -lx       # 只列出所有监听 UNIX 端口
netstat -s        # 显示所有端口的统计信息
netstat -st       # 显示TCP端口的统计信息
netstat -su       # 显示UDP端口的统计信息

I/O资源监测

iostat     # 监视系统输入输出设备和CPU的使用情况
iotop      # 用来监视磁盘I/O使用状况的工具
swapon -s  # 显示交换区的使用状况
cat /proc/swaps # 查看资源交换区的使用情况

性能追踪工具

性能分析和诊断工具

funccount     # 其作用在于统计函数被调用的次数
funclatency   # 获取函数的执行时延
kprobe        # 为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术
argdist       # 工具用于探测指定的函数,并收集参数到一个直方图和频率计数器
trace         # 用于跟踪系统调用和信号的工具。它可以帮助开发人员和系统管理员分析和调试程序的执行过程,以及定位和解决性能问题。
cachestat     # 分析 Linux 系统缓存统计信息的工具。它可以提供关于文件系统缓存、页缓存和目录项缓存等方面的性能统计数据。
filetop       # 用于监控文件系统I/O性能的工具 
xt4slower     # 用于检测ext4文件系统中慢速IO操作的工具
ext4dist      # 用于测量ext4文件系统中的IO操作分布情况,可帮助分析IO负载的分布情况
mdflush       # 用于跟踪并显示多磁盘阵列(MD)子系统中的刷新操作
opensnoop     # 用于实时监测系统中打开文件的过程,可以用于跟踪具体进程打开文件的操作
statsnoop     # 用于跟踪并显示系统调用的统计信息,可以帮助分析系统调用的使用情况
syncsnoop     # 用于跟踪并显示文件系统同步操作的工具
ugc           # 用于分析用户态指令执行的情况,可以显示用户态指令的使用情况和执行时间
ucalls        # 用于捕获并显示用户态程序中的系统调用信息
tcptop        # 用于监测和显示TCP连接的使用情况,例如连接数、数据传输量等
tcpfile       # 用于跟踪和显示TCP文件操作的工具。
tcpconnect    # 用于跟踪并显示TCP连接的建立操作。
tcpaccept     # 用于跟踪并显示TCP连接的接受操作。
tcpconnlat    # 用于测量TCP连接建立过程的延迟时间
tcpretrans    # 用于跟踪并显示TCP重传的情况
gethostlatency  # 用于测量主机名解析过程的延迟时间
biotop        # 用于监测和显示IO操作的使用情况。
biosnoop      # 用于跟踪并显示IO操作的详细信息。
biolatency    # 用于测量IO操作的延迟时间。
bitesize      # 用于统计和显示IO操作的大小分布情况。
hardirqs      # 用于跟踪并显示硬中断的情况。
ttysnoop      # 用于跟踪并显示终端输入输出的情况。
cpudist       # 用于测量和显示CPU使用情况的工具。
execsnoop     # 用于跟踪并显示进程执行的情况。
runlat        # 用于测量和显示进程的运行延迟时间。
offcputime    # 用于显示和分析进程的离线CPU时间。
memleak       # 用于检测和分析内存泄漏问题。
oomkill       # 用于跟踪和显示Out-of-Memory(内存不足)杀死进程的情况。
slabratetop   # 用于监测和显示slab(内核内存分配器)使用情况。
llcstat       # 用于跟踪和显示最后一级缓存(LLC)的使用情况。
profile       # 用于生成进程的性能分析报告。
capable       # 用于跟踪和显示进程权限检查的情况。

CPU性能监测

uptime	  # 展示系统平均负载和系统运行时间
top	      # 按进程展示系统资源使用情况- 之前总结过
mpstat	  # 按每个 CPU 展示 CPU 使用情况
vmstat	  # 系统整体资源使用情况
pidstat	  # 按进程展示 CPU 使用情况
perf	  # 定时采样调用栈信息、事件统计、PMC 跟踪、跟踪点、USDT probes、kprobes 以及 uprobes 等
ftrace	  # 汇报内核函数调用统计、kprobes 和 uprobes 事件跟踪

execsnoo  # 列出新进程的运行信息
exitsnoop # 列出进程运行时长和退出原因
runqlat	  # 统计 CPU 运行队列的延迟信息
runqlen	  # 统计 CPU 运行队列的长度
runqslower # 当运行队列中等待时长超过阈值时打印
cpudist	  # 统计在 CPU 上运行的时间
profile	  # 采样 CPU 运行的调用栈信息

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

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

相关文章

【VRTK4.0运动专题】轴移动AxisMove(真实身体的移动)

文章目录 1、概览2、释义3、属性设置 1、概览 2、释义 “竖直轴”控制的行为“水平轴”控制的行为1Vertical-Slide 滑动Horizontal-Slide 滑动2Vertical-Slide 滑动Horizontal-SmoothRotate 转动3Vertical-Slide 滑动Horizontal-SnapRotate 转动&#xff08;不连续&#xff09…

PDF制作成翻页电子书

在日常工作中&#xff0c;大部分人使用的都是PDF文档发送给客户&#xff0c;但是PDF文档通常是静态的&#xff0c;缺乏交互性和视觉吸引力。那你有没有想过把它转换成翻页的电子书呢&#xff1f; 小编将告诉你操作步骤&#xff0c;非常简单 1.搜索FLBOOK在线制作电子杂志平台 …

零基础搭建个人影音媒体平台,实现远程访问Jellyfin播放器的简易方法

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

静态树提升对Vue生态系统的影响和发展

文章目录 1. 了解Vue 3的静态树提升介绍Vue 3的基本概念和优势解释静态树提升的作用和目标 2. 什么是静态树&#xff1f;解释静态树的概念和特点比较静态树和动态树的区别 3. Vue 3中的静态树提升解释Vue 3中静态树提升的原理和工作方式强调静态树提升对性能的影响和优化效果 4…

【Vue3】transition 组件

1. 基础用法 <template><div class"content"><button click"flag !flag">switch</button><transition name"fade"><div v-if"flag" class"box"></div></transition><…

javacv基础04-图像色彩空间转换函数Imgproc.cvtColor()(彩图转灰度图示例)

opencv python 实现方式参考 opencv-19 图像色彩空间转换函数cv2.cvtColor() javacv 中的函数 Imgproc.cvtColor(image, grey, Imgproc.COLOR_BGR2GRAY); 参数说明&#xff1a; image: 原始图像新灰度图转换参数&#xff1a;多种转换方式参考上面链接地址内容 javacv 实现方式…

K8s的Pod出现Init:ImagePullBackOff问题的解决(以calico为例)

对于这类问题的解决思路应该都差不多&#xff0c;本文以calico插件安装为例&#xff0c;发现有个Pod的镜像没有pull成功 第一步&#xff1a;查看这个pod的描述信息 kubectl describe pod calico-node-wmhrw -n kube-system 从上图发现是docker拉取"calico/cni:v3.15.1&q…

鸿蒙是一个怎么样的操作系统,真的是安卓套壳吗?

从鸿蒙项目正式推出以来&#xff0c;就一直有各自声音&#xff0c;有看好的&#xff0c;认为鸿蒙的出现将会成为一个智能终端设备操作系统的框架和平台&#xff0c;促进万物互联产业的繁荣发展&#xff1b;也有的人在唱衰&#xff0c;觉得鸿蒙发展不起来&#xff0c;甚至认为鸿…

rknn_toolkit以及rknpu环境搭建-rv1126

rknn_toolkit安装------------------------------------------------------------------------------- 环境要求&#xff1a;ubutu18.04 建议使用docker镜像 安装docker 参考https://zhuanlan.zhihu.com/p/143156163 镜像地址 百度企业网盘-企业云盘-企业云存储解决方案-同…

http请求方式过滤器与拦截器的区别

get:获取查询数据(查询)post:数据的提交&#xff0c;新增操作(增加)put:向服务端发送数据、改变信息&#xff0c;侧重点在于对数据的修改操作delete:数据库数据的删除head:一般用来判断类型、根据返回状态确定资源是否存在、资源是否更新以及更新的时间等 过滤器与拦截器的区别…

URI和URL和URN区别

URI、URL 和 URN 是一系列从不同角度来看待资源标识和定位的概念。虽然它们有一些重叠&#xff0c;但每个概念都强调了不同的方面。 URI&#xff08;Uniform Resource Identifier&#xff09;&#xff1a;URI 是一个通用的术语&#xff0c;用于标识和定位资源。它是一个抽象的概…

Sui流动性质押黑客松|本周Workshop预告

Sui流动性质押黑客松正在如火如荼的报名中&#xff0c;Sui基金会现诚邀全球开发者前来参与&#xff0c;助力资产再流通。了解黑客松详情&#xff1a;Sui流动性质押黑客松开启报名&#xff0c;赢取千万美金质押和奖励&#xff01; 黑客松官方网站&#xff1a;Sui Liquid Stakin…

若依cloud -【 47 ~ 】

47 服务监控介绍 什么是服务监控 监视当前系统应用状态、内存、线程、堆栈、日志等等相关信息&#xff0c;主要目的在服务出现问题或者快要出现问题时能够准确快速地发现以减小影响范围。 为什么要使用服务监控 服务监控在微服务改造过程中的重要性不言而喻&#xff0c;没有强…

Linux操作系统--shell编程(正则表达式)

1..正则表达式概述 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在 Linux 中,grep,sed,awk 等文本处理工具都支持通过正则表达式进行模式匹配。 2.常规的匹配操作 3.…

电源防反接电路设计

NMOS防反接&#xff1a; PMOS防反接 在实际应用中&#xff0c;G极一般串联一个电阻&#xff0c;防止MOS管被击穿&#xff0c;也可以加上稳压二极管&#xff0c;并联在分压电阻上的电容&#xff0c;有一个软启动的作用。在电流开始流过的瞬间&#xff0c;电容充电&#xff0c;G极…

一键快速还原修复人脸,CodeFormer 助力人脸图像修复

今天在查资料的时候无意间看到了一个很有意思的工具&#xff0c;就是CodeFormer &#xff0c;作者给出来的说明是用于人脸修复任务的&#xff0c;觉得很有意思就拿来实践了一下&#xff0c;这里记录分享一下。 首先对人脸修复任务进行简单的回顾总结&#xff1a; 人脸修复是指…

thinkphp6 入门(3)--获取GET、POST请求的参数值

一、Request对象 thinkphp提供了Request对象&#xff0c;其可以 支持对全局输入变量的检测、获取和安全过滤 支持获取包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量&#xff0c;以及文件上传信息 具体参考&#xff1a;https://www.kanclou…

功率放大器选购注意什么问题

功率放大器是将输入信号放大到较高功率输出的重要设备。在选择功率放大器时&#xff0c;需要考虑多个因素&#xff0c;以确保所购买的设备能够满足实际需求。下面西安安泰将介绍一些功率放大器的关键问题和注意事项&#xff0c;帮助大家在功率放大器选购过程中做出明智的决策。…

CentOs下面安装jenkins记录

目录 一、安装jenkins 二、进入jenkins 三、安装和Gitee&#xff0c;Maven等插件 一、安装jenkins 1 wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo 2 rpm --import https://pkg.jenkins.io/redhat-stable/…

接口测试json入参,不同类型参数格式书写

接口json入参&#xff0c;不同类型参数格式 1、String 入参&#xff1a;A&#xff08;String&#xff09;&#xff0c;B&#xff08;String&#xff09; 格式&#xff1a;{"A":"值a","B":"值b"} 示例&#xff1a; 接口测试入参这么…