性能优化(一)性能优化的几个维度

分析流程:

1.CPU
2.Memory
3.IO
4.Network
 

一、CPU问题

查看cpu几核,top命令下按1

关注点:

1.cpu占用率

如果占用过高(模拟死循环)

curl localhost:8080/nn-ssm-springboot-0.0.1-SNAPSHOT/jvm-cpu(模拟访问死循环1)

curl localhost:8080/nn-ssm-springboot-0.0.1-SNAPSHOT/jvm-cpu(模拟访问死循环2)

curl localhost:8080/nn-ssm-springboot-0.0.1-SNAPSHOT/jvm-cpu(模拟访问死循环3)

top命令会发现CPU突然接近占满

jstack 2626 >a.txt     (jstack PID >a.txt)

此时在top里按shift+h切换top的视图,查看线程的PID

printf "%x \n" 2656    (printf "%x \n"+PID)

输出a60

这时vim a.txt

搜索a60    在vi视图里  :/a60     定位出问题的代码位置

此时很明显是com.nn.controller.MainController.cpu(MainController.java:71)除了问题,看代码发现是个死循环

即可定位到出问题的代码

二、Memory

查看memory的命令有很多,比如

free -g  /  free -m

top 

vmstat 1

用free -g截图

其中buffers为读/cache为写

三、io

iostat 1     可以观察读写速度

iostat -dx 1    可以观察读写速度及%util的参数,io占用时间比,超过5%就需要注意

df  -h 可以查看系统磁盘使用率,第一列是磁盘分区,最后一列是挂载目录,中间还有分区使用率等。

df -h /usr   可以查看某个文件夹占用的空间

四、Network

http://sourceforge.net/projects/nicstat/files/nicstat-1.92.tar.gz 获取安装包

tar -zxvf nicstat-1.92.tar.gz
 

。。。。。。。。。。。。。。未完

术语

吞吐量:对单位时间内完成的工作量的度量

吞吐量:对单位时间内完成的工作量的度量
平均响应时间越短,系统吞吐量越大;平均响应时间越长,系统吞吐量越
小;但是,系统吞吐量越大,未必平均响应时间越短;因为在某些情况(例
如,不增加任何硬件配置)吞吐量的增大,有时会把平均响应时间作为牺牲,
来换取一段时间处理更多的请求

tps: Transactions per Second
qps: Queries per Second
 

猜你喜欢

转载自blog.csdn.net/q975583865/article/details/81205997