Linux性能優化及性能問題定位

  1. 性能優化是什麼?
    1.1 性能優化就是發揮機器本來的性能
  2. 性能的幾個唯度
    1.1.1 CPU
    命令 vmstat
    在這裏插入圖片描述
    http://www.man7.org/linux/man-pages/man8/vmstat.8.html
    首先檢查 cpu,cpu 使用率要提升而不是降低
    CPU 空閒並不一定是沒事做,也有可能是鎖或者外部資源瓶頸。
    命令 Top
    在這裏插入圖片描述
    http://man7.org/linux/man-pages/man1/top.1.html
    1.1.2 IO
    命令 iostat
    在這裏插入圖片描述
    http://www.man7.org/linux/man-pages/man1/iostat.1.html
    1.1.3 Memory
    命令 free
    在這裏插入圖片描述
    http://www.man7.org/linux/man-pages/man1/free.1.html
    在這裏插入圖片描述
    1.1.4 Network
    命令 nicstat (需要安裝)
    wget http://sourceforge.net/projects/nicstat/files/nicstat-1.92.tar.gz
    tar -zxvf nicstat-1.92.tar.gz
    sudo vim Makefile
    CFLAGS = $(COPT) -m32#將此行修改爲如下:
    CFLAGS = $(COPT)
    sudo make -f Makefile install
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    1.1.5 監控軟件
    https://www.zabbix.com/documentation/2.0/manual/appendix/api/api
    zabbix nagios prometheus
  3. 術語
    吞吐量:對單位時間內完成的工作量的度量
    平均響應時間:提交請求和返回該請求的響應之間使用的時間
    平均響應時間越短,系統吞吐量越大;平均響應時間越長,系統吞吐量越
    小;但是,系統吞吐量越大,未必平均響應時間越短;因爲在某些情況(例
    如,不增加任何硬件配置)吞吐量的增大,有時會把平均響應時間作爲犧牲,
    來換取一段時間處理更多的請求。
    tps: Transactions per Second
    qps: Queries per Second
  4. 補充
    CPU 負載高怎麼定位:
    A. top 找到 CPU 高的進程 (原理:方法是由線程執行的,線程是在進程下的,找
    到進程下 cpu 最高的線程就能定位到方法)
    在這裏插入圖片描述
    B. Shift + H 切換到線程模型 找到線程執行 cpu 高的線程號
    在這裏插入圖片描述
    C. Jstack pid > p.txt 用 jstack 導出線程的 dump (記住這個問題有時候沒有那麼明顯
    一直 cpu100%,可能是間歇性的 cpu 高所以這個能抓住這個線程還是要看運氣)
    D. 把線程號轉 16 進制 printf “%x \n” 40437
    在這裏插入圖片描述

F. 到剛剛導出的 p.txt 裏面檢索定位到
在這裏插入圖片描述

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