![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
chenxinl
这个作者很懒,什么都没留下…
展开
-
关于CMS: abort preclean due to time
hotspot的jvm目前主要支持4种gc,分别是:SerialGC, ParallelGC, ParallelOldGC和CMS GC。对于离线任务,更关注吞吐量,一般推荐ParallelOldGC;对于实时响应的任务,比如web server类似,推荐CMS gc。详细的GC介绍可以参考bluedavy的介绍:http://rdc.taobao.com/team/jm/archives/6原创 2012-09-14 18:18:55 · 10805 阅读 · 0 评论 -
lucene的FieldCache与内存管理
为了支持变长字段和更丰富的数据类型,我们在搜索项目中对lucene的FieldCache做了部分扩展;但使用下来碰到了内存泄漏,所以这里对 lucene的FieldCache做下细致的了解。FieldCache使用WeakHashMap做核心的cache管理,key是IR对象内部的 frequency文件对象,value是对应字段的数组。虽然WeakHashmap像个核武器,声称可以自动释放对象;原创 2012-10-10 13:47:51 · 3323 阅读 · 0 评论 -
dumpAllThreads挂起程序的问题
ThreadMXBean.dumpAllThreads(true,true)因为要获取所有jvm线程的monitor和synchronizer信息,会挂起执行线程。对负载较大的服务器端程序,会引起latency飙升,需要特别注意。我们的搜索服务中有一个后台监控线程,定期调用这个方法,导致这个时间点的查询,响应时间飙升。不获取锁信息(dumpAllThreads(false, false) ),不会原创 2012-09-14 18:00:18 · 3518 阅读 · 0 评论 -
java中jmx/jconsole/jstat/jmap的关系
JMX是java5开始提供的对java应用进行监控的一套接口。实现方式是在jvm内部起一个mbeanserver通过网络对外开放调用接口,这样外部就可以做应用监控或者类似远程方法调用。java默认实现了jvm的一些监控,比如堆内存使用情况(MemoryMXBean),线程情况(ThreadMXBean),gc情况等,外部程序可以直接使用,比如jconsole实际上就是对这些bean的包装,只是把返原创 2012-09-23 14:29:00 · 3708 阅读 · 0 评论 -
zookeeper的异常处理(Disconnected, SyncConnected, Expired)
最近系统中使用zookeeper支持三个功能:全量/增量索引的消息通知;搜索活跃节点检查;分布式锁做索引切换同步。线上服务对稳定性要求较高,包括各种异常情况,如网络中断导致连接断开,系统load过高导致zk 超时等。从使用角度,做了几个测试,总结如下:1. zk内部两个后台线程:心跳线程(SendThread),时间处理线程(EventThread),均为单线程,且互相独立。所以e原创 2013-08-04 14:06:52 · 13109 阅读 · 0 评论