Skip to content

Panel benchmarks ​

Performance results for the Calagopus panel, measured against five other panels on identical hardware. Each chart compares every panel across every test configuration.

For the node agent that runs game servers, see daemon benchmarks.

Click a panel to show or hide it. Dots match the bar colours.

CPU limit
peak throughput · 8c
228k req/s
228kCalagopus
201kPufferPanel
1,450FeatherPanel
1,168Pterodactyl
810Hydrodactyl
541Pelican
avg response · 8c
1.7 ms
1.7 msCalagopus
1.9 msPufferPanel
260 msFeatherPanel
322 msPterodactyl
462 msHydrodactyl
682 msPelican
peak memory · 8c
69 MiB
worst case under load
54 MiBPufferPanel
69 MiBCalagopus
125 MiBPterodactyl
178 MiBFeatherPanel
186 MiBHydrodactyl
452 MiBPelican

Headline figures come from settings (unauth), the one scenario every panel answers with real 200s. The authenticated scenarios are dominated by each panel's own rate limiting, so they are not comparable as throughput. How this was measured

Throughput ​

Requests per second

↑ Higher is better - more requests served per second.

View this chart's data as a table
SystemCalagopus (req/s)FeatherPanel (req/s)Hydrodactyl (req/s)Pelican (req/s)Pterodactyl (req/s)PufferPanel (req/s)
9900X228422.31449.9809.8541.01168.2201497.3
EPYC 7443P82971.8706.4315.2210.5432.673285.3
2× E5-2680v247226.6139.8112.469.5148.012903.4
i5-12500130520.91076.2498.0329.5721.3147382.5
Altra Q80-3068419.4667.4315.2235.6459.247021.2

Latency ​

↓ Lower is better - faster average response.

View this chart's data as a table
SystemCalagopus (ms)FeatherPanel (ms)Hydrodactyl (ms)Pelican (ms)Pterodactyl (ms)PufferPanel (ms)
9900X1.7259.6461.8681.5322.41.9
EPYC 7443P4.6523.41148.11672.6850.05.2
2× E5-2680v28.12436.22994.24534.62316.129.6
i5-125002.9347.6741.01102.8518.52.6
Altra Q80-305.6553.81149.31512.2800.28.1

CPU cost per request ​

CPU time per response

↓ Lower is better - less CPU burned per response, with the idle floor removed.

View this chart's data as a table
SystemCalagopus (cpu-ms)FeatherPanel (cpu-ms)Hydrodactyl (cpu-ms)Pelican (cpu-ms)Pterodactyl (cpu-ms)PufferPanel (cpu-ms)
9900X0.03405.59.814.66.80.0250
EPYC 7443P0.093011.324.637.918.40.0760
2× E5-2680v20.16157.170.9109.453.90.370
i5-125000.05407.416.024.111.00.0320
Altra Q80-300.10712.023.533.916.60.0990

Reading the CPU charts

On settings (unauth), Calagopus spends 0.02 to 0.16 ms per request and the PHP panels spend 2 to 138 ms, two to three orders of magnitude more. PufferPanel, the other compiled panel, is in the same class as Calagopus and slightly cheaper on all but four configurations.

This matters most when the panel shares a box with game servers. A game server runs under a hard CPU quota and a tick deadline, so time taken from it is lost rather than delayed. A PHP panel under load takes enough to notice. The daemon always runs next to the game servers, so the same argument applies to it more strongly.

Memory ​

Resting (idle)

↓ Lower is better - footprint with no traffic, sampled before the run.

View this chart's data as a table
SystemCalagopus (MiB)FeatherPanel (MiB)Hydrodactyl (MiB)Pelican (MiB)Pterodactyl (MiB)PufferPanel (MiB)
9900X54.758.9100.0173.998.416.4
EPYC 7443P61.851.381.1125.674.216.4
2× E5-2680v261.761.0100.1207.398.316.3
i5-1250061.860.797.8174.896.116.5
Altra Q80-3059.061.4100.1174.798.016.4
While serving load

↓ Lower is better - worst-case footprint on settings (unauth).

