Linux性能分析
sudo yum install -y epel-release
sudo yum update -y
sudo yum groupinstall -y "Development tools"
sudo yum install -y elfutils-libelf-devel cmake3 git bison flex ncurses-devel
sudo yum install -y luajit luajit-devel # for Lua support
curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-10.0.1.src.tar.xz
curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/clang-10.0.1.src.tar.xz
tar -xf clang-10.0.1.src.tar.xz
tar -xf llvm-10.0.1.src.tar.xz
mkdir clang-build
mkdir llvm-build
cd llvm-build
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \
-DCMAKE_BUILD_TYPE=Release ../llvm-10.0.1.src
make
sudo make install
cd ../clang-build
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \
-DCMAKE_BUILD_TYPE=Release ../clang-10.0.1.src
make
sudo make install
cd ..
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
cmake3 ..
make
sudo make install
uptime
dmesg |tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top
pprof
http://127.0.0.1:9090/debug/pprof
- allocs:内存分配情况的采样信息,所有对象的内存分配
- blocks:阻塞操作情况的采样信息
- cmdline:程序启动命令及其参数
- goroutine:当前所有协程的堆栈信息
- heap:堆上内存的使用情况的采样信息,活跃对象的内存分配
- mutex:锁争用情况的采样信息
- profile:cpu占用情况的采样信息
- threadcreate:系统线程创建情况的采样信息
- trace:程序运行的跟踪信息
top命令
- flat: 本函数占用的内存量。
- flat%: 本函数内存占使用中内存总量的百分比。
- sum%: 之前函数flat的累计和。
- cum:是累计量,假如main函数调用了函数f,函数f占用的内存量,也会记进来。
- cum%: 是累计量占总量的百分比。
go tool pprof http://localhost:9090/debug/pprof/profile?seconds=60
go tool pprof -http=0.0.0.0:8080 cpu.001.pb.gz
本文来自博客园,作者:GreeneGe,转载请注明原文链接:https://www.cnblogs.com/greene/p/18684563