NodeJS CPU 占用100%问题排查

上周接到同事反馈,客户服务器不时出现 502 错误,需要定时重启前端服务。上服务器上看了一下 cpu 占用100%,无法响应请求,由于是生产系统,备份了一下日志,重启服务。 疑似 ddos 攻击 看了一下日志,由于应用日志是 warning 级别,并没有太多有用信息,倒是 nginx 日志有大量的无效访问,并且这些访问大部分都是由 100.97. »

一次纠结的线上问题排查之应用优化

这次旷日持久的web 502问题终于画上了句号,在此总结一发,以表纪念与反思。 起因 客户在年前就已经反应网站经常502,当时还有开发任务没太在意,所以每次502就直接重启服务解决。直到年后,批量操作新功能上线,502问题就非常频繁了,几乎一天一次! 在这里自我检讨一下,对问题没有足够的重视也没有足够的警觉,自身处理这类问题的能力也需要加强。 经过 经过各路大神的分析与调试,这是分析过程, 发现是踩到了曾经的一个坑,鉴权拦截器里有用到GuavaCache,没有设置MaxSize和过期时间,而且每次前端请求发过来,cache的key都会重新new一把,导致重复积累对象,内存得不到释放,最后OOM了。 »

Kotlin 随手记(一): InfluxDB Client 查询封装思路

1. 关于 InfluxDB-JAVA InfluxDB 是 InfluxData 公司的一款开源时间序列数据库,多用于储存日志、持续事件、监控数据之类时间相关的序列化数据。并提供了多种语言的接入方式,并且官方提供了 Java client: inflxudb-java,Kotlin 项目可以直接引入依赖并且使用。 2. 接入方式 InfluxDB 使用 RESTful 接口来查询与写入,官方 Client 便在 »

一次纠结的线上问题的排查

上周五接到一个任务, 说某个客户的一个线上java应用挂了, 现象就是cpu飙升, 几乎跑满, 无法响应请求。ssh连上去看了看应用日志, 有大量的java.lang.OutOfMemoryError: Java heap space 这种类型的日志, 看了看jvm启动参数, 给的比较小, 于是没放心上, 那就分配多一点jvm内存, 周末观察一下再说. 这里需要检讨一下, 调大内存的时候, 就应该加上-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=...., 这样内存溢出的时候就可以分析内存快照。 修改了参数后, »

数据中心操作系统 DC/OS 简介

Datacenter Operating System (DCOS) 是在一篇来自Berkeley的论文《The Datacenter Needs an Operating System》中第一次被提出来。 论文引用了一个开源初创项目Mesos — 《A platform for finegrained resource sharing in the data center》。 两篇论文的主要贡献者Benjamin Hindman后来就职于Twitter,并在那里成功的引入了Mesos。 »

升级 Elasticsearch 2.2 到 5.2

elasticsearch 5.2在1月底release了,parana使用的是2.2版本,近日已升级到5.2.release,下面简单讲述一下升级需要改动的一些地方。 Index Level Settings 在5.0之前允许在elasticsearch.yml设置Index Level Settings,在5.0之后做了限制,只允许部分特定的配置项。parana之前在elasticsearch.yml配置的这段settings就需要搬家了: index: "analysis": { "tokenizer": { "ngram_ »

切换 HTTPs 碰到的一个小问题

问题描述: 在岁宝做全站https切换的时候,碰到了一个问题, 未登录情况下,点击需要登录权限的菜单,redirect url的协议头变回了http, 情况类似这样: https://www.ishirble.com/login?target=http://www.ishirble.com/user/index 所以在登录后,协议就变回了http 问题原因: 查了代码发现这个redirect url是后端定义的,后端的代码中则是根据request. »

Terminus Actuator:分布式监控(一)

简介 监控工具内置了 Servlets、Jetty、mybatis、redis 和基于 AOP 的 Spring component 监控,并定时将数据写入 InfluxDB。 监控工具基于 Dropwizard 进行了再封装,加入了额外的模块名、机器信息和 TerminuKey 等,以适应端点的分布式电商体系。 接入方式 为了使用监控,联系管理员获取 TerminusKey, »

HTTPS, 妈妈再也不用担心我的网站被运营商劫持了

HTTPS:更安全的时代 HTTP协议的问题 HTTP 日常使用极为广泛的协议,它很优秀且方便,但还是存在一些问题,如: 1. 明文通信,内容可以直接被窃听 2. 无法验证报文的完整性,可能被篡改 3. 通信方身份不验证,可能遇到假的客户端或服务器 明文通信,内容可以直接被窃听 HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常见的例子, »

前端体系分享

总述 在互联网应用越来越大,越来越复杂的今天,我们不可避免的需要工具来管理我们的前端代码。 替代以前的一个巨大的脚本文件,我们希望可以将文件写入不同的文件模块。并且希望代码可以 重用,可以简单的引用和添加各种各样的依赖到我们的项目( 无论是菜单一样的 UI 组件还是 一个类似 jQuery 的 DOM 操作库)。不止是 JavaScript 我们希望可以用这种方式来组织, 他应该也包含 CSS,HTML 模板,字体,图片和其他静态文件。 »