Table Of Contents
RPI Hardware
Used Hardware
Used RPI Version: RPI5 with 8GB of RAM
Used RPI Specifications:
Broadcom BCM2712 2.4GHz quad-core 64-bit Arm Cortex-A76 CPU, with cryptography extensions, 512KB per-core L2 caches and a 2MB shared L3 cache
VideoCore VII GPU, supporting OpenGL ES 3.1, Vulkan 1.2
Dual 4Kp60 HDMI® display output with HDR support
4Kp60 HEVC decoder
LPDDR4X-4267 SDRAM 8GB
Dual-band 802.11ac Wi-Fi
Bluetooth 5.0 / Bluetooth Low Energy (BLE)
microSD card slot, with support for high-speed SDR104 mode
2 × USB 3.0 ports, supporting simultaneous 5Gbps operation
2 × USB 2.0 ports
Gigabit Ethernet, with PoE+ support (requires separate PoE+ HAT)
2 × 4-lane MIPI camera/display transceivers
PCIe 2.0 x1 interface for fast peripherals (requires separate M.2 HAT or other adapter)
5V/5A DC power via USB-C, with Power Delivery support
Raspberry Pi standard 40-pin header
Real-time clock (RTC), powered from external battery
Used Memory for RPI:
Brand: Sandisk
Capacity: 128GB
Type: Extreme MicroSDXC Memory Card
Speed Class: U3, V30
Application Performance Class: A2
Maximum Read Speed: Up to 190MB/s
Used power for RPI:
Input: 100-240V
Input Frequency Range: 50/60Hz
Input Current: 600mA Max
Output voltage: 5V
Output Current: 3000mA
Power: 15W
Output Connector: Type C
Ethernet Cable
Cooler used:
None
Hardware Limitations That May Affect Performance
Thermal Throttling

Processor temperature in °C against time in seconds. At time T=T₀ stress testing was started.
When the core temperature is between 80°C and 85°C, the ARM cores will be throttled back. And the GPU will be throttled back when it exceeds 85°C
When the soft limit is reached, the clock speed is reduced from 1.4GHz to 1.2GHz
Workaround: A cooler can be used if necessary.
Limited GPU and Hardware Acceleration Support
Reason: Raspberry Pi’s integrated GPU is useless for any of the AI workloads as it isn’t compatible with CUDA language. Some LLMs and computer vision models can still run there but will be slower.
Workaround: Connect External GPUs using the PCIe slot if necessary.
Power Constraints and Stability Issues
The RPI CPU can suffer performance throttling or sudden reboots if power demand exceeds supply.
Storage Reliability
microSD storage is still less robust and slower compared to a direct‑attached SSD, but it’s more affordable hence used by most potential users.
RPI Software
Used Software
OS:
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
Software Limitations That May Affect Performance
ARM processor:
Many applications including Slips are designed for x86 architecture, so running them on ARM requires emulation or translation layers, which can reduce performance.
Workaround: Use alternatives or emulation.
The RPI has a limit for the number of clients that can connect to the RPI in AP mode at the same time. The exact number is undocumented and can vary between models.
Workaround: Use a soft limit of maximum 6 devices connected at the same time to the RPI when it’s running in AP mode.
Acceptable performance benchmarks
Current Benchmarks [7/3/2025]
To be able to determine whether Slips is going to run with full capabilities on RPI 5 or not, First, we need to know how Slips behaves under normal conditions. This is our baseline benchmark.
Testing Setup:
Testing will be done using docker, since this is the recommended way to run Slips on computers and on RPIs, and also to be able to introduce limitations.
Slips supports reading zeek logs, PCAPs, netflow files, and many different formats. We chose PCAPs to be able to mimic real-life scenarios and control the speed of the flows Slips receives to be able to benchmark different flow speeds and network loads.
Here are the specifications of the computer on which we will be doing our baseline benchmarks:
CPU: Intel(R) Xeon(R) CPU E5-2603 v3 @ 1.60GHz 12 cores
RAM: 66 GBs
Storage: 4 TBs
GPUs:
AMD FirePro W5100 (Bonaire)
Matrox G200eR2
Nvidia NVS 310 (GF119)
Since this is a very powerful server, we decided to limit some of the resources to see how slips behaves on average computers. These limits are added as limits to the docker container that’s used to run slips.
Here are the limits we will be introducing:
CPU: The container is assigned 6 cores only.
Memory: 8 GBs
Swap Memory Limit: The container can use up to 8 GB of swap space in addition to the RAM limit.
Storage: Unlimited.
Docker command used in the experiments:
docker run -dit –rm –net=host –cpus=6 –memory=8g –memory-swap=8g –shm-size=512m stratosphereips/slips:latest /bin/bash
Python Version
3.10.12
PCAPs used:
For the sake of benchmarking we will be using 4 PCAPs of different sizes.
All the given PCAPS are capturing 24 hs worth of traffic and passing it to slips in minutes, the intensity of the traffic is usually less resource intensive in everyday use.
PCAP |
Size |
Type of traffic |
|---|---|---|
CTU-Normal-6/2013-10-21_capture-1.pcap |
96MB |
Benign |
CTU-Normal-30/2017-05-01_normal.pcap |
833MB |
Benign |
CTU-Malware-Capture-Botnet-327-2/2018-03-27_win3.capture1.pcap |
67MB |
Malicious |
CTU-Malware-Capture-Botnet-67-2/2014-06-06_capture-win14.pcap |
1.1G |
Malicious |
CPU, RAM, and disk usage under normal conditions
Slips is shipped with its own performance profilers done by one of our GSoC contributors. However, the CPU profilers included in Slips are for pinpointing functions that take the most CPU time, which is not what we’re interested in in for benchmarking. And the memory profiler profiles each slips module separately, and doesn’t profile slips as a whole. So there’s no graph showing RAM usage that is aggregated for all processes.
We developed our own CPU and RAM profilers for benchmarking Slips.
CPU usage
CPU profiling is done using psutil library
CPU usage of Slips is captured every 5 minutes in this graph.

