JDK Tomket的安装与调优
Posted 一饮孤与悲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK Tomket的安装与调优相关的知识,希望对你有一定的参考价值。
安装JDK
- #官网下载
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
- 解压
# tar zxf jdk-8u144-linux-x64.tar.gz -C /usr/local/
- 设置环境变量
# vim /etc/profile
#最后加入
export JAVA_HOME=/usr/local/jdk1.8.0_301
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
- source 环境变量
# source /etc/profile
- # java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
安装Tomcat
- 官网下载
https://tomcat.apache.org/download-80.cgi
- 解压
# tar zxf apache-tomcat-8.5.23.tar.gz -C /usr/local/
- 启动
# /usr/local/tomcat/bin/startup.sh
# ps aux | grep tomcat
root 2684 73.5 4.6 2485544 87136 pts/0 Sl 00:11 0:01 /usr/local/jdk1.8.0_301/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 2704 0.0 0.0 112812 976 pts/0 R+ 00:11 0:00 grep --color=auto tomcat
- 访问页面
Tomcat调优
- 解决tomcat启动慢的问题
- 内存优化
# vim /usr/local/apache-tomcat-8.5.70/bin/catalina.sh
JAVA_OPTS="-Xms1024m -Xmx1024m -Xmn400m -XX:MetaspaceSize=200M -XX:MaxMetaspaceSize=1024M -XX:NewSize=200M -XX:MaxNewSize=1024M"
注: -Xms3072m 初始堆大小 -Xmx3072m 最大堆大小,设置为可用内存的80% -Xmn400m 年轻代大小 -XX:MetaspaceSize=200M 设置持久代(perm gen)初始值 -XX:MaxMetaspaceSize=1024M 设置持久代最大值 -XX:NewSize=200M 设置年轻代大小(for 1.3/1.4) -XX:MaxNewSize=1024M 设置年轻代最大值(for 1.3/1.4)- 并发优化
# vim /usr/local/apache-tomcat-8.5.70/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" enableLookups="false" disableUploadTimeout="true" connectionTimeout="20000" acceptCount="300" maxThreads="500" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" redirectPort="8443" /> 注: acceptCount 使用所有可能的请求处理线程时,传入连接请求的最大队列长度。队列已满时收到的任何请求都将被拒绝。默认值为100。 URIEncoding 在%xx解码URL之后,这指定用于解码URI字节的字符编码。如果未指定,则除非org.apache.catalina.STRICT_SERVLET_COMPLIANCE 系统属性设置为UTF-8,否则将使用UTF-8 true。 minSpareThreads 始终保持运行状态的最小线程数。这包括活动线程和空闲线程。如果未指定,10 则使用默认值。如果执行程序与此连接器相关联,则此属性将被忽略,因为连接器将使用执行程序而不是内部线程池执行任务。请注意,如果配置了执行程序,则将正确记录为此属性设置的任何值,但是会报告该值(例如,通过JMX),-1以明确未使用它。 maxThreads 此Connector将创建的请求处理线程的最大数量,因此确定了可以处理的同时请求的最大数量。如果未指定,则此属性设置为200。如果执行程序与此连接器相关联,则此属性将被忽略,因为连接器将使用执行程序而不是内部线程池执行任务。请注意,如果配置了执行程序,则将正确记录为此属性设置的任何值,但是会报告该值(例如,通过JMX), -1以明确未使用它。 maxConnections 服务器在任何给定时间将接受和处理的最大连接数。达到此数目后,服务器将接受但不处理另一个连接。在处理的连接数降至maxConnections以下之前,该附加连接将被阻止,此时服务器将再次开始接受和处理新的连接。请注意,一旦达到限制,操作系统仍然可以根据acceptCount设置接受连接。默认值因连接器类型而异。对于NIO和NIO2,默认值为10000。对于APR /本机,默认值为8192。仅对于NIO / NIO2,将该值设置为-1将禁用maxConnections功能,并且不计算连接数。 disableUploadTimeout 此标志允许Servlet容器在数据上载期间使用其他通常更长的连接超时。如果未指定,则将此属性设置为true禁用此较长的超时。 enableLookups 设置为true是否要调用以 request.getRemoteHost()执行DNS查找以返回远程客户端的实际主机名。设置为false跳过DNS查找并改为以字符串形式返回IP地址(从而提高性能)。默认情况下,DNS查找被禁用。 compression 所述连接器可在试图节省服务器的带宽使用HTTP / 1.1 GZIP压缩。该参数的可接受值为“ off”(禁用压缩),“ on”(允许压缩,这将导致压缩文本数据),“ force”(在所有情况下均强制压缩)或数字整数值(即等效于“ on”,但指定压缩输出之前的最小数据量。如果内容长度未知,并且压缩设置为“ on”或更具攻击性,则输出也将被压缩。如果未指定,则此属性设置为“ off”。 注意:在使用压缩(节省带宽)和使用sendfile功能(节省CPU周期)之间需要权衡。如果连接器支持sendfile功能,例如NIO连接器,则使用sendfile将优先于压缩。症状是大于48 Kb的静态文件将以未压缩的形式发送。您可以通过设置useSendfile连接器的属性来关闭sendfile,如下所述,或者在DefaultServlet的配置中(默认值 conf/web.xml或web.xmlWeb应用程序的)更改sendfile的使用阈值 。 compressionMinSize 如果压缩设置为“ on”,则此属性可用于指定压缩输出之前的最小数据量。如果未指定,则此属性默认为“ 2048”。 compressibleMimeType 该值是逗号分隔的MIME类型列表,可以对其使用HTTP压缩。默认值为 text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml 。 redirectPort 如果此连接器支持非SSL请求,并且收到一个<security-constraint>要求进行SSL传输匹配 的请求,则Catalina将自动将请求重定向到此处指定的端口号。 enableLookups 设置为true是否要调用以 request.getRemoteHost()执行DNS查找以返回远程客户端的实际主机名。设置为false跳过DNS查找并改为以字符串形式返回IP地址(从而提高性能)。默认情况下,DNS查找被禁用。 maxProcessors 服务器同时最大处理线程数 minProcessors 服务器创建时的最小处理线程数- 缓存优化
- 协议优化
# 安装native
tar -xvzf tomcat-native-1.2.10-src.tar.gz -C /usr/local
cd /usr/local/tomcat-native-1.2.10-src/native/
./configure
make && make install
# 修改tomcat-catalina,sh
vim /usr/local/tomcat855/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"
以上是关于JDK Tomket的安装与调优的主要内容,如果未能解决你的问题,请参考以下文章