{"id":466,"date":"2017-11-09T10:44:04","date_gmt":"2017-11-09T02:44:04","guid":{"rendered":"https:\/\/blog.jsjs.org\/?p=466"},"modified":"2017-11-09T10:44:04","modified_gmt":"2017-11-09T02:44:04","slug":"tomcat-7%e4%bc%98%e5%8c%96%e9%85%8d%e7%bd%ae%e5%8f%82%e6%95%b0","status":"publish","type":"post","link":"https:\/\/blog.jsjs.org\/?p=466","title":{"rendered":"Tomcat 7\u4f18\u5316\u914d\u7f6e\u53c2\u6570"},"content":{"rendered":"<p class=\"blog-summary\"><em>\u6458\u8981\uff1a<\/em> Tomcat\u5728\u4f7f\u7528\u7684\u8fc7\u7a0b\u4e2d\u4f1a\u9047\u5230\u5f88\u591a\u62a5\u9519\uff0c\u6709\u4e9b\u662f\u7a0b\u5e8f\u7684\u62a5\u9519\uff0c\u4f46\u8fd8\u6709\u4e00\u90e8\u5206\u662ftomcat\u672c\u8eab\u7684\u62a5\u9519\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f18\u5316tomcat\u7684\u521d\u59cb\u914d\u7f6e\u6765\u63d0\u9ad8tomcat\u7684\u6027\u80fd\u3002Tomcat\u7684\u4f18\u5316\u4e3b\u8981\u4f53\u73b0\u5728\u4e24\u65b9\u9762\uff1a\u5185\u5b58\u3001\u5e76\u53d1\u8fde\u63a5\u6570\u3002<\/p>\n<div class=\"content-detail\">\n<table>\n<tbody>\n<tr>\n<td><strong>Tomcat\u5728\u4f7f\u7528\u7684\u8fc7\u7a0b\u4e2d\u4f1a\u9047\u5230\u5f88\u591a\u62a5\u9519\uff0c\u6709\u4e9b\u662f\u7a0b\u5e8f\u7684\u62a5\u9519\uff0c\u4f46\u8fd8\u6709\u4e00\u90e8\u5206\u662ftomcat\u672c\u8eab\u7684\u62a5\u9519\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f18\u5316tomcat\u7684\u521d\u59cb\u914d\u7f6e\u6765\u63d0\u9ad8tomcat\u7684\u6027\u80fd\u3002Tomcat\u7684\u4f18\u5316\u4e3b\u8981\u4f53\u73b0\u5728\u4e24\u65b9\u9762\uff1a\u5185\u5b58\u3001\u5e76\u53d1\u8fde\u63a5\u6570\u3002<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img decoding=\"async\" title=\"Tomcat7\u4f18\u5316\u914d\u7f6eTomcat7\u4f18\u5316\u914d\u7f6e\" src=\"http:\/\/www.9553.com\/upload\/2015\/1030\/20151030022850505.png\" alt=\"Tomcat7\u4f18\u5316\u914d\u7f6eTomcat7\u4f18\u5316\u914d\u7f6e\" \/><\/p>\n<div><strong>1\u3001\u5185\u5b58\u4f18\u5316\uff1a<\/strong><\/div>\n<p>\u4f18\u5316\u5185\u5b58\uff0c\u4e3b\u8981\u662f\u5728bin\/catalina.bat\/sh \u914d\u7f6e\u6587\u4ef6\u4e2d\u8fdb\u884c\u3002linux\u4e0a\uff0c\u5728catalina.sh\u4e2d\u6dfb\u52a0\uff1a<\/p>\n<pre>JAVA_OPTS=\"-server -Xms1G -Xmx2G -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M\"<\/pre>\n<p>\u5176\u4e2d\uff1a<\/p>\n<pre>\u2022 -server\uff1a\u542f\u7528jdk\u7684server\u7248\u672c\u3002\n\u2022 -Xms\uff1a\u865a\u62df\u673a\u521d\u59cb\u5316\u65f6\u7684\u6700\u5c0f\u5806\u5185\u5b58\u3002\n\u2022 -Xmx\uff1a\u865a\u62df\u673a\u53ef\u4f7f\u7528\u7684\u6700\u5927\u5806\u5185\u5b58\u3002 #-Xms\u4e0e-Xmx\u8bbe\u6210\u4e00\u6837\u7684\u503c\uff0c\u907f\u514dJVM\u56e0\u4e3a\u9891\u7e41\u7684GC\u5bfc\u81f4\u6027\u80fd\u5927\u8d77\u5927\u843d\n\u2022 -XX:PermSize\uff1a\u8bbe\u7f6e\u975e\u5806\u5185\u5b58\u521d\u59cb\u503c,\u9ed8\u8ba4\u662f\u7269\u7406\u5185\u5b58\u76841\/64\u3002\n\u2022 -XX:MaxNewSize\uff1a\u65b0\u751f\u4ee3\u5360\u6574\u4e2a\u5806\u5185\u5b58\u7684\u6700\u5927\u503c\u3002\n\u2022 -XX:MaxPermSize\uff1aPerm\uff08\u4fd7\u79f0\u65b9\u6cd5\u533a\uff09\u5360\u6574\u4e2a\u5806\u5185\u5b58\u7684\u6700\u5927\u503c\uff0c\u4e5f\u79f0\u5185\u5b58\u6700\u5927\u6c38\u4e45\u4fdd\u7559\u533a\u57df\u3002<\/pre>\n<p>1\uff09\u9519\u8bef\u63d0\u793a\uff1ajava.lang.OutOfMemoryError:Java heap space<\/p>\n<p>Tomcat\u9ed8\u8ba4\u53ef\u4ee5\u4f7f\u7528\u7684\u5185\u5b58\u4e3a128MB\uff0c\u5728\u8f83\u5927\u578b\u7684\u5e94\u7528\u9879\u76ee\u4e2d\uff0c\u8fd9\u70b9\u5185\u5b58\u662f\u4e0d\u591f\u7684\uff0c\u6709\u53ef\u80fd\u5bfc\u81f4\u7cfb\u7edf\u65e0\u6cd5\u8fd0\u884c\u3002\u5e38\u89c1\u7684\u95ee\u9898\u662f\u62a5Tomcat\u5185\u5b58\u6ea2\u51fa\u9519\u8bef\uff0cOutof Memory(\u7cfb\u7edf\u5185\u5b58\u4e0d\u8db3)\u7684\u5f02\u5e38\uff0c\u4ece\u800c\u5bfc\u81f4\u5ba2\u6237\u7aef\u663e\u793a500\u9519\u8bef\uff0c\u4e00\u822c\u8c03\u6574Tomcat\u7684-Xms\u548c-Xmx\u5373\u53ef\u89e3\u51b3\u95ee\u9898\uff0c\u901a\u5e38\u5c06-Xms\u548c-Xmx\u8bbe\u7f6e\u6210\u4e00\u6837\uff0c\u5806\u7684\u6700\u5927\u503c\u8bbe\u7f6e\u4e3a\u7269\u7406\u53ef\u7528\u5185\u5b58\u7684\u6700\u5927\u503c\u768480%\u3002<\/p>\n<pre>set JAVA_OPTS=-Xms512m-Xmx512m<\/pre>\n<p>2\uff09\u9519\u8bef\u63d0\u793a\uff1ajava.lang.OutOfMemoryError: PermGenspace<\/p>\n<p>PermGenspace\u7684\u5168\u79f0\u662fPermanent Generationspace,\u662f\u6307\u5185\u5b58\u7684\u6c38\u4e45\u4fdd\u5b58\u533a\u57df\uff0c\u8fd9\u5757\u5185\u5b58\u4e3b\u8981\u662f\u88abJVM\u5b58\u653eClass\u548cMeta\u4fe1\u606f\u7684,Class\u5728\u88abLoader\u65f6\u5c31\u4f1a\u88ab\u653e\u5230PermGenspace\u4e2d\uff0c\u5b83\u548c\u5b58\u653e\u7c7b\u5b9e\u4f8b(Instance)\u7684Heap\u533a\u57df\u4e0d\u540c,GC(Garbage Collection)\u4e0d\u4f1a\u5728\u4e3b\u7a0b\u5e8f\u8fd0\u884c\u671f\u5bf9PermGenspace\u8fdb\u884c\u6e05\u7406\uff0c\u6240\u4ee5\u5982\u679c\u4f60\u7684\u5e94\u7528\u4e2d\u6709\u5f88CLASS\u7684\u8bdd,\u5c31\u5f88\u53ef\u80fd\u51fa\u73b0PermGen space\u9519\u8bef\uff0c\u8fd9\u79cd\u9519\u8bef\u5e38\u89c1\u5728web\u670d\u52a1\u5668\u5bf9JSP\u8fdb\u884cprecompile\u7684\u65f6\u5019\u3002\u5982\u679c\u4f60\u7684WEB APP\u4e0b\u90fd\u7528\u4e86\u5927\u91cf\u7684\u7b2c\u4e09\u65b9jar, \u5176\u5927\u5c0f\u8d85\u8fc7\u4e86jvm\u9ed8\u8ba4\u7684\u5927\u5c0f(4M)\u90a3\u4e48\u5c31\u4f1a\u4ea7\u751f\u6b64\u9519\u8bef\u4fe1\u606f\u4e86\u3002\u89e3\u51b3\u65b9\u6cd5\uff1a<\/p>\n<pre>setJAVA_OPTS=-XX:PermSize=128M<\/pre>\n<p>3\uff09\u5728\u4f7f\u7528-Xms\u548c-Xmx\u8c03\u6574tomcat\u7684\u5806\u5927\u5c0f\u65f6\uff0c\u8fd8\u9700\u8981\u8003\u8651\u5783\u573e\u56de\u6536\u673a\u5236\u3002\u5982\u679c\u7cfb\u7edf\u82b1\u8d39\u5f88\u591a\u7684\u65f6\u95f4\u6536\u96c6\u5783\u573e\uff0c\u8bf7\u51cf\u5c0f\u5806\u5927\u5c0f\u3002\u4e00\u6b21\u5b8c\u5168\u7684\u5783\u573e\u6536\u96c6\u5e94\u8be5\u4e0d\u8d85\u8fc73-5 \u79d2\u3002\u5982\u679c\u5783\u573e\u6536\u96c6\u6210\u4e3a\u74f6\u9888\uff0c\u90a3\u4e48\u9700\u8981\u6307\u5b9a\u4ee3\u7684\u5927\u5c0f\uff0c\u68c0\u67e5\u5783\u573e\u6536\u96c6\u7684\u8be6\u7ec6\u8f93\u51fa\uff0c\u7814\u7a76\u5783\u573e\u6536\u96c6\u53c2\u6570\u5bf9\u6027\u80fd\u7684\u5f71\u54cd\u3002\u4e00\u822c\u8bf4\u6765\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528\u7269\u7406\u5185\u5b58\u7684 80% \u4f5c\u4e3a\u5806\u5927\u5c0f\u3002\u5f53\u589e\u52a0\u5904\u7406\u5668\u65f6\uff0c\u8bb0\u5f97\u589e\u52a0\u5185\u5b58\uff0c\u56e0\u4e3a\u5206\u914d\u53ef\u4ee5\u5e76\u884c\u8fdb\u884c\uff0c\u800c\u5783\u573e\u6536\u96c6\u4e0d\u662f\u5e76\u884c\u7684\u3002<\/p>\n<div><strong>2\u3001\u8fde\u63a5\u6570\u4f18\u5316\uff1a<\/strong><\/div>\n<p>#\u4f18\u5316\u8fde\u63a5\u6570\uff0c\u4e3b\u8981\u662f\u5728conf\/server.xml\u914d\u7f6e\u6587\u4ef6\u4e2d\u8fdb\u884c\u4fee\u6539\u3002<\/p>\n<div><strong>2.1\u3001\u4f18\u5316\u7ebf\u7a0b\u6570<\/strong><\/div>\n<p>\u627e\u5230Connectorport=&#8221;8080&#8243; protocol=&#8221;HTTP\/1.1&#8243;\uff0c\u589e\u52a0maxThreads\u548cacceptCount\u5c5e\u6027\uff08\u4f7facceptCount\u5927\u4e8e\u7b49\u4e8emaxThreads\uff09\uff0c\u5982\u4e0b\uff1a<\/p>\n<pre>&lt;Connectorport=\"8080\" protocol=\"HTTP\/1.1\"connectionTimeout=\"20000\" redirectPort=\"8443\"acceptCount=\"500\" maxThreads=\"400\" \/&gt;<\/pre>\n<p>\u5176\u4e2d\uff1a<\/p>\n<pre>\u2022 maxThreads\uff1atomcat\u53ef\u7528\u4e8e\u8bf7\u6c42\u5904\u7406\u7684\u6700\u5927\u7ebf\u7a0b\u6570\uff0c\u9ed8\u8ba4\u662f200\n\u2022 minSpareThreads\uff1atomcat\u521d\u59cb\u7ebf\u7a0b\u6570\uff0c\u5373\u6700\u5c0f\u7a7a\u95f2\u7ebf\u7a0b\u6570\n\u2022 maxSpareThreads\uff1atomcat\u6700\u5927\u7a7a\u95f2\u7ebf\u7a0b\u6570\uff0c\u8d85\u8fc7\u7684\u4f1a\u88ab\u5173\u95ed\n\u2022 acceptCount\uff1a\u5f53\u6240\u6709\u53ef\u4ee5\u4f7f\u7528\u7684\u5904\u7406\u8bf7\u6c42\u7684\u7ebf\u7a0b\u6570\u90fd\u88ab\u4f7f\u7528\u65f6\uff0c\u53ef\u4ee5\u653e\u5230\u5904\u7406\u961f\u5217\u4e2d\u7684\u8bf7\u6c42\u6570\uff0c\u8d85\u8fc7\u8fd9\u4e2a\u6570\u7684\u8bf7\u6c42\u5c06\u4e0d\u4e88\u5904\u7406.\u9ed8\u8ba4100<\/pre>\n<div><strong>2.2\u3001\u4f7f\u7528\u7ebf\u7a0b\u6c60<\/strong><\/div>\n<p>\u5728server.xml\u4e2d\u589e\u52a0executor\u8282\u70b9\uff0c\u7136\u540e\u914d\u7f6econnector\u7684executor\u5c5e\u6027\uff0c\u5982\u4e0b\uff1a<\/p>\n<pre>&lt;Executorname=\"tomcatThreadPool\" namePrefix=\"req-exec-\"maxThreads=\"1000\" minSpareThreads=\"50\"maxIdleTime=\"60000\"\/&gt;\n&lt;Connectorport=\"8080\" protocol=\"HTTP\/1.1\"executor=\"tomcatThreadPool\"\/&gt;<\/pre>\n<p>\u5176\u4e2d\uff1a<\/p>\n<pre>\u2022 namePrefix\uff1a\u7ebf\u7a0b\u6c60\u4e2d\u7ebf\u7a0b\u7684\u547d\u540d\u524d\u7f00\n\u2022 maxThreads\uff1a\u7ebf\u7a0b\u6c60\u7684\u6700\u5927\u7ebf\u7a0b\u6570\n\u2022 minSpareThreads\uff1a\u7ebf\u7a0b\u6c60\u7684\u6700\u5c0f\u7a7a\u95f2\u7ebf\u7a0b\u6570\n\u2022 maxIdleTime\uff1a\u8d85\u8fc7\u6700\u5c0f\u7a7a\u95f2\u7ebf\u7a0b\u6570\u65f6\uff0c\u591a\u7684\u7ebf\u7a0b\u4f1a\u7b49\u5f85\u8fd9\u4e2a\u65f6\u95f4\u957f\u5ea6\uff0c\u7136\u540e\u5173\u95ed\n\u2022 threadPriority\uff1a\u7ebf\u7a0b\u4f18\u5148\u7ea7<\/pre>\n<p>\u6ce8\uff1a\u5f53tomcat\u5e76\u53d1\u7528\u6237\u91cf\u5927\u7684\u65f6\u5019\uff0c\u5355\u4e2ajvm\u8fdb\u7a0b\u786e\u5b9e\u53ef\u80fd\u6253\u5f00\u8fc7\u591a\u7684\u6587\u4ef6\u53e5\u67c4\uff0c\u8fd9\u65f6\u4f1a\u62a5java.net.SocketException:Too many open files\u9519\u8bef\u3002\u53ef\u4f7f\u7528\u4e0b\u9762\u6b65\u9aa4\u68c0\u67e5\uff1a<\/p>\n<pre>\u2022 ps -ef |grep tomcat \u67e5\u770btomcat\u7684\u8fdb\u7a0bID\uff0c\u8bb0\u5f55ID\u53f7\uff0c\u5047\u8bbe\u8fdb\u7a0bID\u4e3a10001\n\u2022 lsof -p 10001|wc -l \u67e5\u770b\u5f53\u524d\u8fdb\u7a0bid\u4e3a10001\u7684 \u6587\u4ef6\u64cd\u4f5c\u6570\n\u2022 \u4f7f\u7528\u547d\u4ee4\uff1aulimit -a \u67e5\u770b\u6bcf\u4e2a\u7528\u6237\u5141\u8bb8\u6253\u5f00\u7684\u6700\u5927\u6587\u4ef6\u6570<\/pre>\n<div><strong>3\u3001Tomcat Connector\u4e09\u79cd\u8fd0\u884c\u6a21\u5f0f\uff08BIO, NIO, APR\uff09<\/strong><\/div>\n<div><strong>3.1\u3001\u4e09\u79cd\u6a21\u5f0f\u6bd4\u8f83\uff1a<\/strong><\/div>\n<p>1\uff09BIO\uff1a\u4e00\u4e2a\u7ebf\u7a0b\u5904\u7406\u4e00\u4e2a\u8bf7\u6c42\u3002\u7f3a\u70b9\uff1a\u5e76\u53d1\u91cf\u9ad8\u65f6\uff0c\u7ebf\u7a0b\u6570\u8f83\u591a\uff0c\u6d6a\u8d39\u8d44\u6e90\u3002Tomcat7\u6216\u4ee5\u4e0b\u5728Linux\u7cfb\u7edf\u4e2d\u9ed8\u8ba4\u4f7f\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002<\/p>\n<p>2\uff09NIO\uff1a\u5229\u7528Java\u7684\u5f02\u6b65IO\u5904\u7406\uff0c\u53ef\u4ee5\u901a\u8fc7\u5c11\u91cf\u7684\u7ebf\u7a0b\u5904\u7406\u5927\u91cf\u7684\u8bf7\u6c42\u3002Tomcat8\u5728Linux\u7cfb\u7edf\u4e2d\u9ed8\u8ba4\u4f7f\u7528\u8fd9\u79cd\u65b9\u5f0f\u3002Tomcat7\u5fc5\u987b\u4fee\u6539Connector\u914d\u7f6e\u6765\u542f\u52a8\uff08conf\/server.xml\u914d\u7f6e\u6587\u4ef6\uff09\uff1a<\/p>\n<pre>&lt;Connectorport=\"8080\"protocol=\"org.apache.coyote.http11.Http11NioProtocol\" connectionTimeout=\"20000\"redirectPort=\"8443\"\/&gt;<\/pre>\n<p>3\uff09APR(Apache Portable Runtime)\uff1a\u4ece\u64cd\u4f5c\u7cfb\u7edf\u5c42\u9762\u89e3\u51b3io\u963b\u585e\u95ee\u9898\u3002Linux\u5982\u679c\u5b89\u88c5\u4e86apr\u548cnative\uff0cTomcat\u76f4\u63a5\u542f\u52a8\u5c31\u652f\u6301apr\u3002<\/p>\n<div><strong>3.2\u3001apr\u6a21\u5f0f<\/strong><\/div>\n<p>\u5b89\u88c5apr\u4ee5\u53catomcat-native<\/p>\n<pre>yum -y install apr apr-devel<\/pre>\n<p>\u8fdb\u5165tomcat\/bin\u76ee\u5f55\uff0c\u6bd4\u5982\uff1a<\/p>\n<pre>cd \/opt\/local\/tomcat\/bin\/\ntar xzfv tomcat-native.tar.gz\ncd tomcat-native-1.1.32-src\/jni\/native\n.\/configure --with-apr=\/usr\/bin\/apr-1-config\nmake &amp;&amp; make install<\/pre>\n<p>#\u6ce8\u610f\u6700\u65b0\u7248\u672c\u7684tomcat\u81ea\u5e26tomcat-native.war.gz\uff0c\u4e0d\u8fc7\u5176\u7248\u672c\u76f8\u5bf9\u4e8eyum\u5b89\u88c5\u7684apr\u8fc7\u9ad8\uff0cconfigure\u7684\u65f6\u5019\u4f1a\u62a5\u9519\u3002<\/p>\n<p>\u89e3\u51b3\uff1ayum remove apr apr-devel \u2013y,\u5378\u8f7dyum\u5b89\u88c5\u7684apr\u548capr-devel,\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\u7684apr\u6e90\u7801\u5305\uff0c\u7f16\u8bd1\u5b89\u88c5;\u6216\u8005\u4e0b\u8f7d\u4f4e\u7248\u672c\u7684tomcat-native\u7f16\u8bd1\u5b89\u88c5<\/p>\n<p>\u5b89\u88c5\u6210\u529f\u540e\u8fd8\u9700\u8981\u5bf9tomcat\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff0c\u65b9\u6cd5\u662f\u5728catalina.sh\u6587\u4ef6\u4e2d\u589e\u52a01\u884c\uff1a<\/p>\n<pre>CATALINA_OPTS=\"-Djava.library.path=\/usr\/local\/apr\/lib\"<\/pre>\n<p>#apr\u4e0b\u8f7d\u5730\u5740\uff1ahttp:\/\/apr.apache.org\/download.cgi<\/p>\n<p>#tomcat-native\u4e0b\u8f7d\u5730\u5740\uff1ahttp:\/\/tomcat.apache.org\/download-native.cgi<\/p>\n<p>\u4fee\u65398080\u7aef\u5bf9\u5e94\u7684conf\/server.xml<\/p>\n<p>protocol=&#8221;org.apache.coyote.http11.Http11AprProtocol&#8221;<\/p>\n<pre>&lt;Connector executor=\"tomcatThreadPool\"\nport=\"8080\"\nprotocol=\"org.apache.coyote.http11.Http11AprProtocol\"\nconnectionTimeout=\"20000\"\nenableLookups=\"false\"\nredirectPort=\"8443\"\nURIEncoding=\"UTF-8\" \/&gt;<\/pre>\n<p>PS:\u542f\u52a8\u4ee5\u540e\u67e5\u770b\u65e5\u5fd7 \u663e\u793a\u5982\u4e0b\u8868\u793a\u5f00\u542f apr \u6a21\u5f0f<\/p>\n<pre>Sep 19, 2016 3:46:21 PM org.apache.coyote.AbstractProtocol start\nINFO: Starting ProtocolHandler [\"http-apr-8081\"]<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u6458\u8981\uff1a Tomcat\u5728\u4f7f\u7528\u7684\u8fc7\u7a0b\u4e2d\u4f1a\u9047\u5230\u5f88\u591a\u62a5\u9519\uff0c\u6709\u4e9b\u662f\u7a0b\u5e8f\u7684\u62a5\u9519\uff0c\u4f46\u8fd8\u6709\u4e00\u90e8\u5206\u662ftomcat\u672c\u8eab\u7684\u62a5\u9519\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f18\u5316tomcat\u7684\u521d\u59cb\u914d\u7f6e\u6765\u63d0\u9ad8tomcat\u7684\u6027\u80fd\u3002Tomcat\u7684\u4f18\u5316\u4e3b\u8981\u4f53\u73b0\u5728\u4e24\u65b9\u9762\uff1a\u5185\u5b58\u3001\u5e76\u53d1\u8fde\u63a5\u6570\u3002 Tomcat\u5728\u4f7f\u7528\u7684\u8fc7\u7a0b\u4e2d\u4f1a\u9047\u5230\u5f88\u591a\u62a5\u9519\uff0c\u6709\u4e9b\u662f\u7a0b\u5e8f\u7684\u62a5\u9519\uff0c\u4f46\u8fd8\u6709\u4e00\u90e8\u5206\u662ftomcat\u672c\u8eab\u7684\u62a5\u9519\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4f18\u5316tomcat\u7684\u521d\u59cb\u914d\u7f6e\u6765\u63d0\u9ad8tomcat\u7684\u6027\u80fd\u3002Tomcat\u7684\u4f18\u5316\u4e3b\u8981\u4f53\u73b0\u5728\u4e24\u65b9\u9762\uff1a\u5185\u5b58\u3001\u5e76\u53d1\u8fde\u63a5\u6570\u3002 1\u3001\u5185\u5b58\u4f18\u5316\uff1a \u4f18\u5316\u5185\u5b58\uff0c\u4e3b\u8981\u662f\u5728bin\/catalina.bat\/sh \u914d\u7f6e\u6587\u4ef6\u4e2d\u8fdb\u884c\u3002linux\u4e0a\uff0c\u5728catalina.sh\u4e2d\u6dfb\u52a0\uff1a JAVA_OPTS=&#8221;-server -Xms1G -Xmx2G -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M&#8221; \u5176\u4e2d\uff1a \u2022 -server\uff1a\u542f\u7528jdk\u7684server\u7248\u672c\u3002 \u2022 -Xms\uff1a\u865a\u62df\u673a\u521d\u59cb\u5316\u65f6\u7684\u6700\u5c0f\u5806\u5185\u5b58\u3002 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-466","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=466"}],"version-history":[{"count":0,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/466\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}