一、前言

什么是性能调优?

性能调优其实很好理解,就是优化硬件、操作系统、应用之间的一个充分的协作,最大化的发挥出硬件的极致性能,来应对高负载的业务需求。

为什么需要性能优化?

其实说到底就是两个原因:

①:为了获得更好的系统性能

②:通过性能调优来满足不断增加的业务需求

性能调优其实作用于我们项目中的很多阶段,项目上线前性能的基本优化,项目上线后也是需要持续不断的性能优化来应对不同时期的业务需求。

我有个朋友现在在阿里是P7,他认为在P7这个职位,特别是像阿里这种体量的企业,以下这些性能调优的技术是必须要掌握的,之后给我分享了他自己这么多年精心整理的性能调优笔记。

经允许,现在也是可以分享这份笔记的完整版给大家了,需要的朋友私信我口令“调优”即可免费获取!

二、六大性能调优技术(JVM调优+网络调优+数据库调优+LINUX内核调优+中间件底层探索+容器环境调优)

手绘板(脑图)

1、JVM调优

JVM调优必备理论知识-Gc COLLECTOR-三色标记

垃圾回收算法串讲

JVM常见参数总结

JVM调优实战

JVM(HotSpot)核心源码解读

JVM核心模块(GC算法)手写实战

2、网络调优

TCP内核参数

JAVA API参数

IO模型TRADE OFF

资源隔离优化

网卡、CPU配置调优

网络安全的加密算法与数字签名

3、数据库调优

Mysql性能监控

SCHEMA与数据类型优化

通过执行计划优化

通过索引进行优化

查询优化

参数优化

分布式Mysql优化

SQL注入、WebShell攻击的危险和规避方法

4、LINUX内核调优

单进程最大打开文件数限制

内核内存参数调优

TCP发送KEEPALIVE消息频度

TCP FIN_WAIT_2状态时间

定义UDP和TCP链接的本地端口取值范围

优化TCP接收缓存的最大值、最小值、默认值

优化内核套接字接收缓存区默认大小

优化内核TCP的SYN攻击

内存溢出、内存泄漏的原因与解决

如何高效利用CPU缓存

内存问题分析与性能优化

磁盘I/O性能优化

5、中间件底层探索

Redis6.X核心源码解读

Redis6.X内核编码解读

String/Hash/List/Set/ZSet数据结构解读

Kernel与Epoll多路复用机制底层解读

LRU算法解读

RocketMQ源码解读

6、容器环境调优

镜像体积调优

镜像体积最小化

构建速度最快化

使用CMD VOLUME指令对IMAGE进行服务化

DOCKER网络方案优化

三、关于性能调优你必须知道的几个点

1、性能指标

我们进行性能优化肯定是为了获得更好的性能,那我们怎么去衡量呢?性能指标又是什么呢?一般衡量一个项目(这里指的是网站)的指标有三个:

吞度量:是单位时间内完成的用户或系统的请求数量。

并发数:同时可以去接收多少用户的访问请求。

响应时间:用户发出请求到收到响应的时间间隔。

2、怎么去进行性能分析?

如果我们通过测试发现网站的性能没有达到我们的预期,我们可以通过什么工具去查找到性能瓶颈呢?

① 硬件

用vmstat、sar、iostat检测是否是CPU瓶颈

用free、vmstat检测是否是内存瓶颈

用iostat检测是否是磁盘I/O瓶颈

用netstat检测是否是网络带宽瓶

② 操作系统

进程

文件系统

SWAP分区

内核参数调整

③ 应用程序(Mysql等)

mysqlreport性能分析报告

mysqlsla慢查询日志分析

3、根据三大法则进行性能优化

查找出问题之后我们可以通过三大法则去进行调优,首先确定调优目标,其次具体化调优步骤,最后检测调优结果。

4、性能调优就是运维工程师的事?

其实在我看来性能优化是一个团队的事情,为什么这么说,比如我们需要在网上做一个商城,大体的流程应该是这样的:

运营提出需求

产品整理需求

开发开发具体的业务应用

运维搭建开发环境

QA进行项目测试

运维进行项目上线

监控进行项目监控

这么多部门的参与,可能出现在产品,也可能出现在程序上,也可能是运维的环境搭建的有问题。只是参加性能调优的更多的是开发、运维、测试和监控。

四、总结

其实性能调优没有大家想象的那么难,掌握好正确的思路去实施是完全可以做到的,不管是做程序员这一行业,还是其他任何行业,做一件事情之前,首先都是要去缕清思路、做好计划、进行检查,然后再去实施。

