I did a fresh install of Zoneminder 1.36.10 on a Raspberry Pi 4 to take advantage of the ability to disable decoding of my cameras' 5MP and 8MP video streams and link them to the VGA streams for motion detection. My previous Zoneminder 1.34.x installation had CPU bottlenecks, and 1.36.10 freed up a lot of clock cycles to devote to higher frame rate and resolution motion detection.
For background, this is the CPU utilization for the system, a low resolution motion detection (Monitor 3, 4 fps, 1024 kbps VBR) and the linked 5MP video (Monitor 4, 8 fps, 6144 kbps)
Zoneminder 1.34, 2 5MP cameras
The decoding of the 5MP video kept a CPU near maximum and the server was limited to two 5MP cameras (a second server was dedicated to the 8MP camera). I tried to upgrade from 1.34.x to 1.36.10, but there was very high CPU iowait time that I could not diagnose; I then opted to apt purge, delete the old videos and drop the database for a fresh install. The results were worth the work.
The new installation:
Cameras
2 x Amcrest IP5M-1173E POE
2 streams at 640x480 (8 fps,1024 kbps VBR) and 2592x1944 (15 fps, 10240 kbps VBR)
1 x Amcrest IP8M-2493E POE
2 streams at 704x480 (8 fps, 1024 kbps VBR) and 3840x2160 (15 fps, 10240 kbps VBR)
Raspberry Pi Server
Canakit Raspberry Pi 8 GB
CanaKit Premium White Case (High Gloss)
Set of 3 Aluminum Heat Sinks
CanaKit Fan
1 TB Hard Disk in USB3 HD Enclosure
Software
Ubuntu 20.04 32-bit OS
Raspberry Pi OS Zoneminder was not able to recognize camera streams greater than 1080p
Zoneminder 1.36.10 installed from Launchpad repository
So far all is reasonably good, although I did notice some problems with the saved high resolution video. I'll look into that later.
As for performance, the overall CPU utilzation -- even at much higher frame and data rates -- is low and I have much lower CPU iowait utilization than in the past. As I am limited to three attachments, I post the current performance monitoring graphs in replies to this post.
ZM 1.36.10 - Raspberry Pi 4 8 GB - Ubuntu 20.04 - USB Hard Disk
Re: ZM 1.36.10 - Raspberry Pi 4 8 GB - Ubuntu 20.04 - USB Hard Disk
Below are the system CPU utilization and Gigabit Ethernet utilization for all three cameras:
I estimate the Raspberry Pi 4 can handle 8 high resolution cameras operating at or near their maximum frame rates and resolutions.
I estimate the Raspberry Pi 4 can handle 8 high resolution cameras operating at or near their maximum frame rates and resolutions.
Re: ZM 1.36.10 - Raspberry Pi 4 8 GB - Ubuntu 20.04 - USB Hard Disk
This is the Zoneminder process loads for the 8 MP camera, Monitor 1 is the low resolution motion detection video and Monitor 2 is the high resolution video linked to it with decoding disabled.
Re: ZM 1.36.10 - Raspberry Pi 4 8 GB - Ubuntu 20.04 - USB Hard Disk
This is the Zoneminder process loads for a 5 MP camera, Monitor 3 is the low resolution motion detection video and Monitor 4 is the high resolution video linked to it with decoding disabled.
Re: ZM 1.36.10 - Raspberry Pi 4 8 GB - Ubuntu 20.04 - USB Hard Disk
wow... I had no idea that raspberryPi 4 can handle that well... and I bought used 8c/16t xeon with 40GB and some dell poweredge servers for less cameras. I might invest for 90€ for raspberry pi 4 also, because those servers took 250€/year for electricity per eachsfritz wrote: ↑Thu Nov 11, 2021 5:54 pm Below are the system CPU utilization and Gigabit Ethernet utilization for all three cameras:
Zabbix_ZM136_CPU.png
Zabbix_ZM136_eth0.png
I estimate the Raspberry Pi 4 can handle 8 high resolution cameras operating at or near their maximum frame rates and resolutions.
