2013年2月15日 星期五

修改伺服器bat檔的java參數 有效提高效能

各位朋友你們有時候會不會覺得伺服器有點laglag的?
還是朋友跟你們抱怨laglag的?
試試看修改bat檔的參數吧!


修改JAVA的啟動參數以提升伺服器的運作的性能
有效降低延遲與破圖
經過實驗後確實能提升效能
視野距離:遠 (64位元)
破圖的情形真的小很多

各位伺服器經營者可以參考看看喔

(Windows)
Runserver.bat

@ECHO OFF
SET BINDIR=%~dp0
CD /D "%BINDIR%"
F:\ProgramFiles\Java\jre6\bin\java.exe -Xmx1024M -Xms1024M -server -XX:ParallelGCThreads=4 -Xincgc -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+AggressiveOpts -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:MaxGCPauseMillis=500 -XX:SurvivorRatio=16 -XX:TargetSurvivorRatio=90 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -Xnoclassgc -XX:UseSSE=3 -XX:PermSize=128m -XX:LargePageSizeInBytes=4m -jar craftbukkit.jar
PAUSE

*藍色字樣為同一行*
*這邊的F:\ProgramFiles\Java\jre6\bin\java.exe是JAVA所在路徑 因人而異*
**


我幫各位把每一個指令的意義給挖出來了
用Google大神開10幾個分頁 搞了一小時= =....

*JAVA指令說明*
-server 指示JAVA以伺服器模式執行(只有64位元適用)
-XX:ParallelGCThreads=4 指示JAVA同一時間用多少處理執行緒垃圾回收
-Xincgc 指示垃圾回收不斷進行 而不是停頓來進行一次性清理
-XX:+UseConcMarkSweepGC 指示垃圾回收和伺服器核心同時進行
-XX:+UseParNewGC 指示使用新版垃圾回收 有更好的效能
-XX:+CMSIncrementalPacing 指示伺服器執行時 根據收集的數據自動調節所佔空間比率
-XX:+AggressiveOpts 增加編譯的速度
-XX:+CMSParallelRemarkEnabled 使用UseParNewGC的參數下 儘量減少 mark 的時間
-XX:+DisableExplicitGC 禁止全面性垃圾回收呼叫 (減少每隔一段時間的伺服器短暫停頓)
-XX:MaxGCPauseMillis=500 限制垃圾回收最大的暫停毫秒數
-XX:SurvivorRatio=16 調整JAVA程序新生代與舊代的比率
-XX:TargetSurvivorRatio=90 設定JAVA程序新生代比率
-XX:+UseAdaptiveGCBoundary 允許垃圾回收依據情況需要在程序新生代與舊代之間移轉 (提升性能)
-XX:-UseGCOverheadLimit 禁止JAVA花費大量時間只為了釋放一點點空間
-Xnoclassgc 命令記憶體存放區填滿之後 禁止停頓進行大規模垃圾回收 而是開新空間
-XX:UseSSE=3 指示JAVA編譯器操作處理器的調整 (數值會自動降低直到符合使用者的處理器)
-XX:PermSize=128m 指示伺服器一開始執行時的永久可用記憶體區域
-XX:LargePageSizeInBytes=4m 記憶體分頁的大小 (概念和磁碟區叢集很像 數值小 效率高)

引用自巴哈姆特論壇-wmcticewolf

1 則留言: