阿里面试官:Java 性能调优你会多少?一个问题就把我问麻了。

一、前言

什么是性能调优?

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

为什么需要性能优化?

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

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

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

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

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

经允许,现在也是可以分享这份笔记的完整版给大家了,需要的朋友可以帮 LZ 进行转发+关注,文末可以免费领取!

二、六大性能调优技术(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 进行项目测试

  • 运维进行项目上线

  • 监控进行项目监控

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

四、总结

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

需要的朋友可以帮 LZ 进行转发+关注,下方扫码免费领取性能调优PDF手册~

温不了情
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JVM性能优化
IT王小二的博客
06-15 655
JVM 性能优化。 一、内存溢出 内存溢出的原因:程序在申请内存时,没有足够的空间。 1. 栈溢出 方法死循环递归调用(StackOverflowError)、不断建立线程(OutOfMemoryError)。 2. 堆溢出 不断创建对象,分配对象大于最大堆的大小(OutOfMemoryError)。 3. 直接内存 JVM 分配的本地直接内存大小大于 JVM 的限制,可以通过-XX:MaxDirectMemorySize 来设置(不设置的话默认与堆内存最大值一样,也出现OOM 异常)。 4. 方法区溢
深入浅出JVM调优,看完你就懂
热门推荐
Javazhoumou的博客
08-12 19万+
深入浅出JVM调优 基本概念: JVM把内存区分为堆区(heap)、栈区(stack)和方法区(method)。由于本文主要讲解JVM调优,因此我们可以简单的理解为,JVM中的堆区中存放的是实际的对象,是需要被GC的。其他的都无需GC。 下图文JVM的内存模型 从图中我们可以看到, 1、JVM实质上分为三大块,年轻代(YoungGen),年老代(Old Memory...
面试经常被问 JVM 如何调优?这个问题该怎么回答?没有实际调优经验怎么办?
公众号:该用户快成仙了
04-04 259
前不久有朋友面试阿里面试官问到:关于Dalvik虚拟机能不能执行class文件他当时的回答是:不能,但是它执行的是class转换的dex文件。当面试官继续问:为什么不能执行class文件?他的回答只有:Dalvik虚拟机内部的优化原因,没能给出正确回答具体的原因。
面试官:你这JVM调优,回答的很有问题呀!!
m0_71777195的博客
01-05 298
前段时间一位读者面了阿里,在二面中被问到 GC 日志分析,感觉回答的不是很好,过来找我复盘,大致听了他的回答,虽然回答出了部分,但是没抓到重点。GC 日志分析算是 JVM 调优中比较的部分,今天这篇文章就来聊聊如何利用 JDK 现有的命令并且借助可视化工具如何去分析 GC 日志。
面试官:关于Java性能优化,你有什么技巧?(1),2024年最新阿里面试时间20分钟
最新发布
2401_84002371的博客
04-18 787
2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机,大厂面试远没有我们想的那么困,摆好心态,做好准备,你也可以的。另外,面试中遇到不问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
Java性能优化
liuerchong的博客
03-13 1517
复用优化 在写代码的时候,你发现有很多重复的代码可以提取出来,做成公共的方法。这样,在下次用的时候,就不用再费劲写一遍了。 这种思想就是复用。上面的描述是编码逻辑上的优化,对于数据存取来说,有同样的复用情况。无论是在生活中还是编码中,重复的事情一直在发生,如果没有复用,工作和生活就比较累。 在软件系统中,谈到数据复用,我们首先想到的就是缓冲和缓存。 缓冲(Buffer),常见于对数据的暂存,然后批量传输或者写入。多使用顺序方式,用来缓解不同设备之间频繁地、缓慢地随机写,缓冲主要针对的是写操作。 缓存(C
阿里面试官问我:Java创建线程有几种方式?我就知道问题没那么简单
01-21
昨天有个小伙伴去阿里面试实习生岗位,面试官问他了一个老生常谈的问题:你说一说 Java 创建线程都有哪些方式? 这哥们心中窃喜,这个老生常谈的问题早已背的滚瓜烂熟,于是很流利的说了出来。 Java 创建线程有两种...
阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar
11-08
通过这份笔记的学习,你将一个系统的调优头脑和策略!快了何止100%?需要的朋友可下载试试! 众所周知性能调优可以使系统稳定,用户体验更佳,甚至在比较大的系统中,还能帮公司节约资源。 但是在项目的开始...
阿里巴巴Java性能调优实战(2021华山版).pdf
07-22
阿里巴巴Java性能调优实战
阿里+Java+开发手册、阿里巴巴Java性能调优实战
04-01
阿里+Java+开发手册(嵩山版).pdf 阿里巴巴Java性能调优实战(2021华山版).pdf
Java性能优化面试题汇总
m0_55613022的博客
04-20 739
文章目录 如果优化数据库的数据查询,另外应用层上还能如何优化? 如果优化数据库的数据查询,另外应用层上还能如何优化? 1)数据库层面上: 除了主键索引,唯一索引之外,对于常用的查询字段也要加索引。查询的时候尽量使用主键索引,因为MySQL 的 InnoDB 的主键索引索引的是整行数据,而普通索引索引的是主键,有回表操作。当然索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,需要酌情考虑。 2、优化查询语句,尽量采用确认性查询语句,
最全SpringBoot学习教程,GitHub上30K+star,帮你解决95%的问题
mifffy_java的博客
10-30 1643
灵魂发问:我们为什么要学习SpringBoot??? 官方对 Spring Boot 的定位:Build Anything, Build 任何东西。Spring Boot 旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置。 同时我们也来看一下官方对后面两个的定位:SpringCloud:Coordinate Anything,协调任何事情; SpringCloud Data Flow:Connect everything,连接任何东西。仔细品味一下,Spring 官网对 Spring Bo
你值得拥有!面试官让我下周来上班!大牛最佳总结
m0_56051002的博客
03-17 1021
前言 本人是底层 211 本科,刚毕业,⽆科研经历,但是有些项⽬经历。 在国内监控行业某头部企业做过一段时间的实习。 想着投下字节,可以积累⼀下⾯试经验和为金九银十面招做准备。投了简历之后,过了一段时 间,HR 就打电话跟我约时间, 说明一下,我投的是北京 office。 以下就是一个面试的全部过程,分享出来给感兴趣的朋友们一看。 蚂蚁金服一面: 下午杭州的电话,问有没有空,果断有空,虽然感觉略显紧张,有点懵逼。 面试的题目: HashMap和Hashtable的区别 实现一个保证迭代顺序的HashMap
JVM之美团GC优化概念篇(三)
井底之蛙的博客
02-22 938
Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容:优化前准备: 简单回顾JVM相关知识、介绍G...
网络性能优化思路
qq_40500045的博客
02-21 4645
网络性能优化思路 文章目录网络性能优化思路前言一、确定优化目标二、网络性能工具网络性能优化应用程序套接字传输层网络层链路层总结 前言 网络问题比我们前面学过的 CPU、内存或磁盘 I/O 都要复杂。无论是应用层的各种 I/O 模型,冗长的网络协议栈和众多的内核选项,抑或是各种复杂的网络环境,都提高了网络的复杂性。不过,也不要过分担心,只要你掌握了 Linux 网络的基本原理和常见网络协议的工作流程,再结合各个网络层的性能指标来分析,你发现,定位网络瓶颈并不。找到网络性能瓶颈后,下一步要做的就是优化了
性能调优调优的常见思路和方法
sysu_lluozh
03-04 2187
在通过工具得到异常指标,初步定位瓶颈点后,如何进一步进行确认和调优?在这里提供一些可实践、可借鉴、可参考的性能调优套路,即:如何在众多异常性能指标中,找出最核心的那一个,进而定位性能瓶颈点,最后进行性能调优 以下按照代码、CPU、内存、网络、磁盘等方向进行组织,针对某一个优化点系统的套路总结,便于思路的迁移实践 一、应用代码相关 遇到性能问题,首先做的是检查否与业务代码相关——不是通过阅读代码解决问题,而是通过日志或代码,排除掉一些与业务代码相关的低级错误 性能优化的最佳位置是应用内部,比如: 查看业务
数据库SQL调优的几种方式
lss0555的博客
07-23 14万+
在项目中,SQL的调优对项目的性能来讲至关重要,所有掌握常见的SQL调优方式是必不可少的,下面介绍几种常见的SQL的调优方式,供借鉴. 创建索引 在经常需要进行检索的字段上创建索引,比如要按照表字段username进行检索,那么就应该在姓名字段上创建索引,如果经常要按照员工部门和员工岗位级别进行检索,那么就应该在员工部门和员工岗位级别这两个字段上创建索引。创 建索引给检索带来的性能...
技术优化基本套路
weixin_34378045的博客
11-07 175
摸数据 1、漏斗法 2、切片法 找瓶颈 1、解决高频/共性问题 2、解决高频问题 验证结果对比 1、A/B Test 2、实验室环境 通用优化秘籍 单点变分布 同步变异步 高频去降频 低频不行就熔断 满足某一部分请求 链路问题找备份 网络优化三板斧 预 重 简 转载于:https://juejin.im/post/5be2829ee51d450b291bd641...
对着Java性能调优,艿艿也很无奈···
芋艿V
07-01 214
Java性能调优都是老生常谈的问题,特别当“糙快猛”的开发模式大行其道时,随着系统访问量的增加、代码的臃肿,各种性能问题便层出不穷。比如,下面这些典型的性能问题,你肯定或多或少都遇到过...
阿里巴巴java性能调优实战手册
06-12
阿里巴巴Java性能调优实战手册》是一本内容丰富、实用性强的技术书籍。作者通过自己多年的实际经验,结合大型互联网公司项目开发和运维的实践,详细介绍了如何进行Java性能调优的具体方法和技巧。这本手册以故事...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 今天面了个字节跳动拿35K出来的,真是砂纸擦屁股,给我露了一手啊 29208
  • 八年 Java 老鸟,写给 1-3 年程序员的几点建议,满满硬货指导 23955
  • 部门来了个JAVA开发,听说是00后,上来一顿操作给我看呆了... 23033
  • 6个月的开发,来面试居然要18K,我一问连5K都不值。 16805
  • 非技科,大专生苦学 37 天,五轮面试,六个小时灵魂拷问,含泪拿下阿里 offer~ 14671

分类专栏

  • Transformer模型 1篇
  • 计算机视觉 2篇
  • 人工智能 2篇
  • 学习路线图 1篇
  • AI学习路线图

最新评论

  • 史上最全的字节跳动 Java 面试题集锦,高级 Java 工程师面试技术

    天蓝999: 可以的,我看的另一篇,我面试时90%以上的题目在下边这个博客里:https://knife.blog.csdn.net/article/details/121219272

  • 腾讯2022年首发485道Java岗面试题(含答案解析)

    oPingTian: 关注公众号了,怎么领取啊

  • 太为难我了,阿里面试了7轮(5年经验,拿下P7岗offer)

    2301_76225657: 前后费时上月半只给了个p6没去,昨天说工资到顶了三万股基础多给一万股,我觉得是故意给低了不想多给,觉得不值p7而已,没意义

  • 6个月的开发,来面试居然要18K,我一问连5K都不值。

    weixin_43117839: 前有一万八的测试后有一万八的开发表情包

  • 在大厂外包呆了三年,颠覆了我的认知!

    qq_52065861: 同样的文章,好像已经看到了N篇了表情包

大家在看

  • python4入门 | 基本数据结构等 495
  • Java代码操作MySQL数据库——JDBC编程 469
  • 前端算法题----合并两个有序数组
  • 【ROS】四、C++ 编写 Publisher&Subscriber Node
  • 记录一下ssh爆破 737

最新文章

  • 【全网首发】Transformer模型详解(图解史上最完整版)
  • 图神经网络(GNN)现在可以研究的方向有哪些呢?
  • 【AI小白必看】CV&NLP最全学习路线图和全套教程,零基础都能学会~
2023年4篇
2022年52篇
2021年152篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司沙井seo网站推广南联网站优化按天扣费双龙优秀网站设计坪山网站建设设计永湖百度seo坪山模板推广福永网站优化按天计费民治网站推广系统南澳百度网站优化排名观澜阿里店铺托管坪地百搜标王石岩建设网站沙井关键词排名包年推广罗湖网站优化推广大运建网站民治模板制作福田网站开发宝安高端网站设计石岩优化广州seo坪地网站推广系统同乐建站坪地网站建设设计龙华外贸网站建设木棉湾品牌网站设计平湖网站排名优化松岗网站推广工具南澳建设网站石岩英文网站建设同乐品牌网站设计歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化