程序性能測試方法
阿新 • • 發佈:2019-02-17
物理 測試方法 耗時 -cp 核心概念 linux 調用 article 記錄
程序性能測試工具
程序處理請求過程中,根據監控發現latency會產生周期性的峰值。因此嘗試了多種性能測試工具,記錄如下。
vmstat
- 參考 vmstat命令
vmstat -at 1 | tee vmstat.log
查看缺頁中斷
- 參考
- linux 虛擬內存管理的核心概念
- Linux進程分配內存的兩種方式--brk() 和mmap()
watch -n 1 -d ‘ps -o majflt,minflt -p pid
- 其中 majflt 與 minflt 的不同是, majflt 表示需要讀寫磁盤,可能是內存對應頁面在磁盤中需要 load 到物理內存中,也可能是此時物理內存不足,需要淘汰部分物理頁面至磁盤中
查看進程運行在哪些CPU內核上
- 參考
- 如何知道進程運行在哪個 CPU 內核上
- top-史上最詳細解釋
ps -o pid,psr,comm -p pid
- psr列
taskset -a -p -c 0-30 pid
- 設置pid進程運行在0~30核上
top -H -d 1 -p pid
- 查看pid進程的線程
- 按f,選擇需要顯示的列
- top命令後按1可顯示CPU列表,shift+p排序
查看內存泄露
- 參考 valgrind詳解與使用實例
valgrind —leak-check-full --show-leak-kinds=all --log-file=“valgrind.log"
strace
- 參考 強大的strace命令用法詳解
strace -cp pid -f
- 統計pid進程所有系統調用的耗時占比
gprof
- 參考 Linux C++程序進行性能分析工具gprof使用入門
程序性能測試方法