2020-10-27

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-

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 里面检索定位到

性能测试: