架构&实践 性能和可伸缩性 10
作者 郑杭进  发布于 2017年09月26日  阅读 3915
引言:众所周知,Nginx 服务器是一个高性能的 Web 和反向代理服务器。Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后期之秀,这一切跟 Nginx 的架构设计是分不开的。一. Nginx 模块化设计高度模块化的设计是 Nginx 的架构基础。Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内...
作者 张松然  发布于 2017年06月25日  阅读 1520
最近使用阿里云的 Ubuntu 16.04 ESC 服务器运行 Tomcat 时发现,Tomcat 启动的特别慢,通过查看日志,发现时间主要花在实例化 SecureRandom 对象上了。由该日志可以看出,实例化该对象使用了253秒,导致整个应用启动了275秒之久。注意这条日志:org.apache.catalina.util.SessionIdGeneratorBase.createSecure...
作者 张松然  发布于 2015年11月13日  阅读 1033
RPC 接口调用框架如下:当 Register 出现异常,Provider 重复注册地址,Register 就会不停地向 Consumer 推送大量的无效地址,造成 RPC 调用失败、超时等异常。系统崩溃定位如下(就像滚雪球一样,迅速的崩溃):我们通过当时的快照进行分析:服务器系能监控(Load 飙升)服务器性能监控(Net IO 下降)JVM 监控 堆区(持续高位)JVM 监控 Full GC ...
文章 发布于 2015年10月20日  阅读 1917
JavaMelody 可以实现对内存、CPU、线程、JDBC 连接数、HTTP 请求执行时间、SQL 执行时间(分析 Top SQL)、方法执行时间(分析系统方法性能瓶颈)等等的监控。配置方式1. pom.xml(加入依赖包) net.bull.javamelody javamelody-core 1.53.02. web.xml2.1. 配置过滤器,也可以配置不需要监控的 HT...
作者 张松然  发布于 2015年02月22日  阅读 2189
最近查看消息推送的监控信息,日推送量到百万,但是随之而来的是 TP99 搞到 5秒,详细对日志打了埋点,监控其瓶颈,最终定位是 Redis 的性能问题。但是令人疑惑的是,对比了其他应用系统 Redis 的性能,日吞吐量亿次的 TP99 才 5~10ms,故猜测一定是应用问题导致了 Redis 的性能下降!查看了应用服务器的网络 IO,发现网络吞吐量异常的汹涌!查看了 Redis 服务器的配置参数,...
作者 张松然  发布于 2015年02月13日  阅读 587
最近,线上生产系统突然频繁的 JVM 内存报警!但本系统近期内并没有上线改动!为了能查清内存报警的原因,使用 Eclipse Memory Analyzer tool(MAT)对 JVM Dump 文件进行了分析!1. 生成 dump 文件用 jmap 生产 dump 文件jmap -dump:format=b,file=HeapDump.bin 2. MAT 安装与介绍下载地址:http://w...
文章 发布于 2015年02月13日  阅读 3459
现在越来越多人开始使用 Redis 了,主要是因为它十分高效、性能强劲、扩展性好。先介绍几种分析 Redis 的工具!- Redis-samplerRedis-sampler 是 Redis 作者开发的工具,它通过采用的方法,能够让你了解到当前 Redis 中的数据的大致类型,数据及分布状况。- Redis-auditRedis-audit是一个脚本,通过它,我们可以知道每一类 key 对内存的使...
作者 张松然  发布于 2015年01月23日  阅读 2073
今天线上又发现 502 Bad Gateway 的现象,但奇怪的是没有方法可用率报警,检查发现,线程数上线,但没有方法异常!在毫无头绪之际,突然想到查看 jstack,日志如下:发现程序的线程全部处于 BLOCKED 状态!等了一会,在查看 jstack,日志如下:发现 BLOCKED 状态消失了,都变成了 TIMED_WAITING 状态!仔细分析日志,发现线程都在 waiting for 同一...
作者 张松然  发布于 2015年01月17日  阅读 2045
今天突然系统调用出现大量 502 错误! 502 错误是请求已经到了HTTP服务器(Nginx),但是在反向代理时请求不到应用服务器(Tomcat)!查看了实例应用的 JVM 探针!下面是异常前日和当日(上图是昨日,下图是今日)各项参数的对比。1. CPU: 昨天的 CPU 使用率稳定 4%,而今日则有较大波动!2. JVM 堆内存:两日相比,异常当日 JVM 堆内存的增长较前日要异常的!3. F...
文章 发布于 2014年11月26日  阅读 796
问题:JVM 内存频繁预警,内存规律性波动。一. 查看JVM 的GC Collector:Young GC:PS Scavenge | Full GC:PS MarkSweepPS Scavenge 新生代的收集器,也叫 Parallel Scavenge。PS MarkSweep 老生代的收集器,也叫 Serial Old。二. 内存曲线分析1. 频繁 Young GC,产生大量碎片2. 大对象...
共10条记录 共1页 上一页 首页 1 末页 下一页