Golang程序性能排查

  • Golang
  • 381 clicked

1. 第一种方法:工具调试

1.1. ps -ef 查看进程号

1.1. ps -eLF 查看进程对应线程,采用的CPU核心号

  • -e 或者-A,选择所有的进程
  • L 显示线程信息
  • F 显示该线程使用CPU核心序号

1.2. top -H -p 查看系统占用

1.3. dlv attach 查看调用堆栈

1.4. strace

Linux下,进程不能直接访问硬件设备。当进程需要访问硬件设备时(读取磁盘文件、接收网络数据等),则必须由用户态切换为内核态,然后通过系统调用来访问硬件设备。strace是跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间)。strace 最简单的用法是执行一个指定的命令(过程中,starce会记录和解析命令进程的所有系统调用及这个进程的所有的信号值),在指定命令结束后立即退出。

查看出调用futex过高

2. 第二种方法 pprof: 代码中打印调用堆栈

代码中加入包和代码

赞赏

微信赞赏支付宝赞赏

发表评论

邮箱地址不会被公开。 必填项已用*标注