题记
ubuntu系统下使用tomcat,对其进行系统优化.其中包括对ubuntu系统本身的设置,以及tomcat设置.
在安装ubuntu时候,有看到文章说是可以通过内核进行性能优化,但是查看一些资料后,发现有一些是通过关闭一些系统服务作为代价,因为不是很了解liunx内核,不敢轻易删除服务.
简单的进行系统垃圾的清理.
sudo apt-get autoclean
tomcat 作为应用服务器,对其进行优化,想必是很有效果的.
(1)修改tomcat的Tomcat Connector运行模式. 参考资料
tomcat包含bio、nio、apr三种模式.
- bio模式:(blocking I/O),顾名思义,即阻塞式I/O操作,默认方式.
- nio模式:(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式;Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写
- apr模式:(Apache Portable Runtime/Apache可移植运行时),是Apache HTTP服务器的支持库.
这三种模式性能上的关系:
apr
>nio
>bio
bio 一般是默认模式,nio模式的配置比较简单,直接替换协议即可.在tomcat安装目录下/conf/server.xml文件中如下配置:
将protocal属性改为org.apache.coyote.http11.Http11NioProtocol
即可:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
apr 的配置相对复杂点,没有尝试,有需要可以自行搜索.
(2)设置tomcat 内存,防止溢出
tomcat需要调整java的内存设置,GC(Garbage Collection)垃圾回收,
分代收集:即将内存分为几个区域,将不同的生命周期的对象放在不同区域里.
- 在GC收集的时候,频繁收集生命周期短的区域(Young area);
- 比较少的收集生命周期比较长的区域(Old area);
- 基本不收集的永久区(Perm area)。
java堆中各代说明(实在不清楚,为什么会翻译成代
),参考资料 因为不清楚如何搭配是最优的组合,我的策略是将各个配置点都设置为最大值.
-Xms:初始堆大小
-Xmx:最大堆大小
PermSize/MaxPermSize:定义Perm段的尺寸,即永久保存区域的大小
-XX:PermSize 永久保存区域初始大小
-XX:PermSize 永久保存区域初始最大值
(3)apachebench 进行测试 参考资料
apache自带的ab工具,使用简单,一般使用的就是设置请求总数,并发用户数.
ad -n 1000 -c 10 userURL
参考资料:
[1]http://www.365mini.com/page/tomcat-connector-mode.htm
[2]http://blog.youkuaiyun.com/winniepu/article/details/4829087
[3]http://jordan-micle.iteye.com/blog/801492
[4]http://blog.youkuaiyun.com/jimmy1980/article/details/4968308