Jump to content
  • 0

Question

Posted

Hello everyone,

 

I'm using https://bitbucket.org/l2jgeo/l2j_geodata/src as GEODATA for my server on Hi5.

But when geodata is enabled, players are encountering freeze sometimes for 4 seconds, my server specs is 24GB RAM and 4vcore with HDD. I've already put -xmx 20GB on my GS launch script.

 

There is my geodata.ini configuration:

 

# Dimension maps
GeoFirstX = 11
GeoFirstY = 10
GeoLastX = 26
GeoLastY = 26

# Template file geodata
GeoFilesPattern = (\\d{2}_\\d{2})\\.l2j

# If True GEODATA
AllowGeodata = True

# Allow the player to fall from the horizontal wall if he clicks on the wall itself
AllowFallFromWalls = True

#Motion keyboard (arrows)
AllowMoveWithKeyboard = False

# Increase to Z for packages
ClientZShift = 16

# Optimization of geodata in memory, saves about 150MB memory
# Optimization should first need to generate a map of matches
CompactGeoData = True

# The minimum difference between the layers
MinLayerHeight = 64

# The maximum height of the step for geodata
MaxZDiff = 64

# Diagonal Search
# It should be disabled only for debugging
PathFindDiagonal = True

#Smooths the way #
# It should be disabled only for debugging
PathClean = True

# Strongly accelerates the search, the effect on the quality of unknown
# 0 - off, 1 - is just the beginning, 2 - the beginning and the end of the road
PathFindBoost = 2

# The maximum height of the step to find a way
PathFindMaxZDiff = 32

# The maximum time allowed to spend on the search path (in nanoseconds)
PathFindMaxTime = 100000000

# Configure the buffers to find a way, the number of x size of the map (in cages geodata)
# Minimum 96, maximum - 512
PathFindBuffers = 8x96;8x128;8x160;8x192;8x256;4x288;4x320;2x384;1x512

 

Please can you tell me how can I optimize it so there won't be freeze in game ?

Regards.

14 answers to this question

Recommended Posts

  • 1
Posted (edited)
18 hours ago, lagunyve said:

Okay the settings are done, now I must check in game too.

Do you think those settings are good to add too ?

 


-XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8

 

 

I personally found than without any other parameters than max RAM allocation flag, it was running smoothly.

 

If you don't NEED a particular flag, don't use it. Simple. You probably harm your server more than you do good. AggressiveOpts for example is barely useful, if not, shady.

 

Your logs probably come from

-XX:+CMSParallelRemarkEnabled

 

https://www.jclarity.com/2013/12/11/poorly-chosen-java-hotspot-garbage-collection-flags-and-how-to-fix-them/

Edited by Tryskell
  • 1
Posted (edited)

If the freeze is cyclic, it's probably your GC under STW. You should use visualVM (which comes along JDK on the bin folder) to see if it's that.

 

20G with the wrong JVM would eventually end to a 4s delay, where everything is simply frozen.

 

L2J doesn't benefit of 20G anyway, you should reduce it to 6 to 8 max. If I'm right about it, your delays should come faster, but long lesser. If it's true, simply edit the GC called for one which doesn't use STW effect. G1 is normally the one by default for Java 9. If your L2J doesn't use at least Java 9, verify your GC on the .bat / .sh.

 

Using Java 8, my personal tests concluded CMS was the most ok GC for L2J.

 

I doubt it's anything related to geoengine itself, until you StackOverflow somewhere. If that was the case, you would have a long ass error on your logs.

 

Some readings :

https://dzone.com/articles/choosing-the-right-gc

 

-----

 

If you can do any action like speaking, if other people can do whatever they want when you are actually freezing - forget what i said, it's maybe simply your engine which takes a long time to process the given path. Which goes by a complete rework of the findPath method.

Edited by Tryskell
  • 0
Posted

As I said, freezes are not happening everytime but it happens only when I enable geodata with the specified settings.
 

As I don't really understand how those settings works, can someone tell me which options can influence performance ? Maybe pathfinding takes to much sometimes when all players in the map are moving, I don't know.

 

If I can tweak the configuration so that pathfinding is not consuming a lot, maybe it would be better ?

  • 0
Posted

@TryskellThis is my java conf actually, so I need to add a GC on it ? I use linux bash:

 

