Editing Server Profiling

From Eco - English Wiki

Your changes will be displayed to readers once an authorized user accepts them. (help)

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
[[File:In-Game Profiling Commands.png|thumb|595x595px|In-game Admin commands that can be used to invoke profiling sessions|alt=]][[File:EcoServer Profiling Menu.png|thumb|595x595px|Various profiling options as seen in Server UI (Windows only)|alt=]]The profiling tools allow Server Owners and Admin to run profiling sessions to gather diagnostic data that is especially useful when the server is experiencing performance problems.
[[File:In-Game Profiling Commands.png|thumb|595x595px|In-game Admin commands that can be used to invoke profiling sessions|alt=]][[File:EcoServer Profiling Menu.png|thumb|595x595px|Various profiling options as seen in Server UI (Windows only)|alt=]]The profiling tools allow [[Server|Server Owners]] and [[Admin|Admins]] to run profiling sessions to gather diagnostic data that is especially useful when server is experiencing performance problems.
You can use this generated data to complement issue reports for Strange Loop Games.


'''These instructions are valid for Update 9.6.4 and higher.'''
You can use this generated data to compliment issue reports for [[Strange Loop Games|SLG]].
'''Introduced in version 9.5.'''
==Requirements==
==Requirements==
For profiling to work, you need several prerequisites installed on your server:
For profiling to work, you need 2 [https://docs.microsoft.com/en-us/dotnet/core/diagnostics/#net-core-diagnostic-global-tools .NET Core diagnostic global tools] installed on your system:
#[https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-dump <code>dotnet-dump</code>] - to take memory dumps (see [https://docs.microsoft.com/en-us/dotnet/core/diagnostics/#net-core-diagnostic-global-tools .NET Core diagnostic global tools] and note that we don't use dotnet-trace, it doesn't provide useful output)
*[https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-dump <code>dotnet-dump</code>] - to take memory dumps
#<code>[https://www.jetbrains.com/help/profiler/Performance_Profiling__Profiling_Using_the_Command_Line.html#install-and-use-the-command-line-tool-as-a-net-core-tool dotTrace]</code> - to profile CPU
*[https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace <code>dotnet-trace</code>] - to profile CPU
You have to make sure these are installed globally or available on your [[wikipedia:PATH_(variable)|systems PATH]] so the server can run them.
You have to make sure both of the tools are installed globally or available on your [[wikipedia:PATH_(variable)|systems PATH]] so the server can run them.
== Memory dumps ==
==Memory dumps==
For when the server is consuming too much memory.
For when the server is consuming too much memory.


Line 18: Line 18:
For when the server is consuming too much CPU.
For when the server is consuming too much CPU.


CPU profiling can be initiated by:  
CPU profiling can be initiated by:
*As an admin, by issuing <code>/profiler cpu</code> command
*As an admin, by issuing <code>/profiler cpu</code> command
*Invoking <code>Profiler -> Profile CPU</code> via Server UI Menu (Windows only)
*Invoking <code>Profiler -> Profile CPU</code> via Server UI Menu (Windows only)
CPU profiling will start the <code>dotTrace</code> process, running it for '''1 minute''', capturing everything going on with the process for the time being.
CPU profiling will start the <code>dotnet-trace</code> process, running it for '''1 minute''', capturing everything going on with the process for the time being.
==Full profile ==
==Full profile==
Full profile will simply take memory dump followed by CPU profiling, as if they were invoked in succession.
Full profile will simply take memory dump followed by CPU profiling, as if they were invoked in succession.
Please note that all contributions to Eco - English Wiki are considered to be released under the CC BY-NC-SA 4.0 (see Eco:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)