




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国金融电子化公司 基于基于 Apache+TomcatApache+Tomcat 集群搭建集群搭建 版本:版本: V V0.30.3 部 门中国金融电子化公司 撰 写集成部 审 核 批 准 修订记录修订记录 版本号版本号日期日期章节号章节号简单描述简单描述修订者修订者 V0.12015-05-28 初稿张红磊 V0.22015-06-02 添加集群应用测试部分张红磊 V0.32015-06-08 添加数据库连接测试部分张红磊 目目 录录 1 1NASNAS 文件系统挂载文件系统挂载.2 1 1环境准备环境准备 1.1 集群架构 1) 用 Apache+Tomcat 方式来完成基于 Tomcat 集群配置。 Tomcat01 Tomcat03 Tomcat02 Tomcat04 Apache 防火墙 用户 LB服务器 Server Server Mod_jk 2) 服务器环境 序号序号服务器服务器 IPIP 软件产品软件产品应用实例应用实例备注备注 1 LB 服务器 28ApahceHttpd Tomcat01 2 应用服务器 63Tomcat Tomcat03 Tomcat02 3 应用服务器 64Tomcat Tomcat04 1.21.2 软件需求软件需求 序号序号服务器服务器软件产品软件产品版本号版本号备注备注 1 LB 服务器 ApahceV2.4.12 源码 2 应用服务器 TomcatV8.0.22 二进制应用 3 运行环境 JavaV8 U45 4Tomcat-connectorsJKV1.2.40 4 操作系统 SuseV11 SP3 2 2软件安装软件安装 2.12.1安装安装说明说明 将准备好的软件保存到服务器上:目录为/softoware。 序号序号软件软件安装目录安装目录 1httpd-2.4.12.tar.gz/usr/local/apahce 2apache-tomcat-8.0.22.tar.gz/usr/local/tomcat 3jdk-8u45-linux-x64.tar.gz /usr/local/ jdk-8u45- linux-x64 4tomcat-connectors-1.2.40-src.tar.gzmodules/mod_jk.so 。 2.22.2 ApacheApache 安装安装 2.2.1环境需求 1)httpd2.4.12 会依赖更高版本的 apr 和 apr-util,确保系统已经安装,不然会报编译失败; 2) 检查系统软依赖包 libtool,autoconf; 3)安装开发包组: “Development Tools“和”Server Platform Development“ 和Perl- Compatible Regular Expressions Library (PCRE)。 软件软件安装目录安装目录 httpd-2.4.12.tar.gz/usr/local/apahce apr-1.5.2.tar.bz2/usr/local/apr apr-util-1.5.4.tar.bz2/usr/local/apr-tuil pcre-8.36.tar.bz2/usr/local/pcre 2.2.2安装 apr 1) 解压 #tar -xjvf apr-1.5.2.tar.bz2 2) 设置安装路径 #cd apr-1.5.2 #./configure -prefix=/usr/local/apr 3) 编译 #make 4) 安装 #make install 2.2.3安装 apr-util 1) 解压 #tar -xjvf apr-util-1.5.4.tar.bz2 2) 设置安装路径 #cd apr-util-1.5.4 #./configure -prefix=/usr/local/apr-util -with-apr=/usr/local/apr 3) 编译 #make 4) 安装 #make install #tar -xzvf httpd-2.4.12.tar.gz 2.2.4pcre 安装 1) 解压 #tar -xjvf pcre2-10.00.tar.bz2【我安装的:pcre-8.36.tar.bz2】 2) 设置安装路径 #cd pcre2-10.00 #./configure -prefix=/usr/local/pcre 3) 编译 #make 4) 安装 #make install 2.2.5安装 apahce 1) 解压 #tar -xzvf httpd-2.4.12.tar.gz 2) 设置安装目录 #cd httpd-2.4.12 #./configure -prefix=/usr/local/apache -with-pcre=/usr/local/pcre - -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util 3) 编译 #make 4) 安装 #make install 2.2.6启动 #cd /usr/local/apache/bin #./apachectl start 2.2.7验证 访问 apache 服务器:28 响应结果:It works! #apache 服务器安装成功 2.32.3 TomcatTomcat 安装安装 在两台 Tomcat 应用服务器上执行如下操作。 .1环境需求环境需求 软件软件安装目录安装目录 jdk-8u45-linux-x64.tar.gz /usr/local/jdk1.8.0_45 apache-tomcat-8.0.22.tar.gz/usr/local/tomcat tomcat-connectors-1.2.40-src.tar.gz/usr/locale/apache/modules .2JDKJDK 安装安装 在 tomcat 服务器上安装 JDK V8,因为 tomcat 8 对 JDK 版本的对地要求为 JDK 7 以上。 1) 拷贝 JDK 到/usr/local 目录 cp /software/jdk-8u45-linux-x64.tar.gz /usr/local 2) 解压 JDK 包 #./tar -xzvf jdk-8u45-linux-x64.tar.gz 解压时完成 JDK 安装,安装目录为/usr/local/jdk1.8.0_45。 3) 设置 JDK 环境变量 修改用户系统环境变量 #vi /etc/profile 添加如下内容 export JAVA_HOME=/usr/local/jdk1.8.0_45 export JAVA_BIN=/usr/local/jdk1.8.0_45/bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 4) 验证 tomsrv01: # java -version java version 1.8.0_45 Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) 2.3.3安装安装 Tomcat 使用 Tomcat 二进制安装包,解压即完成安装。由于 Tomcat 是单实例服务器, 所有要通过复制 Tomcat 的方法来创建第二个服务器。 1) 创建安装目录 #mkdir /usr/local/tomcat01 2) 解压 #tar -xzvf apache-tomcat-8.0.22.tar.gz -C /usr/local/tomcat01 3) 创建 tomcat02 #cd /usr/local #cp -r tomcat01 tomcat03 查看 Tomcat 实例个数 #ls lrt drwxr-xr-x 9 root root 4096 May 28 09:57 tomcat01 drwxr-xr-x 9 root root 4096 May 28 10:39 tomcat03 2.3.4修改配置 因为该例子是在同一台服务器上安装两个 tomcat 服务器,避免服务器端口使用 冲突,tomcat01 端口采用默认配置,tomcat03 端口需要重新配置。要修改的配 置文件为 server.xml 文件。 1) 编辑 server.xml 文件 #vi /usr/local/tomcat03/conf/server.xml 2) 修改 Server 端口号 Server 端口号备注 tomcat01 默认值 tomcat03 新修改值 3) 修改 HTTP connector 端口号 HTTP connector 端口号备注 tomcat01 默认值 tomcat03 新修改值 4) 修改 AJP connector 端口号 AJP connector 端口号备注 tomcat01 默认值 tomcat03 新修改值 5) 修改 engine 名称 engine 名称备注 tomcat01 新修改值 tomcat03 新修改值 2.3.5启动 分别启动 tomcat01 和 tomcat03 # /usr/local/tomcat01/bin/startup.sh 启动 tomcat01 # /usr/local/tomcat03/bin/startup.sh 启动 tomcat03 # /usr/local/tomcat01/bin/catalina.sh start 启动 tomcat01 # /usr/local/tomcat03/bin/catalina.sh start 启动 tomcat03 2.3.6验证 Tomcat01 测试 输入 63:8080 Tomcat03 测试 输入 63:9080 Tomcat02 测试 输入 64:8080 Tomcat04 测试 输入 64:9080 3 3集群配置集群配置 3.13.1 编译编译 mod_jkmod_jk 模块模块 软件软件安装目录安装目录 tomcat-connectors-1.2.40- src.tar.gz /usr/locale/apache/bin/apx s 1) 解压 #tar -xzvf tomcat-connectors-1.2.40-src.tar.gz 2) 设置编译目录 #cd tomcat-connectors-1.2.40-src/ # ./native/configure -with-apxs=/usr/local/apache/bin/apxs 3) 编译 #make 4) 编译安装 #make install 5) 查看 mod_jk 模块文件 #ls -l /usr/local/apache/modules/mod_jk.so -rwxr-xr-x 1 root root 1128916 5 月 29 00:03 /usr/local/apache/modules/mod_jk.so 3.23.2 加载加载 mod_jkmod_jk 模块模块 3.2.1修改 httpd.conf 文件 1) 编辑 httpd.conf 文件 #vi /usr/local/apache/conf/httpd.conf 2) 添加加载命令 #Load tomcat-connect Include conf/httpd-jk.conf 3.2.2httpd_jk.conf 的配置 1) 拷贝 httpd-jk.conf 文件到/usr/local/apache/conf #cd /software/tomcat-connectors-1.2.40-src/conf #cp httpd_jk.conf /usr/local/apache/conf 2) 编辑 httpd-jk.conf 文件 配置项备注 LoadModule jk_module modules/mod_jk.so 配置 mod_jk 包 JkWorkersFile conf/perties 配置工作负责文件 JkLogFile logs/mod_jk.log 配置 jk 日志文件 JkLogLevel info 配置日志级别 JkShmFile logs/mod_jk.shm 配置 jk 日志内存共享 JkMount /* balancer 配置负载均衡模式 3.2.3perties 的配置 1) 拷贝 perties 文件到/usr/local/apache/conf #cd /software/tomcat-connectors-1.2.40-src/conf #cp perties /usr/local/apache/conf 2) 编辑 perties 文件 编辑及添加如下内容 配置项配置 balancer 负载 配置 worker.list=balancer worker.balancer.type=lb worker.controller.balanced_workers=tomcat01,tomcat02, tomcat03,tomcat04 worker.controller.sticky_session=1 tomcat1 的配置 worker.balancer.balance_workers=tomcat01 worker.tomcat01.reference=worker.template worker.tomcat01.host=tomsrv01 worker.tomcat01.port=8009 worker.tomcat01.activation=A worker.tomcat01.lbfactor=1 Tomcat2 的配置 worker.balancer.balance_workers=tomcat02 worker.tomcat02.reference=worker.template worker.tomcat02.host=tomsrv02 worker.tomcat02.port=8009 worker.tomcat02.activation=A worker.tomcat01.lbfactor=1 Tomcat3 的配置 worker.balancer.balance_workers=tomcat03 worker.tomcat03.reference=worker.template worker.tomcat03.host=tomsrv01 worker.tomcat03.port=8009 worker.tomcat03.activation=A worker.tomcat01.lbfactor=1 Tomcat4 的配置 worker.balancer.balance_workers=tomcat04 worker.tomcat04.reference=worker.template worker.tomcat04.host=tomsrv02 worker.tomcat04.port=8009 worker.tomcat04.activation=A worker.tomcat01.lbfactor=1 tempalte 负载 模板配置 worker.template.type=ajp13 3.33.3 SessionSession 复制复制 在 Tomcat 集群中实现 session 同步,可以通过 session 共享和复制来实现,下 面以 session 复制来实现 session 同步。 3.3.1编辑 hosts 文件 注销 hosts 文件里的回环地址 3.3.2Session 复制配置 在所有 Tomcat 实例中修改 server.xml 的配置。 1) 编辑 server.xml 文件 #vi /usr/local/tomcat01/conf/server.xml 2) 添加配置 在 后面加上以下配置。 Tomcat01: Tomcat02 Tomcat03 Tomcat04 注: address=auto,默认为 auto,修改为 IP 地址或者主机名。 port=4000,同一台服务器上的 tomcat 必须修改为不同的端口,tomcat01 修 改为 4000,tomcat02 修改为 4000,tomcat03 修改为 4001,tomcat04 修改为 4001。 3) 编辑 web.xml 文件 确保要发布的 WAR 包中的 WEB.XML 文件中有 distributable 元素。 #vi ./test.war/WEB-INF/web.xml 注:test.war 为此次测试使用的应用包。 4) 添加配置 在之间加上以下配置。 注:使用 distributable 元素来告诉 servlet/JSP 容器,将在分布式 Web 容器 中部署的应用。 4 4集群测试集群测试 4.1 发布测试应用程序 1) 创建测试代码 My JSP index.jsp starting page Hello, index.jsp 该代码的作用是响应请求之后,页面显示“Hello,index.jsp sessionID+server_name+IP”,现已经把该 JSP 页面打包成了 WAR 包,可以直 接使用。 2) 发布应用 拷贝 test.war 文件到 webapps 目录,tomcat 会自动释放并部署应用。 #cp /software/test.war /usr/local/tomcat01/webapps/ #cp /software/test.war /usr/local/tomcat03/webapps/ #cp /software/test.war /usr/local/tomcat02/webapps/ #cp /software/test.war /usr/local/tomcat04/webapps/ 查看 webapps 目录,发现多出了一个 test 目录。 tomsrv01:/usr/local/tomcat01/webapps # ls -lrt total 32 drwxr-xr-x 14 root root 4096 May 28 09:57 docs drwxr-xr-x 3 root root 4096 May 28 09:57 ROOT drwxr-xr-x 5 root root 4096 May 28 09:57 manager drwxr-xr-x 5 root root 4096 May 28 09:57 host-manager drwxr-xr-x 6 root root 4096 May 28 09:57 examples -rw- 1 root root 6890 Jun 2 13:53 test.war drwxr-xr-x 4 root root 4096 Jun 2 13:53 test 4.2 访问测试 4.2.1通过端口访问应用 HostHostIpIpPortPorttomcattomcat 8080Tomcat01 tomsrv063 9080Tomcat03 8080Tomcat02 tomsrv064 9080Tomcat04 1) 访问 63:8080/test 2) 访问 63:9080/test 3) 访问 64:8080/test 4) 访问 64:9080/test 4.2.2通过 apache 访问应用 1) 访问 28/test Hello, index.jsp AE3A213A4322FB8EFD84EF656A86F21F.tomcat01 2) 关闭 tomcat01 #/usr/local/tomcat01/bin/shutdown.sh 3) 访问 28/test 或者刷新界面 Hello, index.jsp AE3A213A4322FB8EFD84EF656A86F21F.tomcat02 结果显示,请求已经转移到了 tomcat02 服务器上,而 SessionID 没有发生变化, 说明 Sessionn 复制成功。 5 5管理管理 TomcatTomcat 5.1 介绍 Tomcat 角色 1) Tomcat 支持多种管理方式。 manager-gui 通过 html 页面管理 manager-script 通过文本管理 manager-jmx 通过 JMX 管理 manager-status 通过只读接口管理 2) manager 应用 tomcat 在默认的下载包中 webapps 目录下包含了一个 manager 应用 根据上传的 war 包部署文件 通过配置上下文路径,部署文件 列出当前所有部署的应用,以及其会话信息 当/WEB-INF/classes 和/WEB-INF/lib 有修改时,重新加载应用 列出系统以及 JVM 的属性值 列出可用的 JNDI 资源 列出数据库中的安全角色 开启关闭应用 关闭正在运行的应用 解除应用的部署,删除其目录 5.2 配置 tomcat 角色 管理器 manager 应用,不是任何人都可以登录的,因此需要配置用户密码,在 tomcat-users.xml 文件添加 user 和 role 标签。 1) 编辑 tomcat-users.xml 文件 #vi /usr/local/tomcat01/conf/tomcat-users.xml 2) 添加 userhe role 标签。 注:要添加到 之间。重启 tomcat 配置生效。 5.3 管理 tomcat 管理界面 5.3.1登录单个 tomcat 实例 1) 管理应用程序 登录 63:8080/manager/html,或者登录 63:8080 登录主界面 2) 点击“Manager App”。 3) 输入用户名和密码。 这里使用的用户名和密码就是前面用户角色设置时,创建的用户名和密码。 4) 点击“确定”。 5) 查看服务器状态 登录 63:8080/manager/status 6) 管理主机 登录 63:8080/host-manager/html 5.3.2登录 tomcat 集群 通过 apache 访问所有 tomcat 节点。 1) 查看服务器状态 登录 63:8080/manager/status 2) 管理应用程序 登录 28/manager/html 注: Start - Start a web application which had been stopped. Stop - Stop a web application which is currently running and make it unavailable. Reload - Reload the web application so that new .jar files in /WEB-INF/lib/ or new classes in /WEB-INF/classes/ can be used. Undeploy - Stop and then remove this web application from the server. 3) 管理主机 登录 28/host-manager/html 6 6配置配置 mysqlmysql 数据源数据源 6.1 驱动准备 1) 检查 Database Connection Pool (DBCP 2)驱动 #ls $CATALINA_HOME/lib/tomcat-dbcp.jar 2) 拷贝 mysql 驱动到$CATALINA_HOME/lib #cp /software/mysql-connector-java-5.1.26-bin.jar $CATALINA_HOME/lib #cp /software/mm.mysql-2.0.14-you-must-unjar-me.jar $CATALINA_HOME/lib 6.2 配置数据库连接池 1) 编辑 Context.xml 文件。 这里以连接 8 节点的数据库 test 为例进行说明,用户名为 root,密码 为 root。在之间添加如下内容。 removeAbandonedOnBorrow=true removeAbandonedOnMaintenance=true removeAbandonedTimeout=60 logAbandoned=true 2) 检查 web.xml 文件 检查发布 WAR 包里的 web.xml 文件,在 之间确保有一 下内容。 DB Connection jdbc/TestDB javax.sql.DataSource Container 6.3 数据库连接验证 1) 发布测试应用包 测试数据库连接还需一个 testJNDI.war 包,发布到$catalina/webapps 目录。 2) 访问 63:8080/testJNDI/index.jsp 该应用包的作用是在成功连接数据库之后,返回“数据库连接创建成功!”。 7 7性能调优性能调优 以下各个系统软件的性能调优,都是经验值。在实际的生产环境中,要根据具 体问题具体分析,然后设置最适合当前系统的系统配置参数。 7.1 Apache 性能调优 实现 Linux 下 Apache 服务器并发优化,采用“workerMPM”并发控制模式。该 模式多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维 持一个连接。在一个高流量的 HTTP 服务器上,Worker MPM 是个比较好的选择, 而且 Worker MPM 的内存使用比较低。 1) 编辑 httpd.conf 文件 #vi httpd.conf 2) 添加优化参数 在配置文件的末尾添加如下内容。 ServerLimit 16 ThreadLimit 100 StartServers 16 MaxClients 16000 MinSpareThreads 1600 MaxSpareThreads 1600 ThreadsPerChild 100 MaxRequestsPerChild 0 3) 参数名词解释 ServerLimit 服务器允许配置的进程数上限。默认值为 16.这个指令和 ThreadLimit 结合使 用设置了 MaxClients 最大允许配置的数值。任何在重启期间对这个指令的改 变都将被忽略,但对 MaxClients 的修改却会生效。 ThreadLimit 每个子进程可配置的线程数上限。这个指令设置了每个子进程可配置的线程数 ThreadsPerChild 上限。任何在重启期间对这个指令的改变都将被忽略,但对 ThreadsPerChild 的修改却会生效。默认值是64. StartServers 服务器启动时建立的子进程数,默认值是3。 MinSpareThreads 最小空闲线程数,默认值是75。这个 MPM 将基于整个服务器监视空闲线程数。 如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。 MaxSpareThreads 设置最大空闲线程数。默认值是250。这个 MPM 将基于整个服务器监视空闲 线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。 MaxSpareThreads 的取值范围是有限制的。Apache 将按照如下限制自动修正你 设置的值:worker 要求其大于等于 MinSpareThreads 加上 ThreadsPerChild 的和。 MaxClients 允许同时伺服的最大接入请求数量(最大线程数量)。任何超过 MaxClients 限 制的请求都将进入等候队列。默认值是400,16(ServerLimit)乘以 25(ThreadsPerChild)的结果。因此要增加 MaxClients 的时候,你必须同时增 加 ServerLimit 的值。 ThreadsPerChild 每个子进程建立的常驻的执行线程数。默认值是 25。子进程在启动时建立这些 线程后就不再建立新的线程了。 MaxRequestsPerChild 0 设置每个子进程在其生存期内允许伺服的最大请求数量。到达 MaxRequestsPerChild 的限制后,子进程将会结束。如果 MaxRequestsPerChild 为0,子进程将永远不会结束。 7.2 Tomcat 性能调优 这里讨论优化是在 Linux 64bit 操作系统上基于 Oracle Sun 的 jdk1.6 版有以 上,其它 JDK 或者低版本 JDK 不适用。 7.2.1Tomcat 启动命令行中的优化参数即 JVM 优化 1) 打开 catalina.sh 文件 编辑$CATALINA_HOME/bin/catalina.sh 文件。 #vi $CATALINA_HOME/bin/catalina.sh 2) 添加调优参数 添加在 catalina.sh 文件的末尾。 export JAVA_OPTS=-server -Xms1536mXmx1536m Xmn512m -Xss128k - XX:SurvivorRatio=6 -XX:PermSize=128M -XX:MaxPermSize=256m - XX:ParallelGCThreads=8 -XX:MaxTenuringThreshold=0 - XX:+UseConcMarkSweepGC 3) 参数名词解释 “-server” 因为 tomcat 默认是以一种叫 java client 的模式来运行的,server 即意味 着 tomcat 是以真实的 production 的模式在运行的,这也就意味着 tomcat 以 server 模式运行时将拥有更大、更高的并发处理能力,更快更强捷的 JVM 垃圾 回收机制,可以获得更多的负载与吞吐量。 “-Xms1536M -Xmx1536M” 理论上机器能插多少内存,JVM 系统内存就能支持到多大。如果 JVM 内存设置 太大,GC 时将花费更多的 CPU 时间,严重影响系统性能。而最大堆大小和最小 堆大小值设置相同,启动 JVM 一次性分配,避免了在系统运行中由于 JVM 资源 不足而导致的频繁的申请资源操作,而影响性能。 “-Xss128k” 是指设定每个线程的堆栈大小。这个就要依据程序,看一个线程大约需要占用 多少内存,可能会有多少线程同时运行等。一般不易设置超过 1M,要不然容易 出现 Out Of Memory。 “-Xmn512M” Tomcat 使用分代垃圾回收策略,设置年轻代大小为 512m。整个堆大小=年轻代 大小 + 年老代大小 + 持久代大小。持久代一般固定大小为 64m,所以增大年 轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun 官方推荐配置 为整个堆的 3/8。 “-XX:SurvivorRatio=6” 设置年轻代中 Eden 区与 Survivor 区的比值。系统默认是 8,根据经验设置为 6,则 2 个 Survivor 区与 1 个 Eden 区的比值为 2:6,一个 Survivor 区占整个 年轻代的 1/8 “-XX:ParallelGCThreads=8” 配置并行收集器的线程数,即同时 8 个线程一起进行垃圾回收。此值一般配置 为与 CPU 数目相等。 “-XX:MaxTenuringThreshold=0” 设置垃圾最大年龄(在年轻代的存活次数)。如果设置为 0 的话,则年轻代对 象不经过 Survivor 区直接进入年老代。对于年老代比较多的应用,可以提高效 率;如果将此值设置为一个较大值,则年轻代对象会在 Survivor 区进行多次复 制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概率。 根据被海量访问的动态 Web 应用之特点,其内存要么被缓存起来以减少直接访 问 DB,要么被快速回收以支持高并发海量请求,因此其内存对象在年轻代存活 多次意义不大,可以直接进入年老代,根据实际应用效果,在这里设置此值为 0。 “-XX:+UseConcMarkSweepGC” 设置年老代为并发收集。CMS(ConcMarkSweepGC)收集的目标是尽量减少应用 的暂停时间,减少 Full GC 发生的几率,利用和应用程序线程并发的垃圾回收 线程来标记清除年老代内存,适用于应用中存在比较多的长生命周期对象的情 况。 另外,还有其他性能参数,可根据实际情况使用。 “-XX:+AggressiveOpts” 作用如其名(aggressive),启用这个参数,则每当 JDK 版本升级时,JVM 都 会使用最新加入的优化技术(如果有的话)。 “-XX:+UseBiasedLocking” 启用一个优化了的线程锁,在 appserver 的每个 http 请求就是一个线程,有的 请求短有的请求长,就会有请求排队的现象,甚至还会出现线程阻塞,这个优 化了的线程锁使得你的 appserver 内对线程处理自动进行最优调配。 “-XX:PermSize=128M -XX:MaxPermSize=256M” JVM 使用-XX:PermSize 设置非堆内存初始值,默认是物理内存的 1/64; 在数据量的很大的文件导出时,一定要把这两个值设置上,否则会出现内存溢 出的错误。由 XX:MaxPermSize 设置最大非堆内存的大小,默认是物理内存的 1/4。 “-XX:+DisableExplicitGC” 在程序代码中不允许有显示的调用”System.gc()”。避免应用工程中频繁调用” System.gc()”,导致系统响应时间严重降低。 “-XX:+UseParNewGC” 对年轻代采用多线程并行回收,这样收得快。 “-XX:+CMSParallelRemarkEnabled” 在使用 UseParNewGC 的情况下, 尽量减少 mark 的时间 “-XX:+UseCMSCompactAtFullCollection” 在使用 concurrent gc 的情况下, 防止 memoryfragmention, 对 live object 进行整理, 使 memory 碎片减少。 “-XX:LargePageSizeInBytes” 指定 Java heap 的分页页面大小 “-XX:+UseFastAccessorMethods” get,set 方法转成本地代码 “-XX:+UseCMSInitiatingOccupanc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职高考对口升学(理论考试)真题卷【农林牧渔大类】模拟练习
- 2025年水污染防治设备项目发展计划
- i-AZD1775-TFA-生命科学试剂-MCE
- Human-TNFRSF8-mRNA-生命科学试剂-MCE
- 2025年井控设备装置项目合作计划书
- H-D-Phg-OH-Standard-生命科学试剂-MCE
- GNE-5152-生命科学试剂-MCE
- Glutamine-hydroxamate-CoA-Glutamine-hydroxamate-coenzyme-A-生命科学试剂-MCE
- 2025年临沂郯城县教育系统部分事业单位公开招聘教师(13名)模拟试卷及参考答案详解一套
- 安全培训效果评价人课件
- 风管安装协议书
- 合作投资果园协议书
- 第三方垫付协议合同协议
- 《鸿蒙HarmonyOS应用开发基础》全套教学课件
- 2025中国智能投影市场全产业链发展白皮书
- Unit 3 Keep Fit 单元教案 2024-2025学年人教版(2024)英语七年级下册
- 庆祝中华全国总工会成立100周年回顾百年工运史汲取奋进力量
- 2022年全国统一高考生物试卷和答案(甲卷)
- 《金融机构主要业务》课件
- 2025年农村土地承包经营权流转合同样本
- (高清版)DB37∕T 3088-2017 蓝莓贮藏保鲜技术规程
评论
0/150
提交评论