http://zhulongchao.com/blog/performance-trace.html
1.網(wǎng)速測試
安裝iperf
yum install epel-release 從epel源中安裝 yum install -y iperf
帶寬檢測
iperf -s 開啟服務(wù)端 iperf -c ip

丟包問題
tcpdump進(jìn)行抓包 tcpdump -i eth0 -s 3000 port 8080 -w /home/tomcat.pcap 對于抓包文件采用wireshark進(jìn)行分析 丟包(TCP DUP ACK) 重傳(retransmission),超時(shí)重傳,
2.cdn性能測試
cdn 緩存,回源問題 304請求,瀏覽器是否使用本地緩存。比較last_modified 和if_modified_since 通過實(shí)踐戳來判斷,瀏覽器緩存和cdn緩存

3.DNS基礎(chǔ)
路由解析
泛域名解析
4.分布式服務(wù)鏈路追蹤

http入口產(chǎn)生一個(gè)traceId 分發(fā)到rpc調(diào)用,cache,db,jms調(diào)用鏈路中 google的著名論文dapper和zipkin 日志聚合,綁定鏈路日志和業(yè)務(wù)日志 采樣采集,慢請求,異常服務(wù)。 日志量大。日志異步寫入,環(huán)狀數(shù)組,日志組件自研 共享信息放在ThreadLocal中。比如traceId
5.網(wǎng)卡性能問題定位
tsar -l -i 1 --traffic 查看網(wǎng)卡的進(jìn)出流量
6.CPU性能問題定位
tsar -l -i 1 --cpu 軟件問題定位,perf 采樣所有進(jìn)程數(shù)據(jù) perf record -F 99 -a -g -- sleep 30 java進(jìn)程的函數(shù)map:java -cp attach-main.jar:$JAVA_HOME/lib/tools.jar net.virtualvoid.perf.AttachOnce PID 輸出函數(shù)和地址的map 輸出火焰圖 perf script | stackcollapse-perf.pl | flamegraph.pl --color=java --hash > flamegraph.svg

7.內(nèi)存性能問題定位
-堆內(nèi)內(nèi)存問題,
采用jmap dump內(nèi)存,采用離線工具分析 jprofile、mat
-堆外內(nèi)存問題
a.google-perftools
yum install -y google-perftools graphviz export LD_PRELOAD=/usr/lib64/libtcmalloc.so.4 export HEAPPROFILE=/home/testGperf.prof 執(zhí)行程序,結(jié)束程序,生成prof 分析prof 生成svg, pdf,text pprof --svg $JAVA_HOME/bin/java testGperf.prof.0001.heap > test.svg pprof --pdf $JAVA_HOME/bin/java testGperf.prof.0001.heap > test.pdf pprof --text $JAVA_HOME/bin/java testGperf.prof.0001.heap > test.txt
b.jemalloc定位(優(yōu)勢,適合長時(shí)間trace)

sudo apt-get install graphviz 編譯安裝 ./configure –enable-prof –enable-stats –enable-debug –enable-fill make make install
運(yùn)行配置 export MALLOC_CONF=”prof:true,prof_gdump:true,prof_prefix:/home/jedump/jez,lg_prof_interval:30,lg_prof_sample:17”
export LD_PRELOAD=/usr/local/lib/libjemalloc.so.2 運(yùn)行 java -jar target/spring-boot-jemalloc-example-0.0.1-SNAPSHOT.jar
jeprof –show_bytes –svg jez.*.heap > app-profiling.svg
注明:如果在docker容器中,推薦用pprof,jemalloc只顯示函數(shù)地址,不顯示函數(shù)名
8.機(jī)器資源配額問題
/etc/security/limits.conf
- soft nofile 65536
- hard nofile 65536
控制該用戶文件句柄數(shù)
9.磁盤性能問題定位
tsar -l -i 1 –io