自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (41)
  • 收藏
  • 关注

转载 Java 的线程到底占用了多少内存?

原文排版比较好. 原文链接:https://mp.weixin.qq.com/s/wA3pUemz5oWJX6Zp9HFIGA若是有人问你正在运行的Java 程序的堆占用了多少内存, 你一个命令就给出了答案; 若是有人问你正在运行的 Java 程序的线程栈使用了多少内存, 该怎么得到答案呢?故事背景 有人的 Java 程序遇到了 OOM,程序崩溃之前,只给出了这么一句关键遗言: "java.lang.OutOfMemoryError: unable ...

2021-02-04 12:45:44 7435 2

转载 谁吃掉了 Java 异常的代码栈?

转自:https://mp.weixin.qq.com/s/GUFvhOtJMg4tAdMVDWI8bA原创有趣的bug代码中那些有趣的bug今天 通常情况下, 如果我们遇到某些异常, 都把出错异常栈打出来, 这样方便查看到底哪行代码出错了,是怎么一层层调用到了这行代码. 可是有时候,虽然我们明确写了打印出错异常栈, 可是偏偏日志里面却没有出错栈, 这是怎么一回事呢?故事背景 某天, 有开发人员找到 SRE 说, 他们的代码出了一个新的空指针错误...

2021-02-03 14:12:12 189 1

原创 JVM 的 “VM Thread“ 线程

最近在帮一个同事看一个 Java 应用为什么会被经常重启的时候, 定位到 Java 应用中一个线程经常以 CPU 使用率100%的方式出现在 htop 的头部, 它是什么线程, 为什么会导致一个 CPU 100%? 这引起了我的兴趣.相关背景及症状表现这个应用程序运行中一个有8个 CPU 的 VM 上面, 经常看到该应用程序已最低13%的使用率运行, 有时候CPU 使用率会突然升到100%, 不过大多数会以13%或稍高来运行. 从 htop 的结果可以看到, 主要一个是一个线程导致一个 CPU 10

2020-08-25 23:13:27 5269

转载 Java 无法 attach 到目标进程, 使用 core dump 转换为 Java heap dump

有时候, 当我们尝试对一个已经 GC overhead 非常高的 Java 应用进程去做 heap dump 的时候, 发现我们跟没办法 attach 到目标 Java 进程, 得到下面的错误:/usr/bin/jcmd 7674 GC.heap_dump /tmp/heap.log.hprof7674:com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not r

2020-08-21 23:32:07 558 1

原创 诊断 Java 由 Synchronizer 和 AQS 混合组成的死锁

原文链接:http://www.tianxiaohui.com/index.php/SRE/%E8%AF%8A%E6%96%AD-Java-%E7%94%B1-Synchronizer-%E5%92%8C-AQS-%E6%B7%B7%E5%90%88%E7%BB%84%E6%88%90%E7%9A%84%E6%AD%BB%E9%94%81.html死锁问题在 SRE 的日常的应用诊断中, 经...

2020-03-07 20:30:41 218

转载 SRE重案调查组 第六集 | 剖析Java的非常规线程死锁问题

原文链接:https://mp.weixin.qq.com/s/r__X4sYj6PLjPDWDulJAAw供稿 | eBay Infrastructure Engineering翻译&编辑 | 顾欣怡本文共3609字,预计阅读时间11分钟更多干货请关注“eBay技术荟”公众号导读本文将分享eBay SRE部门遇到的某个非常规Java应用程序死锁问题。...

2019-11-16 14:29:48 181

转载 SRE重案调查组 第五集 | 为什么我的服务器又双叒不响应了?!

原文地址:https://mp.weixin.qq.com/s/-CTHVLxgzTn79vOqEe_CQQ供稿 | eBay Infrastructure Engineering翻译&编辑 | 顾欣怡本文共3892字,预计阅读时间12分钟更多干货请关注“eBay技术荟”公众号导读 在SRE的日常工作中,经常会碰到很多典型问题。其中一种便是:为什么我的...

2019-11-16 14:29:04 464

转载 SRE重案调查组 第四集 | JVM元数据区的内存泄漏之谜

原文链接:https://mp.weixin.qq.com/s/h8ayDuk7SSQ-0-jNmGmydw供稿 | eBay Infrastructure Engineering翻译&编辑 | 顾欣怡本文共2155字,预计阅读时间7分钟更多干货请关注“eBay技术荟”公众号导读从Java 8开始,元数据区(Metaspace)被引入,替换永久代...

2019-11-16 14:28:09 846

转载 SRE重案调查组 第三集 | 探秘HTTP异步请求的“潘多拉魔盒”

原文地址:https://mp.weixin.qq.com/s/kVA4vrrk-UbttChu2zhaFA供稿 | eBay Infrastructure Engineering翻译&编辑 | 顾欣怡本文共3365字,预计阅读时间11分钟更多干货请关注“eBay技术荟”公众号导读HttpAsyncClient是基于Httpcore NIO 和H...

2019-11-16 14:01:33 1031

转载 SRE重案调查组 第二集 | 挖掘应用处理变慢的“真相”

