• perf top 实时分析 CPU 使用情况


    安装 perf 用户空间工具

    {PackageManagerCommand} install perf

    perf top 命令用于实时系统分析,其功能与 top 实用程序类似。但是,top 实用程序通常显示给定进程或线程使用的 CPU 时间,perf top 会显示每个特定函数使用的 CPU 时间。在默认状态下,perf top 将告知您用户空间和内核空间的所有 CPU 所使用的函数。要使用 perf top,您需要 root 访问权限。

    启动 perf top

    perf top

    监控数据如下: 

    1. Samples: 55K of event 'cpu-clock', 4000 Hz, Event count (approx.): 10236634002 lost: 0/0 drop: 0/0
    2. Overhead Shared Object Symbol
    3. 10.94% [kernel] [k] __do_softirq
    4. 6.51% libpython2.7.so.1.0 [.] PyEval_EvalFrameEx
    5. 3.32% [kernel] [k] _raw_spin_unlock_irqrestore
    6. 3.03% [kernel] [k] copy_pte_range
    7. 2.95% [kernel] [k] run_timer_softirq
    8. 2.41% [kernel] [k] unmap_page_range
    9. 1.28% [kernel] [k] finish_task_switch
    10. 1.26% [kernel] [k] __do_page_fault
    11. 1.14% libpython2.7.so.1.0 [.] PyObject_Malloc
    12. 0.91% libc-2.17.so [.] _int_malloc
    13. 0.90% libc-2.17.so [.] __memcpy_ssse3_back
    14. 0.84% libpython2.7.so.1.0 [.] 0x00000000000806b6
    15. 0.78% [kernel] [k] rcu_process_callbacks
    16. 0.77% libpython2.7.so.1.0 [.] _PyType_Lookup
    17. 0.70% [kernel] [k] mem_cgroup_charge_common
    18. 0.66% libpython2.7.so.1.0 [.] PyDict_GetItem
    19. 0.61% libc-2.17.so [.] _int_free
    20. 0.58% [kernel] [k] page_remove_rmap
    21. 0.57% libpython2.7.so.1.0 [.] PyDict_Next
    22. 0.53% [kernel] [k] __d_lookup_rcu
    23. 0.51% [kernel] [k] system_call_after_swapgs
    24. 0.45% [kernel] [k] clear_page_c_e
    25. 0.43% [kernel] [k] get_page_from_freelist
    26. 0.42% libpython2.7.so.1.0 [.] PyTuple_New
    27. 0.40% libpython2.7.so.1.0 [.] 0x0000000000114855
    28. 0.38% libpython2.7.so.1.0 [.] _PyObject_GenericGetAttrWithDict
    29. 0.37% libc-2.17.so [.] __GI___libc_open
    30. 0.36% [kernel] [k] find_busiest_group
    31. 0.34% perf [.] __symbols__insert
    32. 0.33% [kernel] [k] copy_user_enhanced_fast_string
    33. 0.32% libpython2.7.so.1.0 [.] 0x0000000000114be4
    34. 0.31% [kernel] [k] file_free_rcu
    35. 0.31% [kernel] [k] _raw_qspin_lock
    36. 0.31% libpython2.7.so.1.0 [.] PyObject_Free
    37. 0.29% libpython2.7.so.1.0 [.] PyFrame_New
    38. 0.29% libc-2.17.so [.] malloc_consolidate

    perf top 在几个列中显示数据含义:

    "Overhead"列:显示给定函数正在使用的 CPU 百分比。

    "共享对象"列:显示使用函数的程序或库的名称。

    "Symbol"列:显示函数名称或符号。内核空间中执行的功能由 [k] 标识,用户空间中执行的功能则由 [.] 识别。

    这个示例输出中可以看到__do_softirq这个符号使用CPU最高,功能是中断处理程序。

  • 相关阅读:
    【云原生】k8s集群的性能指标监控(CPU、内存、GPU、网络......)
    跨境电商:自养买家账号测评,你需要了解的细节
    郁锦香、凯里亚德亮相“2022锦江行”,如何走出一条酒店破题之路
    hive的数据类型和表类型
    HELM 如何使用模板变量部署多个应用
    LeetCode【55】跳跃游戏
    【C语言基础】:操作符详解(二)
    JZ04 [剑指 Offer 04] 二维数组中的查找
    Electron实战之进程间通信
    长路漫漫、技术作伴
  • 原文地址:https://blog.csdn.net/feng_zi0yhv/article/details/125410886