在apache-tomcat-7.0.103bin目录下
在startup.bat
SET JAVA_OPTS = “-Xms=256m -Xmx648m” 具体配置查看服务器性能
-Xms :初始堆大小 物理内存的1/64( 通过 cmd “systeminfo” 查询物理内存
-Xmx :最大堆大小 物理内存的1/4( 如何判断通过cmd窗口 “ java -Xmx648m -version”
-Xmn :年轻代大小(1.4or lator) 注意的是这个 ,整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.
-XX:NewSize :设置年轻代大小(for 1.3/1.4)
-XX:MaxNewSize :年轻代最大值(for 1.3/1.4)
-XX:PermSize :设置持久代(perm gen)初始值 物理内存的1/64
-XX:MaxPermSize :设置持久代最大值 物理内存的1/4
-Xss :每个线程的堆栈大小
-XX:NewRatio :年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)
-XX:+AggressiveOpts :加快编译
-XX:+UseBiasedLocking :锁机制的性能改善
-XX:+DisableExplicitGC :关闭System.gc()
-XX:+UseParNewGC :设置年轻代为并行收集
-XX:+UseConcMarkSweepGC :使用CMS内存收集
-XX:MaxTenuringThreshold :垃圾最大年龄
-XX+UseCMSCompactAtFullCollection :在FULL GC的时候, 对年老代的压缩
-XX:LargePageSizeInBytes :内存页的大小不可设置过大, 会影响Perm的大小
Apache-tomcat 用 三种模式 bio
bio
bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。Tomcat在默认情况下,就是以bio模式运行的。遗憾的是,就一般而言,bio模式是三种运行模式中性能最低的一种。我们可以通过Tomcat Manager来查看服务器的当前状态。
nio
nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行也比较简单,我们只需要在Tomcat安装目录/conf/server.xml文件中将如下配置:
中的protocol属性值改为org.apache.coyote.http11.Http11NioProtocol即可:
在apache-tomcat-7.0.103conf 目录下 server.xml 将bio 转换成nio ,
此时,我们就可以在Tomcat Manager中看到当前服务器状态页面的HTTP协议的Connector运行模式已经从http-bio-8080变成了http-nio-8080。
apr
单独下载安装native.dll,下载地址:http://tomcat.apache.org/download-native.cgi如图2所示:
图2 -单独下载dll文件
根据系统,去下载自己需要的zip包,有32位或者64位系统的选择
下载完成后,复制32位或64位 “tcnative-1.dll”这个文件到 $tomcat$/bin 下
复制完成后,修改service.xml,让tomcat以apr方式运行,server.xml修改代码是:
找到下面代码
将 protocol="HTTP/1.1"
修改为:protocol="org.apache.coyote.http11.Http11AprProtocol"
保存后,直接重启tomcat,就完成了apr方式启动tomcat,性能如何,可以去测试。
能看到这样的tomcat日志打印,说明成功,如图3所示:
图3 -成功后看到apr
2.1.2 可能的问题:就是tcnative-1.dll文件版本和我们本地的tomcat版本不能匹配,这个解决办法,就是去下载匹配的版本即可。