高性能Java编程
总结JVM相关的学习笔记,包括网络,IO,多线程等
与JVM性能相关的,服务性能相关的问题
it小奋
这个作者很懒,什么都没留下…
展开
-
TheadLocal 原理及实践
目录ThreadLocal实现原理使用场景使用实例ThreadLocal 线程本地存储,为变量在每个线程中都创建一个副本(在Thread中存储以ThreadLocal为key的值),每个线程可以访问自己内部的副本变量。实现原理 ThreadLocal内部用ThreadLocalMap来存储变量值,实际上线程本地变量存储在Thread类...原创 2019-05-14 08:53:24 · 929 阅读 · 0 评论 -
记一次高并发、大流量场景下的缓存、限流优化
目录场景描述:历史优化措施可行性分析硬件设备流量分析峰值预估【单个服务】缓存预估峰值流量处理可行性方案源端转发分布式缓存本地缓存可行性实践案例1问题分析基于Guava的本地缓存基于Guava的令牌桶限流算法参数配置场景描述:平台接入了大量的图片,稳定情况下大概1200张/秒;现有架构下内部系统需要先将这部分数据落地并生...原创 2019-05-12 14:10:53 · 742 阅读 · 0 评论 -
记一次JVM线程池配置不合理导致的JVM挂掉问题排查
原则一——尽一切可能保护有限的资源。问题描述现场反馈,服务启动起来有一段时间就自己挂掉了,大概几十秒到几分钟,技支反馈日志突然就中断了,看不到任何错误的迹象;原因预估我确信,经验不同的人排查问题的思路差异是非常大的,庆幸的是这些可以借鉴,我们应该总结自己的经验,借鉴旁人的经验; 我当时就想怎么会没日志呢!是不是他们找错地方了!我得亲自看看! 日志里面一定能找到我...原创 2019-05-12 13:13:34 · 1892 阅读 · 0 评论 -
记一次从CPU使用率高到接口性能的排查过程
两年前曾写过一个库代码,写这个库代码的时候也是咨询了各路大神们,也是由于自己技能储备不足,导致当时完成的也是小心翼翼,也是如期上线. 两年时间过去了,最近在排查该项目现场性能问题的时候猜测意是否由于当时的类库实现的不合理引起的。首先看下直接表现出来的问题。CPU用户进程CPU使用率低,系统进程使用CPU异常的高,这是非常反常的,何况64个cpu核心都在系统进程中频繁调度。...原创 2018-06-09 14:31:21 · 2636 阅读 · 0 评论 -
Java并发编程实战笔记(一)
并发编程 追求极致性能的同时,处理好与有限资源的关系. 最大化的利用现有资源,以一种安全可靠、稳定、满足业务吞吐量和并发的技术手段保证服务的可用性.线程安全线程安全的定义 当多个线程访问某个类的时候,不管运行环境采用何种调度方式或者这些线程如何交替执行,并且在主掉代码中不需要任何额外的同步或协同,这个类都表现出正确的行为,那么就称这个类是线程安全的。...原创 2018-06-09 15:29:35 · 308 阅读 · 0 评论 -
记一次服务优化的历程
开发一个服务是简单的,让服务在不可靠和有限资源环境下稳定的运行需要不断的设计优化.场景描述:起源于一流量统计的功能,需要实时或者准实时的计算流数据中每分钟的特定事件类型的数量并存储到关系型数据库中.流数据的处理经由SparkStreaming程序进行处理.第一版:也是最初的版本,采用Spark Streaming的窗口特性每隔1分钟执行一次批量的计数操作并将结果更新到关系型数据库中,在数据量小的情...原创 2018-04-14 16:29:18 · 283 阅读 · 0 评论