首页后端开发GO利用pprof发现Go目标服务器的内存泄漏

利用pprof发现Go目标服务器的内存泄漏

时间2023-07-05 20:49:02发布访客分类GO浏览802
导读:一、前言Go语言是一个神奇的语言。但是我不会,我连开机都不会,Go是什么Go to it! 这个页面上是不是很熟悉,你们在渗透扫目标的时候是不是也遇到过。pprof是一个用于Go开发时对收集的数据分析和可视化工具它能收集信息,也能被我们利...

一、前言

Go语言是一个神奇的语言。

但是我不会,我连开机都不会,Go是什么

Go to it!

这个页面上是不是很熟悉,你们在渗透扫目标的时候是不是也遇到过。

pprof是一个用于Go开发时对收集的数据分析和可视化工具

它能收集信息,也能被我们利用!

首先要知道一些默认的功能

cpu(CPU Profiling): $HOST/debug/pprof/profile
默认进行 30s 的 CPU Profiling,
得到一个分析用的 profile 文件
$HOST/debug/pprof/threadcreate
得到一个分析用的 新OS线程的堆栈跟踪

可以查看创建新OS线程的堆栈跟踪

当然 我要这乱码有何用

你们可以看下我的笔记

cpu(CPU Profiling): $HOST/debug/pprof/profile,默认进行 30s 的 CPU Profiling,得到一个分析用的 profile 文件
block(Block Profiling):$HOST/debug/pprof/block,查看导致阻塞同步的堆栈跟踪
goroutine:$HOST/debug/pprof/goroutine,查看当前所有运行的 goroutines 堆栈跟踪
heap(Memory Profiling): $HOST/debug/pprof/heap,查看活动对象的内存分配情况
mutex(Mutex Profiling):$HOST/debug/pprof/mutex,查看导致互斥锁的竞争持有者的堆栈跟踪
threadcreate:$HOST/debug/pprof/threadcreate,查看创建新OS线程的堆栈跟踪

对应的文件名称解析

二、获取交互的利用

利用自己的服务器安装Go环境

Let's Go! 的那个Go

再利用以下命令 go tool pprof https://(host)/debug/pprof/profile?seconds=60

它默认是30秒的

我们可以改成60秒来查看更多的信息

执行以上的命令的后

会出现以下字样

(pprof)

相当于shell的交互式

我们可以执行

top10

查看最前面的10个CPU运行信息 (看不清的,放大图片看)

继续

go tool pprof https://(host)/debug/pprof/heap

照上面的笔记

heap 是获取内存的信息

执行以上的命令的后

会出现以下字样

(pprof)

相当于shell的交互式 (上面说过了)

执行

o (字母小o)

看上面的图

就可以获取配置信息

再利用top命令

可以看到在运行的内存信息 其他的功能点

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

go服务器内存内存泄漏线程

若转载请注明出处: 利用pprof发现Go目标服务器的内存泄漏
本文地址: https://pptw.com/jishu/290750.html
基于 Go 的端口转发工具,开箱即用 & 极简配置 ChatGPT 今日发布 gpt-3.5-turbo 模型 API,同步奉上 Go SDK 和应用

游客 回复需填写必要信息