1. 程式人生 > >程序性能測試方法

程序性能測試方法

物理 測試方法 耗時 -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使用入門

程序性能測試方法