-
Notifications
You must be signed in to change notification settings - Fork 7
Hajime HPC
Hajime HPC is a way to monitor your server's performance with performance counters. This way, you can make an intelligent choice on how to improve speeds and the user experience. For players, the statistics provided not only look cool but offer a bounty of transparency into true performance levels.
Currently, this feature only works on Linux.
You'll need...
-
A Linux distro with kernel version 5.9 or higher if you care about security.*
-
A baremetal server, or a VM that provides performance counter virtualization.
-
A recent or high-end CPU to access most/all performance counters.
-
Access to the root user to assign Hajime the
CAP_PERFMON
capability.
*You may use older kernel versions if you run Hajime as root or assign it the CAP_SYS_ADMIN
capability, but this is not officially supported.
For Hajime 0.1.11, no further action is needed if your server meets the prerequisites above and you install Hajime with the install script.
If you installed it manually, then assign Hajime the CAP_PERFMON
capability with sudo setcap 'cap_perfmon+pe' hajime
.
Join the Minecraft server started by Hajime. Once you're in, use the command .perf
to show a list of all the performance counters tracked by Hajime. Use the commands .hwperf
, .swperf
, and .caperf
to access their data.
This feature is work-in-progress just like the rest of Hajime. As such, not all performance counters may be available. Some common causes of this include...
-
Not all counters being available in the CPU
-
Not enough counters available for Hajime to use
-
Resource exhaustion through a high amount of threads
-
Memory leaks or other errors
Here are all the individual events that can be recorded by Hajime as of the 0.2.0 release.
CPU cycles, CPU instructions, cache references, cache misses, branch instructions, branch misses, frontend stalled cycles, backend stalled cycles, bus cycles, pagefaults, context switches, CPU migrations, alignment faults, emulation faults, minor page faults, major page faults, L1d read accesses, L1d read misses, LLC read accesses, LLC read missses, LLC write accesses, LLC write misses, dTLB read accesses, dTLB read misses, dTLB write accesses, dTLB write misses, iTLB read accesses, iTLB read misses, dTLB prefetch accesses, dTLB prefetch misses, L1d prefetch accesses, L1d prefetch misses, L1d write accesses, L1d write misses, L1i read accesses, L1i read misses, L1i prefetch accesses, L1i prefetch misses, BPU read accesses, BPU read misses.