Key Takeaways:
In Normal and Malicious traffic, Slips uses less than 100% of 4 cores. This is the 350% in the graph. Each 100% represents full usage of 1 core.
Slips takes longer time and uses more CPU the more malicious the traffic gets, because malicious flows trigger more logic in Slips detection modules, branches more, and does more database calls for storing and tracking suspicious activity.
Slips analyzed the normal PCAP (CTU-Normal-6) in 14 minutes, but took 21 hours and 33 minutes for the similarly sized malicious PCAP (CTU-Malware-Capture-Botnet-327-2) due to the different traffic types.
Slips taking longer to analyze malicious PCAPs is expected.
RAM Usage
RAM profiling is done using psutil library
RAM usage is captured every 5 minutes in the following graph.

PCAP |
Size |
Type of traffic |
Average RAM |
|---|---|---|---|
CTU-Normal-6 |
96 MB |
Benign |
2 GB |
CTU-Normal-30 |
833 MB |
Benign |
2 GB |
CTU-Malware-Capture-Botnet-327-2 |
67 MB |
Malicious |
2.2 GB |
CTU-Malware-Capture-Botnet-67-2 |
1.1 GB |
Malicious |
1.9 GB |
Key Takeaways:
The average RAM usage across the four experiments was around 2 GBs, an acceptable number considering the typical RAM capacity of modern computers. It’s also reasonable given that Slips simultaneously runs two machine learning models and twelve detection/threat intelligence models in Python.
Disk usage
These numbers are measured with zeek logs rotation disabled.
PCAP |
Size |
Type of traffic |
Total Disk Usage |
Zeek log files |
Slips logs and databases |
Total number of Zeek flows |
|---|---|---|---|---|---|---|
CTU-Normal-6 |
96 MB |
Benign |
11 MB |
7.6 MB |
3.4 MB |
15248 |
CTU-Normal-30 |
833 MB |
Benign |
246 MB |
55 MB |
191 MB |
117964 |
CTU-Malware-Capture-Botnet-327-2 |
67 MB |
Malicious |
347 MB |
123 MB |
224 MB |
456869 |
CTU-Malware-Capture-Botnet-67-2 |
1.1G |
Malicious |
251 MB |
100 MB |
151 MB |
247536 |
Analysis Time
PCAP |
Size |
Type of traffic |
Analysis Time |
|---|---|---|---|
CTU-Normal-6 |
96 MB |
Benign |
9.02 minutes |
CTU-Normal-30 |
833 MB |
Benign |
5.16 hours |
CTU-Malware-Capture-Botnet-327-2 |
67 MB |
Malicious |
19.36 hours |
CTU-Malware-Capture-Botnet-67-2 |
1.1 GB |
Malicious |
7.5 hours |
Slips on RPI Benchmarks
For these experiments, Slips is running in docker on the Raspberry Pi.
The docker container uses an image built for ARM64, so no emulation is involved.
The CPU and RAM profilers used here are the same ones used in the normal profiling experiments.
Docker command used in the experiments:
docker run -dit –rm –memory=8g –memory-swap=8g –shm-size=512m –net=host –name slips stratosphereips/slips:latest /bin/bash
Note: The used RPI 5 has 8 GBs of RAM, we’re not limiting them in the docker container.
CPU, RAM, and disk usage
CPU Usage

Key Takeaways
CPU spikes at the beginning are expected due to how Slips processes the given flows. As soon as slips starts, it reads all the given flows at once, and gradually processes them. These heavy I/O operations of reading the flows from disk at the beginning followed by categorizing, profiling and passing them to detection modules may not be the main cause of the CPU spikes, but contributes greatly to them.
Clock speed reduction or some form of performance degradation for a short period of time (until the CPU spikes are flattened) may happen in the RPI if other resource-intensive programs are run alongside Slips.
Whether the Raspberry Pi can simultaneously run other resource-intensive applications alongside Slips remains under investigation and depends on the performance of Slips’ new ML models.
RAM Usage

