Tomcat性能优化-2

修改Connector运行模式 启用NIO 或 APR

bio介绍

bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是传统的Java I/O操作
默认模式,性能最差,没有经过任何优化处理和支持
nio模式

nio(non-blocking I/O),Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、
并能提供非阻塞I/O操作的Java API。
拥有比bio更好地性能

修改%CATALINA_HOME%/server.xml

源:<Connector port="8080" protocol="HTTP/1.1"
                    connectionTimeout="20000"
                    redirectPort="8443" />

修改protocol的值为:org.apache.coyote.http11.Http11NioProtocol
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
                    connectionTimeout="20000"
                    redirectPort="8443" />
service tomcat restart生效
apr模式

apr(Apache Portable Runtime/Apache可移植运行时库),Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网
络传输操作,从而大大地提高Tomcat对静态文件的处理性能。从操作系统级别来解决异步的IO问题,大幅度的提高性能。 Tomcat apr也是在Tomcat
上运行高并发应用的首选模式。

要让tomcat以apr模式运行,需要安装 apr 和 native
安装apr
yum -y install apr apr-devel

yum -y install gcc
 
安装native
cd /data/tomcat/bin/
tar xzfv tomcat-native.tar.gz
cd tomcat-native-1.1.33-src/jni/native/
./configure --with-apr=/usr/bin/apr-1-configmake && make install

整合Tomcat apr

    在/etc/profile中加入
    export CATALINA_OPTS=-Djava.library.path=/usr/local/apr/lib
    source /etc/profile
    
    修改配置文件server.xml
    
    源:<Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />
    修改protocol的值为org.apache.coyote.http11.Http11NioProtocol
    <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
                connectionTimeout="20000"
                redirectPort="8443" />
    重启

查看Tomcat Connector运行模式

方法一:在http://x.x.x.x:8080/manager/status 中查看服务器状态 
"http-apr-8080"

方法二:根据Tomcat启动日志信息判断
    bio
        INFO: Initializing ProtocolHandler ["http-bio-8080"]
        Aug 04, 2015 10:20:35 PM org.apache.coyote.AbstractProtocol init12
    nio
        INFO: Initializing ProtocolHandler ["http-nio-8080"]
        Aug 04, 2015 10:27:58 PM org.apache.coyote.AbstractProtocol init12
    apr
        NFO: Initializing ProtocolHandler ["http-apr-8080"]
        Aug 04, 2015 10:33:45 PM org.apache.coyote.AbstractProtocol init12

转载:http://blog.csdn.net/loyachen/article/details/47280237

原创文章,作者:心肝坏了,如若转载,请注明出处:http://www.178linux.com/41978

赞 (0)
心肝坏了心肝坏了
上一篇 2016-09-19 13:48
下一篇 2016-09-19 13:49

相关推荐

  • 马哥教育网络班21期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 //使用who命令列出列出当明显登录的所有用户,使用cut命令取出用户名,使用sort命令去重即可// [root@localhost ~]# who | cut -d' ' -f1…

    Linux干货 2016-08-08
  • Linux之任务计划 crontab

    Linux之任务计划    用过windows的同学应该都知道在控制面板中有一个“任务计划”选项,我们可以通过向导设置让计算机在某个时间点或者开机时运行某个脚本或者批处理等等,方便我们的日常管理监视工作;同样在Linux系统中,如果我们想在开机时就运行某个操作,可以直接将命令写入/etc/rc.local中,该操作就会在机器开机时运行;如…

    Linux干货 2015-05-18
  • LAMP—Apache编译安装

    一、前言:   httpd-2.2与 httpd-2.4版本相比增加了许多新特性:    1、MPM支持运行时装载    2、支持event    3、支持异步读写    4、支持每模块每目录使用不同的日志级别    5、每请求配置<IF&gt…

    Linux干货 2015-06-15
  • linux进程管理及计划任务

    进程管理: 什么是进程?   在Linux系统当中:触法任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。 进程与程序: 程序(program):通常为二进制程序放置在存储媒介中,以物理文件的形式存在。 进程(process):程序被触发后…

    Linux干货 2016-09-13
  • CentOS7.3系统上编译安装httpd.2.4.25

    本文所做的所有操作是在一部新安装的CentOS7.3系统上。 1.环境与配置 环境说明:VMware上安装的CentOS7.3系统,7.3完整版光盘做成的yum源 配置:编译生成的所有的文件都存放在/usr/local/httpd24/这个目录下 2.安装GCC编译器 #安装Development tools这个软件包组 [root@pxe68 ~]# yu…

    2017-04-20
  • PHP字符串的编码问题

        大家都知道,不同字符编码,其在内存占用的字节数不一样。如ASCII编码字符占用1个字节,UTF-8编码的中文字符是3字节,GBK为2个字节。     PHP 也自带几种字符串截取函数,其中常用到的就是 substr 和 mb_substr。     使用substr截取中…

    Linux干货 2015-10-22