Linux调试常用的命令

目录

内核符号表查询

内核配置查询

中断分析

分析每秒中断次数

进程分析

新创建进程数 & 进程上下文切换

某一个进程上下文切换分析

cpu占用率分析

perf查看占用cpu的函数

io性能

iostat


内核符号表查询

cat /proc/kallsyms

结果如下(只展示了一部分):

ffffffffc0242240 d spi_transport_class  [scsi_transport_spi]
ffffffffc02420e0 d host_attribute_group [scsi_transport_spi]
ffffffffc0241b00 r two_byte_msgs        [scsi_transport_spi]
ffffffffc0241b40 r one_byte_msgs        [scsi_transport_spi]
ffffffffc0241ac0 r extended_msgs        [scsi_transport_spi]
ffffffffc0242140 d spi_device_class     [scsi_transport_spi]
ffffffffc024031f t spi_transport_exit   [scsi_transport_spi]
ffffffffc0242040 d target_attributes    [scsi_transport_spi]
ffffffffc0242120 d host_attributes      [scsi_transport_spi]
ffffffffc0242300 d dev_attr_host_width  [scsi_transport_spi]
ffffffffc02422e0 d dev_attr_hba_id      [scsi_transport_spi]
ffffffffc02414c0 r .LC48        [scsi_transport_spi]
ffffffffc0241d44 r _note_6      [scsi_transport_spi]

内核配置查询

cat /boot/config-5.4.0-146-generic

CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
CONFIG_UBSAN_ALIGNMENT=y
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
CONFIG_STRICT_DEVMEM=y
# CONFIG_IO_STRICT_DEVMEM is not set
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_EARLY_PRINTK_USB=y
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_USB_XDBC=y
CONFIG_X86_PTDUMP_CORE=y
# CONFIG_X86_PTDUMP is not set
# CONFIG_EFI_PGT_DUMP is not set
CONFIG_DEBUG_WX=y
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_IOMMU_DEBUG is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
# CONFIG_X86_DECODER_SELFTEST is not set
# CONFIG_IO_DELAY_0X80 is not set
CONFIG_IO_DELAY_0XED=y
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
# CONFIG_DEBUG_ENTRY is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
CONFIG_X86_DEBUG_FPU=y
CONFIG_PUNIT_ATOM_DEBUG=m
# CONFIG_UNWINDER_ORC is not set
CONFIG_UNWINDER_FRAME_POINTER=y

中断分析

分析每秒中断次数

使用sar命令进行中断的分析,敲sar命令发现如下报错:

wangli@wangli-virtual-machine:~$ sar
Cannot open /var/log/sysstat/sa20: No such file or directory
Please check if data collecting is enabled

解决办法:执行sar -o 2 3即可。

wangli@wangli-virtual-machine:~$ sudo sar -o 2 3
Linux 5.4.0-150-generic (wangli-virtual-machine)        2024年10月20日  _x86_64_        (8 CPU)

12时25分42秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
12时25分44秒     all      0.00      0.00      0.06      0.00      0.00     99.94
12时25分46秒     all      0.00      0.00      0.06      0.00      0.00     99.94
12时25分48秒     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.04      0.00      0.00     99.96

sar -I SUM 1 3命令即可分析每秒中断次数。

1代表没每秒统计一次,3代表总共统计三次。

wangli@wangli-virtual-machine:~$ sar -I SUM 1 3
Linux 5.4.0-150-generic (wangli-virtual-machine)        2024年10月20日  _x86_64_        (8 CPU)

12时26分34秒      INTR    intr/s
12时26分35秒       sum     86.00
12时26分36秒       sum     69.00
12时26分37秒       sum     66.00
Average:          sum     73.67

进程分析

新创建进程数 & 进程上下文切换

proc/s:代表每秒新创建的进程数;

cswch/s:代表每秒上下文切换数;

wangli@wangli-virtual-machine:~$  sar -w 1 3
Linux 5.4.0-150-generic (wangli-virtual-machine)        2024年10月20日  _x86_64_        (8 CPU)

12时29分48秒    proc/s   cswch/s
12时29分49秒      0.00     88.00
12时29分50秒      0.00    120.00
12时29分51秒      0.00     91.00
Average:         0.00     99.67

某一个进程上下文切换分析

  • 1:代表每秒更新一次

  • UID:进程的用户ID。

  • PID:进程ID。

  • cswch/s:每秒自愿上下文切换的次数。

  • nvcswch/s:每秒非自愿上下文切换的次数。

wangli@wangli-virtual-machine:~$ pidstat -w 1 -p 3481
Linux 5.4.0-150-generic (wangli-virtual-machine)        2024年10月20日  _x86_64_        (8 CPU)

12时43分48秒   UID       PID   cswch/s nvcswch/s  Command
12时43分49秒  1000      3481      0.00      0.00  irqbalance
12时43分50秒  1000      3481      0.00      0.00  irqbalance
12时43分51秒  1000      3481      0.00      0.00  irqbalance
12时43分52秒  1000      3481      0.00      0.00  irqbalance
12时43分53秒  1000      3481      0.00      0.00  irqbalance
12时43分54秒  1000      3481      0.00      0.00  irqbalance