原文地址:https://mp.weixin.qq.com/s/Sh7ddc-3mGXWCGppi50EHg供稿 | eBay InfrastructureEngineering翻译&编辑 | 顾欣怡本文共1942字,预计阅读时间6分钟更多干货请关注“eBay技术荟”公众号导读eBay SRE部门经常处理生产环境中各种各样的疑难杂症,此次探究的是应用处...

2019-11-16 13:56:54 447

转载 高延迟问题的罪魁祸首System.gc()

原文地址:https://mp.weixin.qq.com/s/Ivtfu4bH5vVd0KiAOonoCA导读eBay SRE每天都处理生产环境中出现的各种各样的问题,有些问题很具有代表性,这次我们将分享与Java语言中System.gc()相关的两个典型案例,介绍如何分析这种问题,并且如何定位且修复这些问题。01案例一:某日,支付平台的开发人员找到SRE,需要SRE帮助...

2019-11-16 13:40:39 875 1

转载 诊断 puppet agent 导致的 CPU 使用率非常高的问题

问题描述:看到有一台机器表现很突出, CPU 使用率比其它高, 干活却没比其它机器多:搜集数据:登录机器, 查看各个进程 CPU 使用情况: 以 root 运行的 puppet 就是那个嫌疑犯top -i嫌疑犯近照:ps -auxwwww因为 strace 只针对一个线程, 如果一个进程里面有多个线程, 首先要查出是哪个线程使用 CPU 比较高, 否则可能出错.使用 top -...

2019-10-01 19:19:43 593

转载 使用 strace 解决 twagent 狂耗 CPU 问题

最近一段时间, 经常发现生产环境上有些服务器的 CPU 使用率比其它高很多. 检查下来, 都不是我们自己的应用程序导致的, 细分下来有两种, 一种是 puppet agent 导致的(诊断 puppet agent 导致的 CPU 使用率非常高的问题), 另外一种就是 twagent 导致的. 首先, 通过 top -i -H 可以看到这个进程十分耗 CPU 然后, 通过 ps a...

2019-10-01 19:18:28 221

原创 错误的 ExecutorService 用法导致的内存泄露

原文链接:http://www.tianxiaohui.com/index.php/interestingbug.htmlJDK 提供了 ExecutorService 接口以及默认的实现类, 并通过 Executors 工具类暴露了一些常见的用法. 如果使用不当, 将会很容易造成线上问题. 这里介绍一个曾经遇到的这样的问题.一开始看到了某个应用里面的一台机器开始 GC overhead...

2019-07-01 16:14:56 3893

原创 如何确诊由 HashMap 引起的 死循环问题

原文链接:http://www.tianxiaohui.com/index.php/interestingbug.htmlJava 开发者都知道 java.util.HashMap 是非线程安全的, 一旦涉及多线程情况使用同一个 Map, 除非做了其他同步, 否则都不应该使用 HashMap. 然而现实情况是: 时不时发现生产环境在多线程情况下使用了 HashMap, 导致死循环, 继而不再...

2019-06-26 11:28:55 336

原创 狂打出错日志导致的 CPU 飙升

原文链接:http://www.tianxiaohui.com/index.php/Java%E7%9B%B8%E5%85%B3/%E7%8B%82%E6%89%93%E5%87%BA%E9%94%99%E6%97%A5%E5%BF%97%E5%AF%BC%E8%87%B4%E7%9A%84-CPU-%E9%A3%99%E5%8D%87.html程序中输出日志, 是正常普通的事情, ...

2019-06-23 23:13:37 2608

原创 诊断由 System.gc() 导致的 CPU 飙升和 GC overhead alert

在六月一个炎炎烈日的周六, 我坐在凉爽的空调房里, 突然发现生产环境有个机器 CPU 一直狂转, 我想着: 这可不行, 本来地球就够热的了, 为了保护环境, 一定要把它的 CPU 降下来.它是一个 java 应用程序, 进一步查看其它指标, 发现这货还一直报 GC overhead alert, 原来有个二货工程师写的新 bug, 一定要把它找出来.下载 verbose GC log, 通...

2019-06-17 12:30:20 783

原创 多线程情况下不正确的编码引起的内存泄漏

那年冬天, 新上线了一个处理在线消息的应用, 这个应用上线没多久, 就被发现有内存泄漏的问题. 从verbose GC log 来看, 是内存 heap 被用光了. 于是进一步做了一个 heap dump, 发现里面有个 ConcurrentHashMap 占用了大部分 heap 还不释放. 看上去是这个 ConcurrentHashMap 引起的问题.这个 ConcurrentHashMap...

2019-06-01 16:51:40 240

转载 Java 程序中导致CPU 100%的常见原因与诊断思路

原文链接上周某团队的某个业务的新功能1%上线, 上线不到1天, 开发人员发现该流程里下游有个应用不断有服务器挂掉, 症状表现为CPU 100%, 不能处理新请求. 为了临时快速解决该问题, 同事先是做了2个 heap dump 和 2个 CPU 在某个interval的usage的截屏, 然后让开发人员关闭该新功能, 同时下游服务器被完全重启一遍. 问题得以解决.问题虽然被临时解决, 但是...

