wildfly jboss 優化配置


參考調優:http://www.mastertheboss.com/jboss-server/jboss-performance/jboss-as-7-performance-tuning?showall=1

1,jvm

\wildfly-10.0.0.Final\bin\standalone.conf.bat (linux standalone.conf)

set "JAVA_OPTS=-Xmx2048m -Xms2048m -XX:MaxNewSize=896m -XX:NewSize=896m -XX:SurvivorRatio=6 -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=2048m -XX:+UseLargePages "

 

2,log 日志

日志輸出定義在root-logger里面:

<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>

 

級別是INFO;可以改為warn,error等減少日志輸出。將<handler name="CONSOLE"/>刪除掉,就不會往控制台輸出日志。增快速度。

log將輸出到兩個handler里面:console和file。這兩個定義如下:

       <console-handler name="CONSOLE">
                <level name="INFO"/>
                <formatter>
                    <named-formatter name="COLOR-PATTERN"/>
                </formatter>
            </console-handler>

<size-rotating-file-handler name="FILE" autoflush="true"> <formatter> <named-formatter name="PATTERN"/> </formatter> <file relative-to="jboss.server.log.dir" path="server.log"/> <rotate-size value="1000k"/> <max-backup-index value="5"/> <append value="true"/> <suffix value=".yyyy-MM-dd"/> </size-rotating-file-handler>

文件用了size-rotating-file-handler。rotate-size規定了日志每達到1m,就生成新的日志。一天共會生成5個分割文件。當日志達到4個以后,剩下日志會全填充到server.log。導致這個轉為.5文件后特別大。

3. 數據庫連接池失敗后,自動重新連接

               <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:mysql://localhost:3306/statisticsystem?characterEncoding=utf-8&amp;autoReconnect=true&amp;failOverReadOnly=false</connection-url>
                    <driver>mysql</driver>
                    <security>
                        <user-name>jboss</user-name>
                        <password>jboss</password>
                    </security>
                    <validation>
                        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                        <validate-on-match>true</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <timeout>
                        <set-tx-query-timeout>false</set-tx-query-timeout>
                        <blocking-timeout-millis>0</blocking-timeout-millis>
                        <idle-timeout-minutes>0</idle-timeout-minutes>
                        <query-timeout>0</query-timeout>
                        <use-try-lock>0</use-try-lock>
                        <allocation-retry>0</allocation-retry>
                        <allocation-retry-wait-millis>0</allocation-retry-wait-millis>
                    </timeout>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>

<xa-datasource jndi-name="java:jboss/datasources/MySqlStatDW" pool-name="MySqlStatDW" enabled="true" use-java-context="true"> <xa-datasource-property name="ServerName"> 192.168.8.238 </xa-datasource-property> <xa-datasource-property name="PortNumber"> 5029 </xa-datasource-property> <xa-datasource-property name="DatabaseName"> statistics </xa-datasource-property> <driver>mysql</driver> <xa-pool> <min-pool-size>5</min-pool-size> <initial-pool-size>5</initial-pool-size> <max-pool-size>100</max-pool-size> <prefill>true</prefill> </xa-pool> <security> <user-name>zhibin</user-name> <password>zhibin123</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> <validate-on-match>true</validate-on-match> <background-validation>false</background-validation> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> </validation> <statement> <share-prepared-statements>false</share-prepared-statements> </statement> </xa-datasource> <xa-datasource jndi-name="java:jboss/datasources/MySqlDataCenter" pool-name="MySqlDataCenter" enabled="true" use-java-context="true"> <xa-datasource-property name="ServerName"> 211.100.75.213 </xa-datasource-property> <xa-datasource-property name="DatabaseName"> cms </xa-datasource-property> <driver>mysql</driver> <xa-pool> <min-pool-size>5</min-pool-size> <initial-pool-size>5</initial-pool-size> <max-pool-size>100</max-pool-size> <prefill>true</prefill> </xa-pool> <security> <user-name>CPdeveloper206</user-name> <password>206@)^developer</password> </security> </xa-datasource>

?characterEncoding=utf-8 是數據庫存中文亂碼,加上后改好。(注意:創建schema或者table時候指定字符集是utf8)

4,事務的超時

        <subsystem xmlns="urn:jboss:domain:transactions:3.0">
            <core-environment>
                <process-id>
                    <uuid/>
                </process-id>
            </core-environment>
            <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
            <coordinator-environment default-timeout="60"/>
        </subsystem>

5,任務job,分區任務最大的線程數

 <subsystem xmlns="urn:jboss:domain:batch-jberet:1.0">
            <default-job-repository name="in-memory"/>
            <default-thread-pool name="batch"/>
            <job-repository name="in-memory">
                <in-memory/>
            </job-repository>
            <thread-pool name="batch">
                <max-threads count="200"/>
                <keepalive-time time="30" unit="seconds"/>
            </thread-pool>
        </subsystem>

6,數據庫做http auth

                <security-domain name="dbdomain" cache-type="default">
                    <authentication>
                        <login-module code="Database" flag="required">
                            <module-option name="dsJndiName" value="java:jboss/datasources/MySqlDS"/>
                            <module-option name="principalsQuery" value="select passwd from USERS where login=?"/>
                            <module-option name="rolesQuery" value="select Role , 'Roles' from USER_ROLES where login=?"/>
                        </login-module>
                    </authentication>
                </security-domain>

7,上傳文件最大尺寸限制

            <server name="default-server">
                <http-listener name="default" max-post-size="204857600" socket-binding="http" redirect-socket="https"/>

8,改成外網地址可以訪問

    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
        </interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:0.0.0.0}"/>
        </interface>
        <interface name="unsecure">
            <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
        </interface>
    </interfaces>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM