北京尚学堂旗下优效学院
《Tomcat性能优化与集群session共享》
公开课文档版本 视频版本wx:Nancy007001 备注:CSDN 免费获取
tomcat 运行模式优化
Tomcat Connector(Tomcat 连接器) 有 bio、nio、apr 三种运行模式
BIO模式
bio(blocking I/O),顾名思义,即阻塞式 I/O 操作,表示 Tomcat 使用的是传统的 Java I/O 操作 (即 java.io 包及其子包)。Tomcat 在默认情况下,就是以 bio 模式运行的。遗憾的是,就一般而言,bio 模式是三种运行模式中性能最低的一种。
配置Tomcat Manager
我们可以通过 Tomcat Manager 来查服务器的当前状态。
访问入口在Tomcat默认首页或直接访问
在apache-tomcat-7.0.91conf目录下找到tomcat-users.xml
在<tomcat-users>节点中添加
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
重启Tomcat 让配置文件生效
Tomcat服务器运行状态
观察server status 已经能看到Tomcat7.0.19默认已经是apr模式
巴特,不要高兴的太早,默认的apr模式只在Windows版本的Tomcat中已经配置好了
那么在Linux系统中部署Tomcat后,会显示Bio模式
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 文件中将如下配置:
<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" />
APR模式
apr(Apache Portable Runtime/Apache 可移植运行时),是 Apache HTTP 服务器的支持库。你可以简单地理解为,Tomcat 将以 JNI 的形式调用 Apache HTTP 服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高 Tomcat 对静态文件的处理性能。
Tomcat apr 也是在 Tomcat 上运行高并发应用的首选模式。如果我们的 Tomcat 不是在 apr 模式下运行,在启动 Tomcat 的时候,我们可以在日志信息中看到类似如下信息:
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
部署方式:
1. 安装依赖
yum install -y apr apr-util apr-devel
2.编译安装tomcat-native
· 进入 apache-tomcat-7.0.91/bin