CPU 使用率

  • 每秒鐘觸發 250 次時間中斷
    • grep 'CONFIG_HZ=' /boot/config-$(uname -r)
      • CONFIG_HZ=250  #代表每秒250次中斷 ​​​​​​
      • uname -r   #輸出內核版本號
  • 只保留各個 CPU 的數據
    • cat /proc/stat | grep ^cpu
  • 默認每 3 秒刷新一次
    • top
      • 只需要按下數字 1 ,就可以切換到每個 CPU 的使用率了
  • GDB 調試程序的過程會中斷程序運行,這在線上環境往往是不允許的。
    • 所以,GDB 只適合用在性能分析的後期,當你找到了出問題的大致函數後,線下再借助它來進一步調試函數內部的問題。
  • perf 是 Linux 2.6.31 以後內置的性能分析工具 ​​​​​​​
    • 安裝perf
      • apt install linux-tools-common      
      • apt install  linux-tools-4.15.0-128-generic     
      • apt install linux-cloud-tools-4.15.0-128-generic
  • perf top ​​​​​​​
    • 第一列 Overhead ,是該符號的性能事件在所有采樣中的比例,用百分比來表示。

    • 第二列 Shared ,是該函數或指令所在的動態共享對象(Dynamic Shared Object),如內核、進程名、動態鏈接庫名、內核模塊名等。

    • 第三列 Object ,是動態共享對象的類型。比如 [.] 表示用戶空間的可執行程序、或者動態鏈接庫,而 [k] 則表示內核空間。

    • 最後一列 Symbol 是符號名,也就是函數名。當函數名未知時,用十六進制的地址來表示

  • perf record 和 perf report ​​​​​​​

  • https://github.com/feiskyer/linux-perf-examples/blob/master/nginx-high-cpu/README.md

  • # 併發 10 個請求測試 Nginx 性能,總共測試 100 個請求 ​​​​​​​

    • ab -c 10 -n 100 http://10.241.132.213:10000/

  • # -g 開啓調用關係分析,-p 指定 php-fpm 的進程號 21515 ​​​​​​​

    • perf top -g -p 21515

 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章