minio server 调试数据收集官方提供了相关命令,不需要我们手动去修改任何配置,使用起来也比较方便。
-
开启pprof数据收集
mc admin profile start --type "TYPE" ALIAS
"TYPE":
cpu
mem
block
mutex
trace
threads
goroutines
如果不指定type参数,则默认收集
cpu,mem,block
这三类数据;若需要指定多种类型,则用逗号分隔即可。比如:mc admin profile start --type "cpu,mem,block" ALIAS
"ALIAS":
alias参数指代minIO host的别名,即与s3服务关联起来的名称,因此需要先设置目标别名,如:
mc alias set minioserver http://** accesskey secretkey
required参数:
url
兼容s3服务器端点的url,如https://minio.example.net
accesskey
s3服务认证的access keysecretkey
s3服务认证的secret key
optional参数
- api
连接s3服务时使用的签名计算方法,支持:
--"S3v4"
(default)
--"S3v2"
Note:
AWS Signature V2 is considered deprecated by AWS.mc alias set
includes this option only for S3 buckets or services still reliant on the Signature V2.
UseS3v4
unless explicitly required by the S3-compatible service. MinIO server does not rely on nor requireS3v2
, nor are all API operations available onS3v2
.
- path
设置指定服务器使用的bucket路径查找,支持:
--"auto"
(default)
--"on"
--"off"
注: mc alias set
命令表示添加或者更新minio client本地配置信息,不会影响minio服务的运行。若别名已经存在,则更新已存在别名的信息。且在虚拟机重启之后,所添加的别名会失效,即如果需要进行pprof的相关操作,则应该重新设置别名。
PS:可以通过命令 mc config host list
查看minio进程的配置,配置可以看到它的地址、AccessKey、SecretKey等相关信息。mc alias list
可查看本地的别名信息。
因此,别名设置好后,最终执行 mc admin profile start --type "cpu,mem,block ..." minioserver/
命令,所指定的调试数据就开始收集了。
-
停止数据收集
mc admin profile stop minioserver
输出打印信息:mc: Profile data successfully downloaded as profile.zip
收集的数据通过stop
命令停止后,自动打包存档profile.zip
并下载到当前目录。其中包含一个或多个.pprof文件。使用pprof go实用程序读取文件数据。
-
使用pprof go分析profile数据
go tool pprof democpu.pprof
进入pprof
的交互模式,使用相关指令分析数据结果。