Test Kolibri server performance
Benchmark
You can use the following command to collect information about the device where Kolibri server is running, and details about how much of its resources it is using. This command displays a snapshot of the server state at the time the command is executed, and its output will vary depending on the current server load. In case you suspect performance problems, type this in the Terminal or Command prompt.
kolibri manage benchmark
The command will have an output similar to this:
Take a screenshot of the Terminal or Command prompt, or copy and paste the output in the community forum post.
Profile
In order to collect more than a current snapshot of Kolibri server performance, you can use the profiling command. When executed, the command will collect a series of performance indicators every 10 seconds and save them in a CSV file. Type this in the Terminal or Command prompt.
kolibri manage profile
Tip
Command collects and saves the information 60 times by default. If you want to change this value, add the --num-samples
flag with the desired number at the end.
kolibri manage profile --num-samples=100
Each log line contains this information:
Date and time of each command execution
Number of Kolibri active sessions (including guest sessions)
Number of Kolibri logged users
Number of Kolibri user interactions during the last minute
Total percentage of CPU use
Total memory use
Total available memory
Number of processes executed in the server
Percentage of CPU used by Kolibri
Percentage of memory used by Kolibri
To help us troubleshoot potential problems on your Kolibri server, locate and send us the KOLIBRI_HOME/performance/date_time_performance.csv
file.
Profile server requests
If you have the [Server]
section of the OPTIONS.INI file configured with PROFILE = 1
, the above command will additionally perform a profiling of every request made by Kolibri server, and save the results in a second log file as KOLIBRI_HOME/performance/date_time_requests_performance.csv
Each log line contains this information:
Timestamp
Request path
Time spent processing the request
Memory (in KB) used by the Kolibri process when the request came in
Memory (in KB) used by the Kolibri process when the response was sent
CPU percentage used by the Kolibri process when the request came in
CPU percentage used by the Kolibri process when the response was sent
Flag indicating if the request is the slowest one since the analysis started
Warning
Profiling server requests can consume a lot of computer resources, and potentially slow it down. For this reason you need to explicitly allow it in the options.ini
file. Without the PROFILE = 1
key, command will not profile server requests (but just the current server state), and it will not create the second CSV file.