自己的另外一篇: http://www.cnblogs.com/fei33423/p/7805186.html 偶有耗时抖动? gc 也有长耗时? fullgc 也是? 有同学反馈 swap 可能导致. 命令 free -g 显示有 swap . 然后对比 gc 耗时的点和 swap 切换的时间点. -W是显示 swap 记录. 见 man sar [ 性能之巅的书] sar -W -f /var/log/sysstat/sa06 -s 17:00:00 -e 19:00:00 是syssta工…
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警.本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路. 对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,然后重启系统,尽快保证系统的可用性.这种情况可能的原因主要有两种: 代码中某个位置读取数据量较大,导致…
一次生产系统Full GC问题分析与排查总结 背景 最近某线上业务系统生产环境频频CPU使用率过低,频繁告警,通过重启可以缓解,但是过了一段时间又会继续预警,线上两个服务节点相继出现CPU资源紧张,导致服务器卡死不可用,通过告警信息可以看到以下问题: 从上图可以看到,目前zabbix监控展示CPU空闲时间已经低于预警线,证明目前CPU资源占用过高,考虑到最近并没有特别开发任务上线,但是最近有发布过一个新的营销活动,有可能是因为突然用户量增长进一步凸显该问题. 从Pinpoint APM监控工具看…
一.背景 redis慢日志分析平台上线后,随便看了一下,发现onestore使用的缓存集群,存在大量的EXISTS命令慢查询的情况: 平均每个EXISTS命令需要13ms,最大耗时近20ms.这个结果很不科学啊,EXISTS命令只是执行一次hash查找操作,应该是us级别. 和相关同学了解业务背景如下: - 业务是userfeed,存放用户发表的动态 - 使用zset存储一个用户发表的所有动态,key是用户id,集合中对应的是feedid.如果用户发表的动态很多,zset也很大 - redis集…
将长生命周期对象和大对象池化 请记住最开始说的原则:对象要么立即回收要么一直存在.它们要么在0代被回收,要么在2代里一直存在.有些对象本质是静态的,生命周期从它们被创建开始,到程序停止才会结束.其它对象显然不需要永远存在下去,但他们的生命周期会存在程序的某些上下文里.它们的存活时间会超过0代(1代)回收.这些类型的对象可以作为池化对象的备选.这虽然需要你手动管理内存,但实际情况下这是一个很好的选择.另外一个重要的需要池化的对象是分配在LOH里的大对象. 没有一个单一的标准方案或者API来实现对象…
geektime专栏<linux性能优化实战>笔记 一.Linux问题排查命令 uptime top free vmstat iostat ifstat 二.Sun JDK自带工具 jps(虚拟机进程状况工具) [peng@manjaro java]$ jps -l SynAddRunnable sun.tools.jps.Jps [peng@manjaro ~]$ jps -l sun.tools.jps.Jps [peng@manjaro ~]$ jps -v Jps -Denv.clas…
一. jmap // 打印jvm的堆状况,主要是年轻代和老年代信息 jmap -heap <pid> 如: Heap Configuration: MinHeapFreeRatio = MaxHeapFreeRatio = MaxHeapSize = (.0MB) NewSize = (.25MB) MaxNewSize = MB OldSize = (.1875MB) NewRatio = SurvivorRatio = PermSize = (.75MB) MaxPermSize = (.…
1.安全管理 1)绑定指定IP Redis的安全设计是在“Redis运行在可信环境”这个前提之下的,在生产环境中建议通过应用程序连接Redis.Redis可以配置只接受来自指定IP的的请求,可通过修改配置文件中的bind来实现,如下: bind 127.0.0.1 2)设置密码 除此之外,还可以配置requirepass选项来设置密码,如: requirepass root 配置好重启后ping一下试试 > ping (error) NOAUTH Authentication required.…
minimap2 github 官网 https://github.com/lh3/minimap2 安装 git clone https://github.com/lh3/minimap2 cd minimap2 && make…
  这是我们的第一篇月报,每个月和每个来之不易的开发者分享产品故事以及产品进展. 在 5.20 这个极具中国特色的"节日"里,Eoapi 发布了 1.0.0 版,三个程序员掉了半年头发堆出了第一个正式版本.   把 Eoapi 介绍给大家的过程中,我们遇到的最多问题是: 你和 Postman 有什么区别? Postman 出现的时间,是八年前,几乎是同类型 API 工具的祖师爷. 毋庸置疑它是一款优秀的产品,在那个使用 Curl.浏览器.抓包工具调试 API 的年代,这款支持通过界面对…