Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
JBOSSÓÅ»¯
 
×÷Õߣºwangtong40 À´Ô´£ºiteye ·¢²¼ÓÚ 2015-02-09
  2917  次浏览      28
 

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°ü£¬ÕâЩ°üͬÑù¿ÉÒÔ½øÐÐɾ³ý¡£

   
2917 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Java ÖеÄÖÐÎıàÂëÎÊÌâ
Java»ù´¡ÖªÊ¶µÄÈýÊ®¸ö¾­µäÎÊ´ð
Íæ×ª Java Web Ó¦Óÿª·¢
ʹÓÃSpring¸üºÃµØ´¦ÀíStruts
ÓÃEclipse¿ª·¢iPhone WebÓ¦ÓÃ
²å¼þϵͳ¿ò¼Ü·ÖÎö


Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ


Struts+Spring+Hibernate/EJB+ÐÔÄÜÓÅ»¯
»ªÏÄ»ù½ð ActiveMQ Ô­ÀíÓë¹ÜÀí
ijÃñº½¹«Ë¾ Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢
ij·çµç¹«Ë¾ Java Ó¦Óÿª·¢Æ½Ì¨ÓëÇ¨ÒÆ
ÈÕÕÕ¸Û J2EEÓ¦Óÿª·¢¼¼Êõ¿ò¼ÜÓëʵ¼ù
ij¿ç¹ú¹«Ë¾ ¹¤×÷Á÷¹ÜÀíJBPM
¶«·½º½¿Õ¹«Ë¾ ¸ß¼¶J2EE¼°ÆäÇ°ÑØ¼¼Êõ