线上跑的几台server突然出现大量fgc,因为在fgc过程的stop the world太久.引起其他应用訪问该server上的接口大量超时.(发生超时的时间点和fgc时间点一致) 先进行初步的优化. 方案:改动CMSInitiatingOccupancyFraction=85这个调低到60,加快cms gc处理防止concurrent mode failure触发FGC,            降低CMSMaxAbortablePrecleanTime到500以缩短PreClean时间.  …
以下来分享一个关于MySQL数据库慢查询和FGC频繁的性能案例. 一.系统架构 一个简单的dubbo服务,服务提供者提供接口,并且提供接口的实现,提供方注册服务到Zookeeper注册中心,然后消费者要用其某个服务的时候,就去zookeeper上订阅该服务.这样,我们只需要使用接口,然后通过spring getbean,就可以让这个接口实例化,拿来使用,通过传参去Mysql数据库查询数据. 同时因为消费者只能得到接口,而无法看到接口的实现,也保证了服务者的安全. 服务注册与调用 脚本实现接口调用…
https://mp.weixin.qq.com/s/I1fp89Ib2Na1-vjmjSpsjQ 线上服务的FGC问题排查,看这篇就够了! 原创 骆俊武 IT人的职场进阶 2020-05-10   线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告系统出现了多次和GC相关的线上问题,有Full GC过于频繁的,有Young GC耗时过长的,这些问…
nmap扫描端口导致线上大量Java服务FullGC甚至OOM 最近公司遇到了一次诡异的线上FullGC保障,多个服务几乎所有的实例集中报FullGC,个别实例甚至出现了OOM,直接被docker杀掉. 观察报警服务的log,均有大量的此log *TNonblockingServer [ERROR] Read a frame size of ****, which is bigger than the maximum allowable buffer size for ALL connectio…
一.数据表结构 CREATE TABLE `jx_attach` ( `attach_id` int(11) NOT NULL AUTO_INCREMENT, `feed_id` int(11) DEFAULT NULL , `attach_name` varchar(255) NOT NULL, `cycore_file_id` varchar(255) DEFAULT NULL , `attach_size` bigint(20) NOT NULL DEFAULT '0', `complet…
上传功能是工作中经常会遇到的问题,应该作为开发标配的技能每个人都会. 我选用的是Uploadify 3.1.2进行上传,使用方法参考之前的一篇文章, 今天记录下一个我遇到的很神奇的bug chrome为何频繁崩溃(crash) 本地开发环境一切正常, 但是上线后Chrome却频繁crash,IE.Firefox等浏览器都没有问题,google的建议删除自己的default目录,觉得不靠谱没有尝试. 一开始搞不懂为什么会出现这种情况,通过Google查资料,发现是浏览器缓存造成的:Chrome浏览…
性能问题:老年代一直处于占满状态,为什么没有发生内存溢出 以HotSpot VM的分代式GC为例,普通对象分配都是在young gen进行的,具体是从在位于young gen中的eden space中分配的TLAB里分配的. 就算old gen已经接近占满其最大capacity,由于新对象的分配都在young gen而如果young GC总是能回收足够空间来避免进一步有对象需要晋升到old gen的话,那就可以一直运行下去而不OOME. 另外一种情况就是其实程序已经进入了不断full GC来试图…
环境如下: Centos6.5 Apache Hadoop2.7.1 Apache Hbase0.98.12 Apache Zookeeper3.4.6 JDK1.7 Ant1.9.5 Maven3.0.5 最近在测Hbase的压缩,Hadoop安装了lzo和snappy,插入50条文本数据,每条数据大约4M,来看他们的压缩率对比, 然后在测的过程中,发现用java客户端去scan这50条数据时,regionserver频繁宕机看hbase的log发现并无明显异常,查看datanode的log发…
转载于互联网     iptables直接针对ip进行封禁,在ip数量不大的时候是没什么问题的,但当有大量ip的时候性能会严重下降,iptables是O(N)的性能.而ipset就像一个集合,把需要封闭的ip地址写入这个集合中,ipset 是O(1)的性能,可以有效解决iptables直接封禁大量IP的性能问题. 1. 如果是RedHat/CentOS,首先用yum(Ubuntu/Debian用将yum换为apt-get既可 )安装ipset. yum install ipset -y 2.ip…
1.项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 面试题剖析 为什么要用缓存? 用缓存,主要有两个用途:高性能.高并发. 高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms.但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户.那么此时咋办? 缓存啊,折腾 600ms 查出来的结果,扔缓存里,一个 key 对应一个 value,下次再有人查,别走 mysql 折腾 600ms…
一.redis都有哪些数据类型?分别在哪些场景下使用比较合适?二.redis双写不一致三.雪崩和穿透四.redis的过期策略,LRU五.redis是如何实现高性能高并发六.如何保证Redis的高并发和高可用?redis的主从复制原理能介绍一下么?redis的哨兵原理能介绍一下么?七.并发竞争八.redis的线程模型九.redis集群模式原理十.redis的集群部署架构十一.redis的持久化 一.redis都有哪些数据类型?分别在哪些场景下使用比较合适?(1)string这是最基本的类型了,没啥…
前言 关于Redis的知识,总结了一个脑图分享给大家 1.在项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 面试官心理分析 这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬. 只要问到缓存,上来第一个问题,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果? 这就是看看你对缓存这个东西背后有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答,那面试官对你印象肯定不太好,觉得你平时思考太少,就知道干活儿. 面…
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 + 涨薪必备 疯狂创客圈 经典图书 : <SpringCloud.Nginx高并发核心编程> 面试必备 + 大厂必备 + 涨薪必备 资源宝库: Java程序员必备 网盘资源大集合 价值>1000元 随便取 GO->[博客园总入口 ] 送书活动:联合机械工业出版社 Java高并发三部曲…
*****************开篇介绍**************** ----------------------------------------------------------------------------------------------------------------------- 三个重要的标准: ---大型缓存架构中需要首先说一下: 海量数据:支持海量数据缓存,支持大规模数据: 高并发:在亿级QPS的场景下,可以做到满足业务需求: 高可用:表示redis可以做…
一.单选题(共21题,每题5分) 1在正则表达式当中下面那一个字符集表示非空格字符   A.[:graph:] B.[:digit:] C.[:space:] D.[:alpha:] 参考答案:A 答案解析: A   2下列叙述中,错误的是( ).   A. 内部类可访问它所在类的成员 B. 内部类的名称与定义它的类的名称可以相同 C. 内部类可用abstract修饰 D. 内部类可作为其他类的成员 参考答案:A 答案解析: 暂无   3以下哪个排序算法中,元素的比较次数元素与元素的初始排列无关…
一次接到用户电话,说某个应用在并发量稍大的情况下就会出现响应时间陡然增大,同时管理控制台的响应时间也很慢,几乎无法进行正常工作. 赶到现场后,查看平台版本为Webshpere6.0.2.29,操作系统为Windows 2003企业版sp2,于是首先分析systemout.log,发现有如下报错: = com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException Max connections reached 869 Exception = com…
都说金三银四是找工作的最佳时节,由于本人的个人职业规划跟目前工作内容不太相符(具体原因就不透露了,领导平时也要来这里逛,哈哈),四月份挑选了10多家公司投递简历(公司规模从几十人到上万人都有),参加了7家公司的电话面试,收获了5个offer,也还算不错.下面就分享一下面试过程中一些基础的,又最常见的问题.不啰嗦了,直接看题. 1.synchronized你用过吗?synchronized和Lock的区别?synchronized偏向锁的获取和撤销? 前2个问题,之前在多线程专题有详细的介绍,欢迎…
都说金三银四是找工作的最佳时节,由于本人的个人职业规划跟目前工作内容不太相符(具体原因就不透露了,领导平时也要来这里逛,哈哈),四月份挑选了10多家公司投递简历(公司规模从几十人到上万人都有),参加了7家公司的电话面试,收获了5个offer,也还算不错.下面就分享一下面试过程中一些基础的,又最常见的问题.不啰嗦了,直接看题. 1.synchronized你用过吗?synchronized和Lock的区别?synchronized偏向锁的获取和撤销? 前2个问题,之前在多线程专题有详细的介绍,欢迎…
引言 今天周末,我在家坐着掐指一算,马上又要到一年一度的金九银十招聘季了,国内今年上半年受到 YQ 冲击,金三银四泡汤了,这就直接导致很多今年毕业的同学会和明年毕业的同学一起参加今年下半年的秋招,这个竞争就比较激烈了. 最近后台有一些朋友给我留言,希望我能写写招聘相关的内容,毕竟虽然说是金九银十,但是很多大公司的校招从 7 . 8 月份就开始了. 本来是想写点面试技巧和简历技巧的,但我转念一想,大家都是搞技术的,问题的核心还是技术能力要过关,面试技巧这东西最多只能用作锦上添花,而技术能力过不去,…
1. 荒腔走板 最近一两个月生产K8s集群频繁出现短时503 Service Temporarily Unavailable,还不能主动复现,相当郁闷,压力山大. HTTP 5xx响应状态码用于定义服务端错误. 500 Internal Server Error: 所请求的服务器遇到意外的情况并阻止其执行请求,通常针对单个请求,整个站点有时还是提供服务. 502 Bad Gateway Error 暗示连接链路中某个服务器下线或者不可用: 503 Service Unavailable 意味着托…
1.redis持久化的意义----redis故障恢复 在实际的生产环境中,很可能会遇到redis突然挂掉的情况,比如redis的进程死掉了.电缆被施工队挖了(支付宝例子)等等,总之一定会遇到各种奇葩的现象导致redis死掉,这时候放在redis内存中的数据就会全部丢失,这些数据可能服务很多的系统或者服务,当然,我们可以重新启动redis,重启之后,如果redis没有持久化,redis中的数据就会全部丢失. 如果通过持久化将数据搞一份到磁盘,然后定期的同步和备份到云存储服务上去,那么就可以保证数据…
Redis持久化的意义 在于故障恢复 比如你部署了一个redis,作为cache缓存,当然也可以保存一些较为重要的数据 如果没有持久化的话,redis遇到灾难性故障的时候(断电.宕机),就会丢失所有的数据 如果通过持久化将数据搞一份儿在磁盘上去,然后定期比如说同步和备份到一些云存储服务上去,那么就可以保证数据不丢失全部,还是可以恢复一部分数据回来的 通常Redis 将数据存储在内存中或虚拟内存中,它是通过以下两种方式实现对数据的持久化(如果我们想要redis仅仅作为纯内存的缓存来用,那么可以禁止…
一.RDB和AOF两种持久化机制的介绍 RDB持久化机制,对redis中的数据执行周期性的持久化 AOF机制对每条写入命令作为日志,以append-only(追加)的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集 如果我们想要redis仅仅作为纯内存的缓存来用,那么可以禁止RDB和AOF所有的持久化机制 通过RDB或AOF,都可以将redis内存中的数据给持久化到磁盘上面来,然后可以将这些数据备份到别的地方去,比如说阿里云,云服务 如果re…
Redis持久化方式        持久化的目的主要是做灾难恢复,数据恢复.由于Redis的数据全都放在内存里面,如果Redis挂了,没有配置持久化的话,重启的时候数据会全部丢失.         突然间,大量的请求过来,缓存全都无法命中,造成缓存雪崩,mysql无法承载大量的请求,造成整个系统崩溃.如果把Redis持久化做好,即使Redis故障了,也能够立即重启,对外提供服务.           Redis持久化分为两种: RDB持久化: 在指定的时间间隔内将内存中的数据集快照写入磁盘,实际…
前言 人生在于折腾系列,网络,多线程等系列博客楼主还在继续折腾也不会放弃.缓存的知识其实并不仅仅在于简单的增删改查,我觉得有必要全面深入的学习一波.记录学习的过程与体悟. RDB 什么是RDB 对redis中的数据执行周期性的持久化,通过配置文件中设置检查间隔时间与备份触发条件来对数据进行周期性的持久化 RDB持久化的优点 RDB会生成多个数据文件,每个数据文件都代表了某一个时刻中redis的数据,这种多个数据文件的方式,非常适合做冷备份. RDB对redis对外提供的读写服务,影响非常小,可以…
作者:中华石杉 面试题 redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? 面试官心理分析 redis 如果仅仅只是将数据缓存在内存里面,如果 redis 宕机了再重启,内存里的数据就全部都弄丢了啊.你必须得用 redis 的持久化机制,将数据写入内存的同时,异步的慢慢的将数据写入磁盘文件里,进行持久化. 如果 redis 宕机重启,自动从磁盘上加载之前持久化的一些数据就可以了,也许会丢失少许数据,但是至少不会将所有数据都弄丢. 这个其实一样,针对…
我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的 企业级redis集群架构:海量数据.高并发.高可用 持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去 比如你redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用 重启redis,尽快让它对外提供服务,但是就像上一讲说,如果你没做数据备份,这个时候redis启动了,也不可用啊,数据都没了 很可能说,大量的请求过来,缓存全部无法命中,在redis里根本找不到数据,这个时候…
一.发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 . client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端: 示例: 以下实例演示了发布订阅是如何工作的.在我们实例中我们创建了订阅频…
1.redis持久化的意义 redis持久化的意义,在于 故障恢复 . 如果没有对数据进行持久化,那么如果redis遇到灾难性的故障,就会丢失所有的数据. 如果通过redis的持久化机制将数据持久化到硬盘上面去,然后在定期将磁盘上的文件备份到一起其他的服务器上面(比如:云服务器),这样就可以保证即使redis遇到了灾难事故,也可以使用提前备份的文件对数据进行回复,之后丢失最近的一部分数据,而不会全部丢失数据. 2.redis的两种持久化方式 redis的持久化是跟高可用相关的.redis有两种持…
1.RDB和AOF两种持久化机制的介绍 RDB持久化机制,对redis中的数据执行周期性的持久化 AOF机制对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集 如果我们想要redis仅仅作为纯内存的缓存来用,那么可以禁止RDB和AOF所有的持久化机制 通过RDB或AOF,都可以将redis内存中的数据给持久化到磁盘上面来,然后可以将这些数据备份到别的地方去,比如说阿里云,云服务 如果redis挂…