Java
OPTSÉèÖÃ
ÔÚJavaµÄJvm·ÖΪÖ÷ҪΪÁ½´ó¿é£ºÒ»¸öÊÇheapºÍ nheap
Heap°üÀ¨Èý¸öÇøÓò. Eden space ¡¢survivor space¡¢tenured
space.
ÆäÖÐsurivor space°üÀ¨Á½¸öÇø£¬Ò»¸öÊÇfromÇø£¬Ò»¸öÊÇtoÇø
EdenÊǸºÔðжÔÏóµÄ´´½¨ÇøÓò¡£µ±Ð¶ÔÏóÎÞ·¨ÔÚedenÇø´´½¨µÄʱºò£¬edenÇø»á½øÐÐminor
gc,»á½«Ò»Ð©Ê§Ð§µÄ¶ÔÏóÇå³ý¡£»á½«Çå³ýÏÂÀ´µÄ²¿·Ö¶ÔÏó·Åµ½survivor spaceÇøÓò»òÕßtenured
spaceÇøÓò¡£µ±tenured spaceµÄ¶ÔÏóÔ½À´Ô½¶àµÄʱºò£¬´ïµ½jvmÄÚ´æ²»×ã10%µÄʱºò£¬»á½øÐÐÒ»´Îfull
gcÀ´ÊͷŶÔÏó¡£ÏîĿҪ¾¡¿ÉÄÜÉÙµÄfull gc ,ӦΪfull gc±È½ÏÕ¼ÓÃÄڴ棬һ°ãÒªÇóÍÌÍÂÁ¿±È½Ï´óµÄʱºò£¬¾¡Á¿µÄ½«newÇøÓòÉèÖõıȽϴóÒ»µã¡£Ò²¾ÍÊÇedenºÍsurvivorÕâ¸öÇøÓò¡£
ÏÂÃæ¼òÒªµÄ˵һÏÂÅäÖòÎÊý
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
-XX:MaxPermSize=256m
-Xms512m ´ú±íjvm×îÉÙÓà 512mÄÚ´æ,32bit²Ù×÷ϵͳ×î´óÔÚ1.5g-2gÖ®¼ä¡£64λµÄÎÞÏÞÖÆ
-Xmx1024m ´ú±íjvm×î¶àʹÓà 1024mÄÚ´æ,¾¡Á¿µÄ½«-XmsºÍ-Xmx´óСÉèÖÃÏàͬ£¬ÕâÑù±ÜÃâÄÚ´æÖØÐ·ÖÅäÓ°ÏìÐÔÄÜ
-Xss=128k Ï̳߳õʼ»¯´óС£¬5.0֮ǰĬÈÏÊÇ128k,Ö®ºóΪ1m,Ï̻߳úÆ÷×î´óΪ3000-5000
-XX:MaxPermSize=256m.ÕâÊDZíÃ÷³Ö¾ÃÀ࣬Ҳ¾ÍÊÇnoheapÇøÓòµÄ×î´óΪ256
-XX:PermSize=256mÕâ¸ö³Ö¾ÃÇøÓò³õʼ»¯Îª256m£¬Ò»°ã³Ö¾ÃÀàµÄ´óСÊÇ64m
Õâ¸öÅäÖÃÊÇ×î³£ÓõÄÅäÖá£Èç¹ûÐèÒª¿¼Âǵ½ÍÌÍÂÁ¿£¬ÄÇônew spaceºÍold
spaceÄã¾ÍµÃÖØÐ·ÖÅäÒ»ÏÂ
JvmÀ¬»øÊÕ¼¯Æ÷°üÀ¨ÈýÖÖ£º´®ÐУ¬²¢ÐУ¬²¢·¢
´®ÐУº´¦ÀíСÐÍÊý¾Ý£¬jdk1.4֮ǰĬÈÏʹÓÃ
²¢ÐУº1.5ºÍ1.5Ö®ºóʹÓ㬴¦Àí
µäÐÍ·þÎñÆ÷ÅäÖÃÓÐÒÔϼ¸ÖÖ£º
-Xmx3800m -Xms3800m -Xmn2g -Xss128k
-XX:+UseParallelGC -XX:ParallelGCThreads=20
-XX:+UseParallelGC£ºÑ¡ÔñÀ¬»øÊÕ¼¯Æ÷Ϊ²¢ÐÐÊÕ¼¯Æ÷¡£´ËÅäÖýö¶ÔÄêÇá´úÓÐЧ¡£¼´ÉÏÊöÅäÖÃÏ£¬ÄêÇá´úʹÓò¢·¢ÊÕ¼¯£¬¶øÄêÀÏ´úÈÔ¾ÉʹÓô®ÐÐÊÕ¼¯¡£
-XX:ParallelGCThreads=20£ºÅäÖò¢ÐÐÊÕ¼¯Æ÷µÄÏß³ÌÊý£¬¼´£ºÍ¬Ê±¶àÉÙ¸öÏß³ÌÒ»Æð½øÐÐÀ¬»ø»ØÊÕ¡£´ËÖµ×îºÃÅäÖÃÓë´¦ÀíÆ÷ÊýÄ¿Ïàͬ
-Xmx3550m -Xms3550m -Xmn2g -Xss128k
-XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC
-XX:+UseParallelOldGC£ºÅäÖÃÄêÀÏ´úÀ¬»øÊÕ¼¯·½Ê½Îª²¢ÐÐÊÕ¼¯¡£JDK6.0Ö§³Ö¶ÔÄêÀÏ´ú²¢ÐÐÊÕ¼¯¡£
-Xmx3550m -Xms3550m -Xmn2g -Xss128k
-XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5
-XX:+UseCMSCompactAtFullCollection
XX:CMSFullGCsBeforeCompaction£ºÓÉÓÚ²¢·¢ÊÕ¼¯Æ÷²»¶ÔÄÚ´æ¿Õ¼ä½øÐÐѹËõ¡¢ÕûÀí£¬ËùÒÔÔËÐÐÒ»¶Îʱ¼äÒÔºó»á²úÉú¡°Ë鯬¡±£¬Ê¹µÃÔËÐÐЧÂʽµµÍ¡£´ËÖµÉèÖÃÔËÐжàÉÙ´ÎGCÒÔºó¶ÔÄÚ´æ¿Õ¼ä½øÐÐѹËõ¡¢ÕûÀí¡£
-XX:+UseCMSCompactAtFullCollection£º´ò¿ª¶ÔÄêÀÏ´úµÄѹËõ¡£¿ÉÄÜ»áÓ°ÏìÐÔÄÜ£¬µ«ÊÇ¿ÉÒÔÏû³ýË鯬
³£¼ûÅäÖûã×Ü
1. ¶ÑÉèÖÃ
-Xss128k£ºJBossÿÔö¼ÓÒ»¸öỊ̈߳¨thread)¾Í»áÁ¢¼´ÏûºÄ128K,ĬÈÏÖµºÃÏñÊÇ512k.
-Xms512m:³õʼ¶Ñ´óС,´ú±íjvm×îÉÙÓà 512mÄÚ´æ
-Xmx:×î´ó¶Ñ´óС Ò»°ãΪ·þÎñÆ÷µÄ3/4ÄÚ´æÁ¿£¬ÍƼöÖÁÉÙʹÓÃ4GÄڴ棬²»Ó¦¸Ã³¬¹ýÎïÀíÄÚ´æµÄ90£¥¡£
-XX:NewSize=n:ÉèÖÃÄêÇá´ú´óС
-XX:NewRatio=n:ÉèÖÃÄêÇá´úºÍÄêÀÏ´úµÄ±ÈÖµ¡£Èç:Ϊ3£¬±íʾÄêÇá´úÓëÄêÀÏ´ú±ÈֵΪ1£º3£¬ÄêÇá´úÕ¼Õû¸öÄêÇá´úÄêÀÏ´úºÍµÄ1/4
-XX:SurvivorRatio=n:ÄêÇá´úÖÐEdenÇøÓëÁ½¸öSurvivorÇøµÄ±ÈÖµ¡£×¢ÒâSurvivorÇøÓÐÁ½¸ö¡£È磺3£¬±íʾEden£ºSurvivor=3£º2£¬Ò»¸öSurvivorÇøÕ¼Õû¸öÄêÇá´úµÄ1/5
-XX:MaxPermSize=n:ÉèÖó־ôú´óС
2. ÊÕ¼¯Æ÷ÉèÖÃ
-XX:+UseSerialGC:ÉèÖô®ÐÐÊÕ¼¯Æ÷
-XX:+UseParallelGC:ÉèÖò¢ÐÐÊÕ¼¯Æ÷
-XX:+UseParalledlOldGC:ÉèÖò¢ÐÐÄêÀÏ´úÊÕ¼¯Æ÷
-XX:+UseConcMarkSweepGC:ÉèÖò¢·¢ÊÕ¼¯Æ÷
3. À¬»ø»ØÊÕͳ¼ÆÐÅÏ¢
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
4. ²¢ÐÐÊÕ¼¯Æ÷ÉèÖÃ
-XX:ParallelGCThreads=n:ÉèÖò¢ÐÐÊÕ¼¯Æ÷ÊÕ¼¯Ê±Ê¹ÓõÄCPUÊý¡£²¢ÐÐÊÕ¼¯Ïß³ÌÊý¡£
-XX:MaxGCPauseMillis=n:ÉèÖò¢ÐÐÊÕ¼¯×î´óÔÝͣʱ¼ä
-XX:GCTimeRatio=n:ÉèÖÃÀ¬»ø»ØÊÕʱ¼äÕ¼³ÌÐòÔËÐÐʱ¼äµÄ°Ù·Ö±È¡£¹«Ê½Îª1/(1+n)
5. ²¢·¢ÊÕ¼¯Æ÷ÉèÖÃ
-XX:+CMSIncrementalMode:ÉèÖÃΪÔöÁ¿Ä£Ê½¡£ÊÊÓÃÓÚµ¥CPUÇé¿ö¡£
-XX:ParallelGCThreads=n:ÉèÖò¢·¢ÊÕ¼¯Æ÷ÄêÇá´úÊÕ¼¯·½Ê½Îª²¢ÐÐÊÕ¼¯Ê±£¬Ê¹ÓõÄCPUÊý¡£²¢ÐÐÊÕ¼¯Ïß³ÌÊý¡£
²é¿´CPUÊý
cat /proc/cpuinfo | grep "processor"
| wc -l
Éú²ú»·¾³8GÄÚ´æjbossÅäÖÃÈçÏÂ
if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xss128k -Xms6000m -Xmx6000m -XX:MaxNewSize
=512m -XX:MaxPermSize=512M -XX:+UseParallelGC -XX:ParallelGCThreads
=16 -XX:+UseParallelOldGC -Dsun.rmi.dgc.client.gcInterval
=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" fi Éú²ú»·¾³4GÄÚ´æjbossÅäÖÃÈçÏ if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xss128k -Xms3000m -Xmx3000m -XX:MaxNewSize
=256m -XX:MaxPermSize=256m -XX:+UseParallelGC -XX:ParallelGCThreads
=16 -XX:+UseParallelOldGC -Dsun.rmi.dgc.client.gcInterval
=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" fi |
Êý¾Ý¿âÁ¬½Ó
ÔÚJBOSS_HOME\Server\default\deployĿ¼Ï´æÔÚ**-xa-ds.xmlÎļþ£¬ÓÃÓÚJBOSSͬÊý¾Ý¿âÁ¬½ÓµÈÅäÖã¬Ä¬ÈÏÇé¿öÏÂ**-xa-ds.xmlÎļþÖв»°üº¬¹ØÓÚÊý¾Ý¿âÁ¬½Ó³ØµÈ·½ÃæµÄÅäÖÃÐÅÏ¢£¬¿ÉÒÔÌí¼ÓÒ»ÏÂÄÚÈݽøÐÐÊý¾Ý¿âÁ¬½Ó³Ø·½ÃæµÄÉèÖãº
<min-pool-size>100</min-pool-size> <max-pool-size>500</max-pool-size> |
µÚ3ÕÂ Tomcat
3.1 web.xml
ÐÞ¸ÄTomcatµÄJSP×Ô¶¯±àÒëÅäÖÃÏ
%JBOSS_HOME%/deploy/jbossweb-tomcat50.sar/conf/web.xml
ÐÞ¸ÄÈçÏ´úÂ룺
<span><servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>development</param-name> <param-value>false</param-value> </init-param> </servlet></span> |
×·¼Ódevelopment=false
֪ͨtomcatÔÚÓû§·ÃÎÊʱ²»±Ø×÷JSPÎļþÊÇ·ñÒѱ»Ð޸ĵļì²é¡£
3.2 server.xml
ÐÞ¸ÄTomcatµÄserver.xmlÎļþ£¬ÉèÖÃÏß³ÌÊý¡¢Ö§³ÖѹËõÐÒéµÈ¡
%JBOSS_HOME%/deploy/jbossweb-tomcat50.sar/server.xml
<span><Connector port="80" address="0.0.0.0" maxThreads="75" maxHttpHeaderSize="8192" minSpareThreads="55" maxSpareThreads="25" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" compression="on" compressableMimeType="text/html,text/xml,text/plain,text/css, text/javascript,application/xhtml+xml,application/x-javascript,application/javascript,text/xhtml" /></span> |
µÚ4Õ ÈÕÖ¾ÓÅ»¯
ÓÅ»¯JBOSSÈÕÖ¾£º%JBOSS_HOME%/server/default/conf/log4j.xml
4.1 ÐÞ¸ÄAppend
ÐÞ¸ÄÒÔÏÂÄÚÈÝ£º
<span><param name="Append" value="true"/> <param name="Threshold" value="WARN"/></span> |
Ð޸ĺóµÄ´úÂëÈçÏ£º
<span><appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param name="File" value="${jboss.server.home.dir}/log/server.log"/> <param name="Append" value="true"/> <param name="Threshold" value="WARN"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout> </appender></span> |
4.2 ÐÞ¸ÄRoot
¹Ø±Õ¿ØÖÆÌ¨ÈÕÖ¾Êä³ö£º
ÆÁ±Î£º<appender-ref ref="CONSOLE"/>
<root> <!--<appender-ref ref="CONSOLE"/>--> <appender-ref ref="FILE"/> </root> |
JBOSSÊÝÉí
ÔÚJBOSSÖÐÌṩÐí¶àͨ³£²»ÐèÒªµÄ·þÎñºÍJar°ü£¬±ÈÈçJMX¡¢Mail¡¢AOP¡¢HibernateµÈ£¬¿ÉÒÔ¸ù¾Ý¾ßÌåÏîÄ¿ËùÉæ¼°µÄ¼¼Êõ£¬É¾¼õJBOSSÄÚÖÃÓ¦Ó㬴ӶøÌá¸ßJBOSSÖмä¼þÆô¶¯ËÙ¶È£¬¼õÉÙÕ¼ÓÃϵͳ×ÊÔ´¡£
ɾ¼õ·þÎñ
ÔÚ%JBOSS_HOME%/server/default/deployÖк¬ÓÐһЩ±ÈÈçjboss-aop.deployerµÈĿ¼ºÍmail-service.xmlµÈÓ¦ÓÃÅäÖÃÎļþ£¬Èç¹û²»ÐèҪʹÓÃÕâЩӦÓõϰ£¬¿ÉÒÔ½«Æäһһɾ³ý£¬²»¹ýɾ³ýʱҪ·ÖÍâСÐÄ£¬±ÜÃâÓ¦ÓÃϵͳÎÞ·¨Æô¶¯¡£
ÏÂͼΪֻ°üº¬Êý¾Ý¿âÓ¦ÓõÄÒ»¸öÒÑɾ¼õ²»ÐèÒª·þÎñºóµÄdeployÎļþ¼ÐĿ¼£º
ɾ¼õJar°ü
ÔÚ%JBOSS_HOME%/server/default/libÖаüº¬Ò»Ð©Ó¦ÓÃϵͳ²»ÐèÒªµÄJar°ü£¬ÕâЩ°üͬÑù¿ÉÒÔ½øÐÐɾ³ý¡£
|