2019-03-10 23:00:59 2339

原创 外企 eBay 上海 招聘 高级/资深 软件工程师 Java , 大数据, 支付, 风控, Manager, Docker, DBA, 云计算

办公地点在张江, 弹性工作制, 很少加班, 经常去美国出差, 欢迎自荐, 推荐, 本人是内部开发人员联系: eGlhdGlhbkBlYmF5LmNvbQ==以下是最新(2019/01/17)的职位列表:. 职位名称 (招聘人数 ) 部门 + 技能MTS 1, Software Engineer-Payments ( >10 ) Payments Core Java, Dist...

2019-01-19 18:19:50 861

原创 Java SimpleDateFormat 的格式化字符串里的Y

2017年元旦假期三天, 程序员小吴没有出去玩. 早上10点多了, 还在家睡懒觉. 突然电话响起,吵醒了半睡半醒的他. 他心想是推销还是贷款专员? 休假都被叫醒, 很是生气. 拿起手机, 发现竟然是公司打来的电话,顿时感觉不妙. 接通电话, 那头说有个紧急的site issue, 可能跟小吴的代码相关, 让他紧急上线看一下. 小吴一下子清醒了很多, 连忙登录VPN, 检查最新邮件, 确实发现有个问...

2019-01-03 00:03:57 1076

原创 [读书笔记] The.Way.To.Go

By January 2008 Ken Thompson had started working on a compiler to explore the ideas of the design; it produced C as output.这本书的序言写道:  Code less, compile quicker, execute faster => have more fun! g

2015-12-05 15:54:26 176

第二集 _ 挖掘应用处理变慢的“真相”.pdf

SRE部门经常处理生产环境中各种各样的疑难杂症,此次探究的是应用处理变慢问题。从监控系统入手,到找出根本原因是锁形成的顺序队列,不仅完美解决该问题,还为本部门积累了一笔宝贵的经验。

2020-08-20

第一集 _ 高延迟问题的罪魁祸首System.gc().pdf

SRE 每天都处理生产环境中出现的各种各样的问题,有些问题很具有代表性,这次我们将分享与Java语言中System.gc()相关的两个典型案例,介绍如何分析这种问题,并且如何定位且修复这些问题。

2020-08-20

linux资源

我收集的一些东西,打包发布

2007-08-19

linux资源

我收集的一些东西,打包发布

2007-08-19

linux资源

我收集的一些有用的东西,打包发布

2007-08-19

mysql资源

我收集的一些有用的东西,打包发布

2007-08-19

mysql资源

我收集的一些有用的东西,打包发布

2007-08-19

SERVLET资源

我收集的一些有用的东西,打包发布

2007-08-19

SERVLET资源

我收集的一些有用的东西,打包发布

2007-08-19

SOA资源

我收集的一些有用的东西,打包发布

2007-08-19

EJB3.0相关

我收集的一些有用的东西,打包发布

2007-08-19

spring资源

我收集的一些有用的东西,打包发布

2007-08-19

与web开发有关html,css等

我收集的一些有用的东西,打包发布

2007-08-19

spring资源

我收集的一些有用的东西,打包发布

2007-08-19

struts资源

我收集的一些有用的东西,打包发布

2007-08-19

uml资源

我收集的一些有用的东西,打包发布

2007-08-19

unix资源

我收集的一些有用的东西,打包发布

2007-08-19

hibernate

我收集的一些pdf格式文件

2007-08-19

jstl教程

我们学习用的jstl教程,全英文

2007-08-01

jsp costom tag

基础的jsp costom tag .我们学习用的

2007-08-01

JMS资源

我收集的一些东西,打包发布

2007-08-19

design patten

我收集的一些东西,打包发布

2007-08-19

EJB3.0相关

我收集的一些东西,打包发布

2007-08-19

PL-SQL

我收集的一些东西,打包发布

2007-08-19

T-SQL资源

我收集的一些东西,打包发布

2007-08-19

ajax资源

我收集的一些东西,打包发布

2007-08-19

ajax资源

我收集的一些东西,打包发布

2007-08-19

ajax资源

我收集的一些东西,打包发布

2007-08-19

3g相关资源

我收集的一些东西,打包发布

2007-08-19

arithmetic资源

我收集的一些东西,打包发布

2007-08-19

ant相关

我收集的一些东西,打包发布

2007-08-19

AOP资源

我收集的一些东西,打包发布

2007-08-19

c++资源

我收集的一些东西,打包发布

2007-08-19

database相关

我收集的一些东西,打包发布

2007-08-19

design patten

我收集的一些东西,打包发布

2007-08-19

Hack相关

我收集的一些东西,打包发布

2007-08-19

j2ee资源

我收集的一些东西,打包发布

2007-08-19

java Mail

我收集的一些东西,打包发布

2007-08-19

java script

我收集的一些东西,打包发布

2007-08-19

jsp relative

我收集的一些东西,打包发布

2007-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除