草庐IT

性能调优——小小的log大大的坑

引言“只有被线上服务问题毒打过的人才明白日志有多重要!”我先说结论,谁赞成,谁反对?如果你深有同感,那恭喜你是个社会人了:)日志对程序的重要性不言而喻,轻巧、简单、无需费脑,程序代码中随处可见,帮助我们排查定位一个有一个问题问题。但看似不起眼的日志,却隐藏着各式各样的“坑”,如果使用不当,不仅不能帮助我们,反而会成为服务“杀手”。本文主要介绍生产环境日志使用不当导致的“坑”及避坑指北,高并发系统下尤为明显。同时提供一套实现方案能让程序与日志“和谐共处”。避坑指北本章节我将介绍过往线上遇到的日志问题,并逐个剖析问题根因。不规范的日志书写格式场景//格式1log.debug("getuser"+u

性能调优——小小的log大大的坑

引言“只有被线上服务问题毒打过的人才明白日志有多重要!”我先说结论,谁赞成,谁反对?如果你深有同感,那恭喜你是个社会人了:)日志对程序的重要性不言而喻,轻巧、简单、无需费脑,程序代码中随处可见,帮助我们排查定位一个有一个问题问题。但看似不起眼的日志,却隐藏着各式各样的“坑”,如果使用不当,不仅不能帮助我们,反而会成为服务“杀手”。本文主要介绍生产环境日志使用不当导致的“坑”及避坑指北,高并发系统下尤为明显。同时提供一套实现方案能让程序与日志“和谐共处”。避坑指北本章节我将介绍过往线上遇到的日志问题,并逐个剖析问题根因。不规范的日志书写格式场景//格式1log.debug("getuser"+u

Jvm调优

首先我们可以使用各种JVM工具,查看当前日志,分析当前JVM参数设置,并且分析当前堆内存快照和gc日志,根据实际的各区域内存划分和GC执行时间,觉得是否进行优化,当然我们也可以直接生成堆的dump文件,进行分析,比如GC时间超过1-3秒,或者频繁GC,则必须进行一个优化1.针对JVM堆的设置,一般可以通过-Xms-Xmx限定其最小、最大值,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,通常把最大、最小设置为相同的值3.年轻代和年老代设置多大才算合理  1)更大的年轻代必然导致更小的年老代,大的年轻代会延长普通GC的周期,但会增加每次GC的时间;小的年老代会导致更频繁的FullGC 

Jvm调优

首先我们可以使用各种JVM工具,查看当前日志,分析当前JVM参数设置,并且分析当前堆内存快照和gc日志,根据实际的各区域内存划分和GC执行时间,觉得是否进行优化,当然我们也可以直接生成堆的dump文件,进行分析,比如GC时间超过1-3秒,或者频繁GC,则必须进行一个优化1.针对JVM堆的设置,一般可以通过-Xms-Xmx限定其最小、最大值,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,通常把最大、最小设置为相同的值3.年轻代和年老代设置多大才算合理  1)更大的年轻代必然导致更小的年老代,大的年轻代会延长普通GC的周期,但会增加每次GC的时间;小的年老代会导致更频繁的FullGC 

JVM调优案例分析(4)

1.概述  前面三篇介绍了处理Java虚拟机内存问题的知识与工具,在处理实际项目的问题时,除了知识与工具外,经验也是一个很重要的因素。因此本章将与读者分享几个比较有代表性的实际案例。考虑到虚拟机故障处理和调优主要面向各类服务端应用,而大部分Java程序员较少有机会直接接触生产环境的服务器,因此本章还准备了一个所有开发人员都能够进行“亲身实战”的练习,希望通过实践使读者获得故障处理和调优的经验。2. 案例分析  本章中的案例大部分来源于处理过的一些问题,还有一小部分来源于网上有特色和代表性的案例总结。出于对客户商业信息保护的目的,在不影响前后逻辑的前提下,笔者对实际环境和用户业务做了一些屏蔽和精