View this chart's data as a table
SystemCalagopus (MiB)FeatherPanel (MiB)Hydrodactyl (MiB)Pelican (MiB)Pterodactyl (MiB)PufferPanel (MiB)
9900X68.9177.7139.6383.6123.451.5
EPYC 7443P69.3152.4112.2281.6101.848.7
2× E5-2680v268.0176.1140.1316.4124.752.5
i5-1250069.4158.6186.3329.1121.153.8
Altra Q80-3063.5170.9138.3451.7123.754.2

Reading the memory charts

The gap between the idle and peak charts is what a panel costs above its resting footprint. Calagopus stays within about 15 MiB of idle, and PufferPanel starts smaller and ends up in the same range. The PHP panels grow: on the Ryzen at eight CPUs, Pelican rests at 174 MiB and reaches 384 MiB under load.

Test setup ​

Methodology

Every panel runs from its official :latest Docker image (as of 2026-10-04) with no configuration beyond initial setup, driven by our open-source benchmarking suite. Each one is swept across CPU limits of 1, 2, 4 and 8 CPUs while its container's CPU and memory are sampled. Each scenario holds 384 concurrent connections for 10 seconds after a 1-second warmup (the suite defaults to 32; this run passed -c 384) against three endpoints: public settings, account details and the server list. Panels keep their default rate limiting, so the two authenticated endpoints mostly return 429s and their throughput measures how fast a panel refuses. This is a saturation test of each panel's fixed cost per request, so the ratios between panels compare overhead, not how many users a panel can serve.

Only the panel's own container is limited and measured. Databases and caches run unlimited and unmeasured, so work a panel pushes into them is free here.

Memory is anon + shmem, excluding page cache and slab. cpu-ms is CPU time per request with the idle floor subtracted. Unlike CPU percent, it keeps meaning something once a panel hits its quota, and lower is better.

Panels tested ​

Calagopus1.2.4
FeatherPanel1.3.7.10
Hydrodactyl6.4.1
Pelican1.0.0-beta38
Pterodactyl1.15.1
PufferPanel3.0.9

Test environments ​

Ryzen 9 9900XAMD Ryzen 9 9900X · DDR5-6000
panelpeak cpupeak mem
Calagopus796%150 MiB
FeatherPanel847%204 MiB
Hydrodactyl812%214 MiB
Pelican873%461 MiB
Pterodactyl809%192 MiB
PufferPanel528%64 MiB
EPYC 7443PAMD EPYC 7443P · DDR4-2666
panelpeak cpupeak mem
Calagopus792%102 MiB
FeatherPanel847%174 MiB
Hydrodactyl805%185 MiB
Pelican868%415 MiB
Pterodactyl813%148 MiB
PufferPanel583%61 MiB
2× Xeon E5-2680 v22× Intel Xeon E5-2680 v2 · DDR3-1600
panelpeak cpupeak mem
Calagopus780%79 MiB
FeatherPanel821%193 MiB
Hydrodactyl806%221 MiB
Pelican828%613 MiB
Pterodactyl807%205 MiB
PufferPanel497%61 MiB
Core i5-12500Intel Core i5-12500 · DDR4-3200
panelpeak cpupeak mem
Calagopus732%117 MiB
FeatherPanel823%184 MiB
Hydrodactyl809%201 MiB
Pelican825%457 MiB
Pterodactyl809%198 MiB
PufferPanel496%63 MiB
Ampere Altra Q80-30Ampere Altra Q80-30 · DDR4-2133
panelpeak cpupeak mem
Calagopus778%82 MiB
FeatherPanel826%183 MiB
Hydrodactyl808%220 MiB
Pelican825%467 MiB
Pterodactyl797%193 MiB
PufferPanel510%63 MiB

Expand a system for each panel's peaks, the highest values observed across all CPU configs and scenarios on that system.

Data ​

Where the numbers come from

Every figure here comes from the suite's JSON reports (pnpm run bench <target> --json), checked into the site repository as one typed file per panel and system, with each scenario's load profile, sampled CPU and memory, and the suite's notes. The import script rounds to three decimals and drops per-run timings and failure strings. The reports record each panel's self-reported version, but not the suite commit or image digests.

Detailed comparisons ​

Raw numbers are only part of the picture. For feature-by-feature breakdowns against specific panels, see Calagopus vs Pterodactyl, Calagopus vs Pelican, and Calagopus vs AMP. For file-manager and archive performance, see daemon benchmarks.