记一次 java程序优化
优化原因
环境中部署两个程序:
- web应用 tomcat 10G(webservice服务端,前端web服务)
- java应用 5G(webservice客户端,socket客户端)
之前的设计思路是打算web应用作为前端不做业务处理,后端使用webservice做能力接入。
1天能力处理量大概在150W次到两百万次左右:
- 并发数量web端口在12tps
- 应用端在20tps左右(能力聚合的时候可能会调用几个能力做聚合操作)。
jvm优化
之前的应用服务的启动参数
-Xss1024k -Xms1g -Xmx3g -Xmn2g -XX:PermSize=64m -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+UseParallelGC
优化后:
-server -Xss1024k -Xms3g -Xmx3g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+UseParNewGC -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection
- 将jvm设置为server模式(如下默认值为server也可不设)
[linkage@zhczint1 ~]$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) 64-Bit <strong>Server</strong> VM (build 20.8-b03, mixed mode)
- 将Xms与Xmx,XX:MaxPermSize与XX:PermSize设置为相同,防止在伸缩的时候性能降低
- 将原有年轻态并行收集器,年老太串行收集器设置(默认) 修改为 年轻态并行收集器,年老态并发收集器。
修改完后,性能稳定了不少,同时对web服务器进行了jvm参数的相应优化

linux参数优化
#<domain> <type> <item> <value>
#
* soft nofile <strong>65535</strong>
* hard nofile <strong>65535</strong>
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
查看网络连接情况
[linkage@zhczweb1 ~]$ netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 132
FIN_WAIT2 23
ESTABLISHED 79
SYN_RECV 30
设置连接情况
~
[linkage@zhczweb1 ~]$ vi /etc/sysctl.conf net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30 <span style="font-size: 1em; line-height: 1.5;">[linkage@zhczweb1 ~]$ </span>/etc/rc.d/init.d/network restart
http://pengjiaheng.iteye.com/blog/518623
网络连接设置
http://blog.163.com/helj_2001/blog/static/346345682009728111725235/

- 大小: 23 KB
记一次 java程序优化的更多相关文章
- Java 程序优化 (读书笔记)
--From : JAVA程序性能优化 (葛一鸣,清华大学出版社,2012/10第一版) 1. java性能调优概述 1.1 性能概述 程序性能: 执行速度,内存分配,启动时间, 负载承受能力. 性能 ...
- 从设计模式的角度看Java程序优化
一.前言 Java程序优化有很多种渠道,比如jvm优化.数据库优化等等,但都是亡羊补牢的措施,如果能在设计程序架构时利用设计模式就把程序的短板解决,就能使程序更加健壮切容易维护迭代 二.常用的设计模式 ...
- Java程序优化的一些最佳实践(转)
衡量程序的标准 衡量一个程序是否优质,可以从多个角度进行分析.其中,最常见的衡量标准是程序的时间复杂度.空间复杂度,以及代码的可读性.可扩展性.针对程序的时间复杂度和空间复杂度,想要优化程序代码,需要 ...
- java程序优化
程序代码优化要点: 字符串优化:分析String源码,了解String常用方法,使用StringBuffer.StringBuilder. List.Map.Set优化:分析常用ArrayList.L ...
- 超大数据量操作 java程序优化[转载]
一个表中有1000万以上的数据,要对其进行10万次以上的增删查改的操作,请问如何优化java程序对数据库的操作? 通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化. ...
- 记一次java程序out of memory问题
在一个比较大批量的pdf转String项目中遇到了:java.lang.OutOfMemoryError: Java heap space错误 第一反应肯定是程序没有写好,大量循环时没有把程序中没有用 ...
- JAVA程序优化之字符串优化处理
字符串是软件开发中最为重要的对象之一.通常,字符串对象或其等价对象(如char数组),在内存中总是占据了最大的空间块.因此如何高效地处理字符串,必将是提高系统整体性能的关键所在. 1.String对象 ...
- 对于JAVA程序优化的一些想法,读书有感.治疗强迫症良药
在深入了解Java虚拟机里读到:在try{}块里面执行代码,比if(x!=null)效率要高,前提是被catch的几率很低的情况下. 但是 在Effective Java里读到:因为异常机制的设计初衷 ...
- Java程序优化细节
1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 1).控制资源的使用,通过线程同 ...
随机推荐
- PHP常用魔术方法(__set、__get魔术方法:)
__set.__get魔术方法: //文件名:Object.php <?phpnamespace IMooc;class Object{ protected $array = array(); ...
- nmap 使用脚本引擎进行扫描
1.下载nmap(nmap官网). 2.安装nmap. 3.编辑环境变量(windows下所需),保存.
- javascript自定义浏览器右键菜单
javascript自定义浏览器右键菜单 在书上看到document对象还有一个contextmenu事件,但是不知为什么w3school中找不到这个耶... 利用这个特性写了个浏览器的右键菜单, ...
- 【leetcode】Merge k Sorted Lists(按大小顺序连接k个链表)
题目:Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity ...
- Opencv 简单的图片显示
#include <opencv\cv.h> #include <opencv\highgui.h> #include <opencv\cxcore.h> int ...
- TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)
以下解说在详细应用中,event与中断ISR的设置.以对QM的queue监控产生中断(不是EXCEP)为例,主要包含配置QM accumulator(用于监控QM queue)与配置ISR(ISR与e ...
- [Javascript] Advanced Reduce: Composing Functions with Reduce
Learn how to use array reduction to create functional pipelines by composing arrays of functions. co ...
- [Unit Testing] Based on input value, spyOn function
describe( 'Forgot Password: with username', ()=> { let dirElementInput; beforeEach( ()=> { // ...
- windows常用net use命令
net share :查看本地主机的共资源 nbtstat -A IP :得到远程主机的用户列表 net user c:/del 删除映射的C盘,其它盘类推 net user * /del 删除全部映 ...
- .NET基础拾遗(3)字符串、集合和流1
一.字符串处理 1.1 StringBuilder类型 众所周知,在.NET中String是引用类型,具有不可变性,当一个String对象被修改.插入.连接.截断时,新的String对象就将被分配,这 ...