java -Xbootclasspath/p:./jsr167.jar -server -Dfile.encoding=UTF-8 -Duser.timezone="Pacific/Tahiti" -Xms20G -Xmx20G -cp ../libs/lameguard.jar:config:../libs/* com.lameguard.LameGuard l2f.gameserver.GameServer > log/stdout.log 2>&1
 

  • 0
Posted

Okay the settings are done, now I must check in game too.

Do you think those settings are good to add too ?

 

-XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8

 

  • 0
Posted

Got those errors in log sometimes:

 

1089.311: [GC (Allocation Failure) 1089.311: [ParNew: 104717K->2999K(113024K), 0.0197582 secs] 2901337K->2799709K(4780904K) icms_dc=0 , 0.0199058 secs] [Times: user=0.08 sys=0.00, real=0.02 secs]
1127.703: [GC (Allocation Failure) 1127.703: [ParNew: 103479K->2708K(113024K), 0.0223378 secs] 2900189K->2799667K(4780904K) icms_dc=0 , 0.0225367 secs] [Times: user=0.08 sys=0.00, real=0.02 secs]
1162.453: [GC (Allocation Failure) 1162.453: [ParNew: 103188K->2131K(113024K), 0.0185006 secs] 2900147K->2799203K(4780904K) icms_dc=0 , 0.0186580 secs] [Times: user=0.07 sys=0.00, real=0.02 secs]
1200.053: [GC (Allocation Failure) 1200.054: [ParNew: 102611K->2388K(113024K), 0.0365686 secs] 2899683K->2799570K(4780904K) icms_dc=0 , 0.0367199 secs] [Times: user=0.08 sys=0.00, real=0.04 secs]
1233.817: [GC (Allocation Failure) 1233.817: [ParNew: 102868K->4991K(113024K), 0.0199087 secs] 2900050K->2802285K(4780904K) icms_dc=0 , 0.0200518 secs] [Times: user=0.08 sys=0.00, real=0.02 secs]
1275.089: [GC (Allocation Failure) 1275.089: [ParNew: 105471K->5713K(113024K), 0.0228596 secs] 2902765K->2803131K(4780904K) icms_dc=0 , 0.0230125 secs] [Times: user=0.09 sys=0.00, real=0.02 secs]
1313.199: [GC (Allocation Failure) 1313.200: [ParNew: 106193K->5963K(113024K), 0.0240173 secs] 2903611K->2803489K(4780904K) icms_dc=0 , 0.0242119 secs] [Times: user=0.09 sys=0.00, real=0.03 secs]

 

  • 0
Posted
4 hours ago, lagunyve said:

Thanks.

Server is now using less RAM and we can see the improvements now. Thanks a lot @Tryskell I think you found what's wrong with my server. 

Please mark the answer that helped you solve the problem as "Correct" .

Guest
This topic is now closed to further replies.
  • Posts

    • never met a programmer that doesnt know english xD and as he said his knowledge and skills are beyond our imagination xD
    • nice work, welcome back to world of lineage development @melron 😄
    • He's likely baiting you to download his source full of backdoors indeed
    • Yeah inside router i had to enable udnp services 
    • Hello cheaters, As a team of avid developers and enthusiasts of Lineage 2, we are excited to present the L2 Control Hub, a groundbreaking plugin designed by myself and my collaborator, StinkyMadness. This innovative tool equips server administrators with powerful automation capabilities directly within the game's community board. L2 Control Hub simplifies the creation and management of automations, enabling you to customize your server operations without the need to modify the source code.   Key Features of L2 Control Hub: Robust Automation Triggers: Select from a plethora of triggers currently available, with continuous additions in the works to enhance your control options. Dynamic Conditions and Actions: Tailor your server operations with an extensive range of conditions and actions, ensuring flexible and precise control over game events and player interactions. Customizable Variables: Easily integrate server-specific variables from your database to further personalize and streamline your automations. Utilize these variables across various automation scenarios to cater to your specific server requirements. JavaScript Integration: Execute custom JavaScript codes that interact seamlessly with Java classes, bringing advanced functionalities to your server's ecosystem.   Explore L2 Control Hub in Action: We've prepared a series of video tutorials to demonstrate the capabilities of L2 Control Hub: Control Hub - Create a Simple Flow with 1 Condition and 1 Action: Get started with basic automations. Control Hub - Multiple Conditions with Multiple Actions: Explore more complex automations for detailed server management. Control Hub - Using Variables: Discover how to implement and use custom variables for tailored automations. Control Hub - Using JavaScript: Experience the power of custom scripts in enhancing your server functionality.   L2 Control Hub is currently about 70% complete, and we are actively developing and refining features. We invite you to join our ➡️ Discord community ⬅️ to engage with the development process, provide feedback, and be the first to test new features. Additionally, any updates or changes to the plugin are seamlessly delivered to all customers directly from our web server, ensuring your system is always up-to-date without the need for manual downloads.   Your game, your rules, automated. Join us in redefining server management in Lineage 2 and elevate your gaming community with unmatched automation capabilities. For more details, contact us directly to get started with L2 Control Hub.   Currently, the plugin is developed using aCis sources. We will continue with these sources until we finalize all the necessary details before proceeding to integrate with the more prominent sources available.       The L2 Control Hub is designed to extend beyond mere functional additions to your server. We are in the process of implementing a suite of advanced mechanisms, such as a vote manager capable of interfacing with any Lineage 2 voting site without requiring configuration, live statistics to provide admins with real-time insights, and an event engine that can generate any desired event within seconds. All these features will be seamlessly integrated into the module, enhancing your server management experience significantly.     Please note that L2 Control Hub will be a premium tool, reflecting the extensive features and benefits it offers. While we are finalizing the pricing structure, rest assured that we aim to deliver great value for your investment. We will announce the cost details soon on our platforms to ensure everyone is well-informed and can plan accordingly. Join us to take your server management to the next level with L2 Control Hub.     
  • Topics

×
×
  • Create New...