Benchmarking the new fiber UI#
This documentation applies to Piler enterprise edition 2.0.0
Revision #1
Publication date: 2025-SEP-26
Piler enterprise has a new web app backend. While the 1.x series relies on nginx+PHP, the 2.x series has been rewritten using Go Fiber. While the look of the UI is the same, the backend offers a much better performance.
Benchmark comparison#
The below numbers apply to a virtual machine (VM) having 2 vCPUs and 2 GB memory. Both the fiber and the nginx+php combo have been hit by the k6 performance testing tool using 50 virtual users (VU) for 30s.
The search test used an array of 5 search expressions. The view test used an array of 5 messages ranging from 6 kB to 300 kB. Also the search test included a 0.001s delay between requests.
The results#
| Type | fiber | nginx+php |
|---|---|---|
| Search | 28-29k | 9.2k |
| View | 18k | 1.7k |
The results indicate that the fiber UI outperforms the legacy UI by a factor of 3 when searching, and by a factor of 10 when retrieving emails from the storage.
Why nginx/php-fpm tops out earlier#
Context switching: PHP-FPM spawns pools of workers, each a separate process. Even with tuning, there’s higher scheduling overhead compared to Fiber goroutines.
IPC overhead: Every request goes through nginx → fastcgi interface → PHP-FPM socket. Fiber skips this layer.
Memory pressure: With 2 GB RAM, each PHP-FPM worker might use 20–50 MB under load. 50 workers could eat most of your RAM, so pm.max_children can’t be raised too high.
PHP runtime cost: Each request must bootstrap PHP, autoload, parse code paths, etc. Fiber just dispatches Go handlers in memory.
The throughput ceiling is in the PHP code execution itself (runtime overhead + DB roundtrips).
That’s why Fiber is already giving you a 3× boost with the same DB backend and hardware.