通过pprof获取golang gc信息

1
#!/bin/bash _lastNumGC=0 _first=true while : ; do r=$(curl -s 127.0.0.1:6071/debug/pprof/heap?debug=1 | tail -22) _NumGC=$(echo $r | sed 's/#/\n#/g' | grep "^# NumGC" | awk '{print $NF}') NumGC=$[ ${_NumGC} - ${_lastNumGC} ] if ${_first}; then NumGC=0; _first=false; fi _lastNumGC=${_NumGC} PauseNs=$(echo $r | sed 's/#/\n#/g' | grep '^# PauseNs' | grep -Eo '\[.*\]' | sed -e 's/\[//' -e 's/\]//' | sed 's/ /\n/g' | awk '{ sum+=$0; if ($0>0){count+=1} } END {printf "%.f\n",sum/count}') echo "NumGC: " ${NumGC} echo "PauseNs_Avg: " ${PauseNs} sleep 10 done

-EOF-