如果你需要文章中的完整版学习笔记可以私信我口令“调优”即可免费获取!

java面试 系统调优_面试官:Java性能调优你会多少?一个问题就把我问的哑口无言,哭了!...相关推荐

  1. Spark商业案例与性能调优实战100课》第20课:大数据性能调优的本质和Spark性能调优要点分析

    Spark商业案例与性能调优实战100课>第20课:大数据性能调优的本质和Spark性能调优要点分析 基于本元想办法,大智若愚,大巧若拙!深入彻底的学习spark技术内核!

  2. java项目不要用反射_面试官:Java 反射是什么?我回答不上来!

    一.概念 反射就是把Java的各种成分映射成相应的Java类. Class类的构造方法是private,由JVM创建. 反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检 ...

  3. java tcp 阻塞等待应答_面试常问!TCP 的三次握手与四次挥手理解

    来源:青柚_ blog.csdn.net/qq_38950316/article/details/81087809 三次握手过程理解 四次挥手过程理解 常见面试题 先来张图! 序列号seq: 占4个字 ...

  4. java 面试题 生产者 消费者_面试大厂必看!就凭借这份Java多线程和并发面试题,我拿到了字节和美团的offer!...

    最近好多粉丝私信我说在最近的面试中老是被问到多线程和高并发的问题,又对这一块不是很了解,很简单就被面试官给问倒了,被问倒的后果当然就是被刷下去了,因为粉丝要求,我最近也是花了两天时间 给大家整理了这一 ...

  5. java并发编程面试题_阿里常用Java并发编程面试试题总结

    一.概念 什么是线程 一个线程要执行任务,必须得有线程一个进程(程序)的所有任务都在线程中执行的一个线程执行任务是串行的,也就是说一个线程,同一时间内,只能执行一个任务 多线程原理 同一时间,CPU只 ...

  6. java面试没有全部答对_十道java基础面试题,你能保证全答对吗?

    java初级开发面试中经常被问到的问题有好多,下面总结一下常见的问题,先给问题,大家思考一下再看答案. 1.JDK 和 JRE 有什么区别?2.== 和 equals 有什么区别?3.说说final在 ...

  7. java中二进制怎么说_面试:说说Java中的 volatile 关键词?

    volatile 这个关键字可能很多朋友都听说过,或许也都用过.在 Java 5 之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在 Java 5之后,volatile 关 ...

  8. win7查看tomcat端口_想研究Tomcat性能调优,看这篇就够了

    一.下载地址 https://tomcat.apache.org/download-80.cgi 二.安装步骤 将安装包 apache-tomcat-8.5.39.tar.gz 上传至服务器 /usr ...

  9. 第3天. 系统构架师之路之apache性能调优

    一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非常基础的J2ee工程上线布署时的一种架构.在 ...

最新文章

  1. 如何将std :: string转换为const char *或char *?
  2. Swift基础之闭包
  3. 算法学习:强连通分量 --tarjan
  4. 在Eclipse上搭建Android C开发环境
  5. JZOJ 4932. 【NOIP2017提高组模拟12.24】B
  6. pythonlist基本操作_Python 列表(list)简介及基本操作
  7. iOS开发针对对Masonry下的FPS优化讨论
  8. 关于kafka的几个问题
  9. html div怎么设置圆角,jquery设置div圆角
  10. Spring AOP的日志记录
  11. vue进阶学习组件03
  12. 类Shiro权限校验框架的设计和实现
  13. 电脑一复制粘贴就卡死_CAD复制粘贴时卡死的解决方法步骤
  14. 短视频去除logo(抖音)
  15. win10资源管理器经常无响应
  16. 微信小程序 - Vant weapp UI 框架环境搭建详细教程(Window)
  17. 安图实验室信息系统--用户许可协议(仅供学习使用)
  18. 淘宝开放平台回顾与前景展望
  19. MFC画带箭头的直线
  20. 计算机规则英语作文,计算机信息技术(五笔及中英文打字测试试题).doc

热门文章

  1. 串口console乱码_串口打印机不能打印或打印乱码
  2. 分析码农骄傲自大的几点原因
  3. html div 自动滚动到底部,javascript让DIV的滚动自动滚动到最底部-4种方法
  4. Xshell暴漏内网端口
  5. 祝早道日语七周年快乐!
  6. R语言sem包实现通径分析
  7. win7底部任务栏还原方法
  8. 使用IE浏览器将pfx转为cer证书
  9. [ubuntu] 解决ubuntu中skype不能调用输入法的问题
  10. 360 安全入门 · 课程测试