JVM内存设置多大合适?Xmx和Xmn如何设置?

发布于:2017-11-3 11:19 作者:losetowin 浏览:8332 分类:Java
问题:
新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢?

分析:

依据的原则是根据Java Performance里面的推荐公式来进行设置。

WX20171103-112002.png

具体来讲:
Java整个堆大小设置,Xmx 和 Xms设置为老年代存活对象的3-4倍,即FullGC之后的老年代内存占用的3-4倍
永久代 PermSize和MaxPermSize设置为老...

阅读全文>>

0

Java命令-jstat使用

发布于:2017-10-23 19:27 作者:losetowin 浏览:2375 分类:Java
介绍:
     jstat是一个用来监控虚拟机资源和性能的命令行工具。 可以展示本机或者远程虚拟机进程中的类装载、内存、垃圾回收、JIT编译等运行数据,是常见的线上jvm问题排查的工具,非常实用。 


命令格式:

jstat -help|-options
jstat -<option> [-t]...

阅读全文>>

标签: jstat

0

maven如何打包指定某些jar包不在内

发布于:2017-10-16 19:10 作者:losetowin 浏览:2352 分类:技术
问题:
     在写MR任务的时候,需要打包成一个jar包,提交给hadoop平台使用,但是类似hadoop的依赖包本身平台已经有了,所以不希望再将此类的依赖包打进最终的jar包中。 

解决办法:
可以使用maven的scope来使用。 
maven的scope为 provided 的时候,表示容器或者JDK已经提供的范围,即该...

阅读全文>>

标签: maven scope

0

Charles抓Https时SSLHandshake:Received fatal alert:unknown_ca解决办法

发布于:2017-10-11 20:07 作者:losetowin 浏览:3043 分类:技术

做开发的时候经常使用charles进行抓包,最近公司切换成https之后,进行抓包的时候发现IOS上抓包不成功,无法显示返回结果。提示错误为SSLHandshake:Recevied fatal alert:unknown_ca。要求设置Root Certificate。

但实际上手机上已安装证书。

实际显示异常如下:

1.png

证书安装方式也是按照官方提示的方式进行安装的。 ...

阅读全文>>

标签: charles 抓包

0

地址服务优化

发布于:2017-10-4 20:20 作者:losetowin 浏览:1478 分类:Java

问题:

地址服务使用Redis做数据缓存,原本的技术方案是将地址对象转化成json格式字符串进行存储,使用数据格式为String类型。 

但随着数据的增长,出现了两个问题:

1、内存占用达到4G,并成增长趋势。 超出原始估算值4G。

2、查看值分布,发现存在特别大的value值,有些超过200k。

内存增长超出预期,需要找到内存增长过快的原因; 值过大可能会导致请求过多时将网卡占满,导致无法服务,...

阅读全文>>

0

Java GC 知识点

发布于:2017-5-21 17:35 作者:losetowin 浏览:1610 分类:Java
GC算法
    
引用计数无法处理循环引用的问题
标记清除算法
1、从根节点开始标记所有被引用的对象
2、遍历整个堆,把未标记的对象清除。

会产生Stop-The-World,产生内存碎片。
复制算法
把内存空间划分为两个相等的区域,每次只使用一个区域。GC时,遍历当前使用区域,把正在使用中的对象复制到另外一个区域中。因为只复制正在使用中的,所以复制成本比较小。复制过去之后会做相应...

阅读全文>>

标签: java GC

0

联盟收入下降的排查及解决

发布于:2017-5-2 23:07 作者:losetowin 浏览:1566 分类:技术

 1 

起因

     博客上月的百度联盟收入下降了。而且是下降了40%+。虽然原本就没有多少钱,但是呆呆的狗粮钱一下子少了一半啊,所以需要查一下为什么收入下降这么多。

 2 

思路

首先思路自然是看网站流量,加了百度统计,看流量的变化趋势很方便。 


    &nb...

阅读全文>>

【算法】两个栈实现一个队列

发布于:2017-4-9 16:45 作者:losetowin 浏览:1718 分类:Java

问题描述

使用两个栈实现一个队列,实现pop方法和push方法,存储元素为int数据

思路

使用stack1做数据存储,使用stack2做临时数据中转。pop时,将stack1的数据转到stack2中,然后pop一个出来。之后将stack2的数据pop到stack1中。


代码实现

/**
 * 两个栈模拟一个队列(先进先出)
 * @author www....

阅读全文>>

标签: 算法

0

ThreadPoolExecutor入门

发布于:2017-3-22 0:37 作者:losetowin 浏览:1657 分类:Java
01

为什么要用线程池?

1、降低资源消耗:重复利用已创建好的线程,减少线程的创建和销毁带来的资源消耗

2、提高系统的相应速度:任务到达时,不需要等待线程创建,直接利用现有线程可直接执行。

3、提升线程的可管理性:线程是稀缺资源,如果不加限制的创建,不仅会消耗系统资源,还会降低系统的稳定性。使用线程池可以进行统一的分配和调优。

线程越多,不一定意味着程序越快。线程越多会造成上下文切换次数的增多,反...

阅读全文>>

Integer数据比较(升级篇)

发布于:2017-2-20 23:54 作者:losetowin 浏览:1514 分类:Java

之前有写过一篇关于Integer的文章《Integer的数据比较》(http://mp.weixin.qq.com/s?__biz=MzA3NjE5NzE4Nw==&mid=402194451&idx=1&sn=3d8db79ae561f08cba5cb01df96e3bd8#rd)这次再聊一下关于Integer的数据比较,增加一点新的内容。具体还是以例子作为开始。

下面的程...

阅读全文>>

1 2 3 4 5 6 7 ... »