cpu占用率分析

perf查看占用cpu的函数

perf top命令:

Samples: 848  of event 'cpu-clock:pppH', 4000 Hz, Event count (approx.): 136302649 lost: 0/0 drop: 0/0
Overhead  Shared Object            Symbol
   7.00%  perf                     [.] rb_next
   6.39%  [kernel]                 [k] kallsyms_expand_symbol.constprop.1
   4.21%  [kernel]                 [k] __lock_text_start
   4.18%  [kernel]                 [k] clear_page_orig
   4.05%  libc-2.27.so             [.] __GI_____strtoul_l_internal
   3.56%  [kernel]                 [k] number
   3.56%  perf                     [.] __symbols__insert
   2.83%  [kernel]                 [k] update_iter
   2.70%  [kernel]                 [k] vsnprintf
   2.58%  [kernel]                 [k] string_nocheck
   2.58%  perf                     [.] __dso__load_kallsyms
   2.58%  [kernel]                 [k] mpt_put_msg_frame
   2.47%  [kernel]                 [k] __softirqentry_text_start
   2.09%  [kernel]                 [k] format_decode
   2.09%  libc-2.27.so             [.] getdelim

io性能

iostat

wangli@wangli-virtual-machine:~$ iostat
Linux 5.4.0-150-generic (wangli-virtual-machine)        2024年10月20日  _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.71    0.29    2.08    0.55    0.00   95.37

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.23         1.22         0.00       1261          0
loop1             0.02         0.05         0.00         47          0
loop2             0.50         1.48         0.00       1527          0
loop3             0.10         1.08         0.00       1115          0
loop4             0.04         0.33         0.00        337          0
loop5             0.15         1.13         0.00       1173          0
loop6             0.21         0.49         0.00        511          0
loop7             0.20         1.18         0.00       1218          0
scd0              0.10         2.03         0.00       2100          0
sda              84.15      2246.78      1137.42    2325737    1177384
loop8             0.14         1.12         0.00       1157          0
loop9             0.04         0.11         0.00        114          0
loop10            0.04         0.10         0.00        108          0
loop11            0.17         1.15         0.00       1188          0
loop12            0.94         1.92         0.00       1991          0
loop13            0.02         0.04         0.00         45          0
loop14            0.21         0.49         0.00        510          0
loop15            0.14         1.12         0.00       1158          0
loop16           14.51        14.80         0.00      15315          0
loop17            0.05         0.12         0.00        124          0
loop18            0.05         0.12         0.00        122          0
loop19            0.02         0.04         0.00         45          0
loop20            0.02         0.05         0.00         47          0
loop21            0.17         1.15         0.00       1190          0
loop22            0.23         0.51         0.00        532          0
loop23            0.22         0.50         0.00        520          0
loop24            0.00         0.01         0.00          8          0
loop25            0.08         1.03         0.00       1063          0

perf top -U:隐藏用户态函数:

Samples: 365  of event 'cpu-clock:pppH', 4000 Hz, Event count (approx.): 71742170 lost: 0/0 drop: 0/0
Overhead  Shared O  Symbol
  13.07%  [kernel]  [k] kallsyms_expand_symbol.constprop.1
   9.87%  [kernel]  [k] number
   8.80%  [kernel]  [k] vsnprintf
   8.70%  [kernel]  [k] __lock_text_start
   5.87%  [kernel]  [k] format_decode
   5.07%  [kernel]  [k] update_iter
   4.16%  [kernel]  [k] __softirqentry_text_start
   3.82%  [kernel]  [k] clear_page_orig
   3.74%  [kernel]  [k] string_nocheck
   3.47%  [kernel]  [k] module_get_kallsym
   2.98%  [kernel]  [k] finish_task_switch
   2.13%  [kernel]  [k] __do_page_fault
   1.76%  [kernel]  [k] e1000_xmit_frame
   1.33%  [kernel]  [k] memcpy_orig
   1.31%  [kernel]  [k] mpt_put_msg_frame

perf top -K:隐藏内核态函数:

Samples: 37  of event 'cpu-clock:pppH', 4000 Hz, Event count (approx.): 9250000 lost: 0/0 drop: 0/0
Overhead  Shared Object       Symbol
  13.51%  perf                [.] __symbols__insert
  10.81%  perf                [.] rb_next
   8.11%  libc-2.27.so        [.] cfree@GLIBC_2.2.5
   8.11%  libelf-0.170.so     [.] gelf_getsym
   8.11%  perf                [.] __ordered_events__flush.part.4
   8.11%  perf                [.] d_demangle_callback
   5.41%  libc-2.27.so        [.] _int_malloc
   5.41%  libelf-0.170.so     [.] gelf_getphdr
   2.70%  libc-2.27.so        [.] _IO_default_xsputn
   2.70%  libc-2.27.so        [.] _IO_vfprintf
   2.70%  libc-2.27.so        [.] __fxstat
   2.70%  libc-2.27.so        [.] __memset_avx2_unaligned_erms
   2.70%  libc-2.27.so        [.] calloc
   2.70%  libelf-0.170.so     [.] gelf_update_verdaux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值