JVM调优案例分析(4)

1.概述  前面三篇介绍了处理Java虚拟机内存问题的知识与工具,在处理实际项目的问题时,除了知识与工具外,经验也是一个很重要的因素。因此本章将与读者分享几个比较有代表性的实际案例。考虑到虚拟机故障处理和调优主要面向各类服务端应用,而大部分Java程序员较少有机会直接接触生产环境的服务器,因此本章还准备了一个所有开发人员都能够进行“亲身实战”的练习,希望通过实践使读者获得故障处理和调优的经验。2. 案例分析  本章中的案例大部分来源于处理过的一些问题,还有一小部分来源于网上有特色和代表性的案例总结。出于对客户商业信息保护的目的,在不影响前后逻辑的前提下,笔者对实际环境和用户业务做了一些屏蔽和精

kafka 调优

目录一、硬件配置调优二、生产者调优提高吞吐量 数据可靠数据去重数据有序、乱序 三、Broker调优服役新节点/退役旧节点增加分区 增加副本因子手动调整分区副本存储LeaderParttion负载均衡 自动创建主题四、消费者调优消费者再平衡 指定offest消费指定时间消费消费者提高吞吐量五、总体调优提升吞吐量数据可靠 合理设置分区数单条日志大于1M服务器挂了六、压力测试​编辑 生产者压测消费者压测 一、硬件配置调优 1、100万日活*没人每天产生日志100条 = 1亿条(中型公司)      处理日志速度 1亿条/(24*3600s)=1150条/s      1条日志(0.5k-2k1k) 

kafka 调优

目录一、硬件配置调优二、生产者调优提高吞吐量 数据可靠数据去重数据有序、乱序 三、Broker调优服役新节点/退役旧节点增加分区 增加副本因子手动调整分区副本存储LeaderParttion负载均衡 自动创建主题四、消费者调优消费者再平衡 指定offest消费指定时间消费消费者提高吞吐量五、总体调优提升吞吐量数据可靠 合理设置分区数单条日志大于1M服务器挂了六、压力测试​编辑 生产者压测消费者压测 一、硬件配置调优 1、100万日活*没人每天产生日志100条 = 1亿条(中型公司)      处理日志速度 1亿条/(24*3600s)=1150条/s      1条日志(0.5k-2k1k) 

JVM调优面试题——参数命令专题

文章目录1、JVM参数有哪些?1.1、标准参数1.2、-X参数1.3、-XX参数1.4、其他参数1.5、查看参数1.6、设置参数的常见方式1.7、常用参数含义2、JVM常用命令有哪些?2.1、jps2.2、jinfo2.3、jstat2.4、jstack2.5、jmap3、你会估算GC频率吗?4、内存溢出(OOM)怎么解决?4.1、大并发[秒杀]4.2、内存泄露导致内存溢出1、JVM参数有哪些?1.1、标准参数-version-help-server-cp1.2、-X参数-Xint解释执行-Xcomp第一次使用就编译成本地代码-Xmixed混合模式,JVM自己来决定1.3、-XX参数使用得最多

JVM调优面试题——参数命令专题

文章目录1、JVM参数有哪些?1.1、标准参数1.2、-X参数1.3、-XX参数1.4、其他参数1.5、查看参数1.6、设置参数的常见方式1.7、常用参数含义2、JVM常用命令有哪些?2.1、jps2.2、jinfo2.3、jstat2.4、jstack2.5、jmap3、你会估算GC频率吗?4、内存溢出(OOM)怎么解决?4.1、大并发[秒杀]4.2、内存泄露导致内存溢出1、JVM参数有哪些?1.1、标准参数-version-help-server-cp1.2、-X参数-Xint解释执行-Xcomp第一次使用就编译成本地代码-Xmixed混合模式,JVM自己来决定1.3、-XX参数使用得最多