PCAP |
Size |
Type of traffic |
Average RAM |
|---|---|---|---|
CTU-Normal-6 |
96 MB |
Benign |
646 MB |
CTU-Normal-30 |
833 MB |
Benign |
2.1 GB |
CTU-Malware-Capture-Botnet-327-2 |
67 MB |
Malicious |
2.8 GB |
CTU-Malware-Capture-Botnet-67-2 |
1.1 GB |
Malicious |
2.5 GB |
Key Takeaways
RAM usage in Slips typically remains stable until it terminates.
On average, all experiments use 2.5 GB of the available 8 GBs of RAM, leaving reasonable room for the new ML models and other applications on the RPI to run when required.
Slips uses Redis as its main cache for flow-related data. While we’re working to reduce memory usage by invalidating more cache entries, it might not be our top priority given Slips’ acceptable performance on the RPI.
Conclusion
While the RAM usage indicates capacity for running programs alongside Slips on the RPI, the CPU usage suggests that doing so could negatively impact performance of Slips and the other running programs.
Disk Usage
PCAP |
Size |
Type of traffic |
Total Disk Usage |
Zeek log files |
Slips logs and databases |
|---|---|---|---|---|---|
CTU-Normal-6 |
96MB |
Benign |
11 MB |
7.6 MB |
3.4 MB |
CTU-Normal-30 |
833MB |
Benign |
158 MB |
55 MB |
103 MB |
CTU-Malware-Capture-Botnet-327-2 |
67MB |
Malicious |
344 MB |
123 MB |
221 MB |
CTU-Malware-Capture-Botnet-67-2 |
1.1G |
Malicious |
217 MB |
100 MB |
117 MB |
Key takeaways
Log rotation of zeek logs, Slips logs and Slips SQLite database is a necessity if Slips is going to be running non-stop on the RPI’s limited SD card.
Analysis Time
PCAP |
Size |
Type of traffic |
Analysis Time |
|---|---|---|---|
CTU-Normal-6 |
96 MB |
Benign |
7.8 minutes |
CTU-Normal-30 |
833 MB |
Benign |
8.8 hours |
CTU-Malware-Capture-Botnet-327-2 |
67 MB |
Malicious |
17.3 hours |
CTU-Malware-Capture-Botnet-67-2 |
1.1 GB |
Malicious |
4 hours |
Compare Benchmarks on RPI and on normal computers and define limitations
RAM Usage Comparison

Key Takeaways
Despite the RPI experiments averaging higher RAM usage (2.5 GB) compared to a normal computer (2 GB), both memory footprints are acceptable within their operating environments.
Even though both devices have similar RAM capacity (8 GB), the overhead and efficiency of memory use can differ greatly between a RPI and a typical computer which causes the difference shown in both graphs.
Both graphs indicate that analyzing malicious captures consistently consumes more RAM than analyzing normal captures.
CPU Usage Comparison

The RPI frequently shows usage above 300% (i.e., using about 3 or all 4 cores intensely), especially for the malware datasets. This indicates that the RPI is being pushed close to its maximum capacity for a substantial portion of the analysis.
Both graphs indicate that analyzing malicious captures consistently consumes more CPU than analyzing normal captures.
Disk Usage Comparison
PCAP |
Size |
RPI Disk Usage |
Normal Computer Disk Usage |
RPI Zeek Logs |
Normal Computer Zeek Logs |
RPI Slips Logs |
Normal Computer Slips Logs |
|---|---|---|---|---|---|---|---|
CTU-Normal-6 |
96 MB |
11 MB |
11 MB |
7.6 MB |
7.6 MB |
3.4 MB |
3.4 MB |
CTU-Normal-30 |
833 MB |
158 MB |
246 MB |
55 MB |
55 MB |
103 MB |
191 MB |
CTU-Malware-Capture-Botnet-327-2 |
67 MB |
344 MB |
347 MB |
123 MB |
123 MB |
221 MB |
224 MB |
CTU-Malware-Capture-Botnet-67-2 |
1.1 G |
217 MB |
251 MB |
100 MB |
100 MB |
117 MB |
151 MB |
Analysis Time Comparison
PCAP |
Size |
RPI Analysis Time |
Normal Computer Analysis Time |
|---|---|---|---|
CTU-Normal-6 |
96 MB |
7.8 minutes |
9.02 minutes |
CTU-Normal-30 |
833 MB |
8.8 hours |
5.16 hours |
CTU-Malware-Capture-Botnet-327-2 |
67 MB |
17.3 hours |
19.36 hours |
CTU-Malware-Capture-Botnet-67-2 |
1.1 GB |
4 hours |
7.5 hours |
Despite its limited resources compared to a standard computer, the Raspberry Pi unexpectedly demonstrated better analysis time in most cases.
Ultimately, the performance comparison between the Raspberry Pi and a standard computer depends on various factors, including RAM speed, CPU frequency, and overall hardware capabilities. Our results represent an initial measurement of the Raspberry Pi’s performance, but these outcomes can vary significantly depending on system configuration and workload.
In conclusion, Slips is able to run on the Raspberry Pi . In fact, the performance results not only confirmed its viability on the platform but also exceeded our expectations.