Large scale Zoneminder
Posted: Thu Dec 06, 2012 7:29 pm
This is pretty experimental...I've run Zoneminder with 10-20 camera setups, but never anything this big. I am having a very difficult time managing the load...none of my configuration changes seem to have any impact.
I have a new Zoneminder 1.25 setup on a CentOS 6.2 64-bit system. The machine has 4 Opteron 6276 CPUs, which each have 8 hyper-threaded cores that appear as 16 cores to the OS...in other words, 32 physical cores that appear as 64 cores. The system has 32GB of RAM. It also has a 22TB SAS storage array built on RAID 10 using 2TB Constellation drives. Machine is connected to a network with 1GB backbone and 100MB PoE to the cameras. The cameras and Zoneminder are on their own dedicated VLAN. I have the /dev/shm (tempfs) set to use 24GB, and it is operating with roughly 9GB free. I also have roughly 5GB of physical memory free and the system is not utilizing any of the configured swap space. I am using libjpeg-turbo. CPU utilization is running at 3-5%, CPU load is around 50. Iftop shows me that the network utilization is around 38Mb.
I have 58 monitors...all of them connected to an Axis P3304-V. They are all configured identically...a limit of 2 frames per second, 1280x720 resolution, JPEG compression of 60 (and I am pulling the JPG feed, not the MJPEG). The camera is sending images with the timestamp, so Zoneminder is configured not to. All monitors are on continuous record, so there's no analysis being done at the server level...simple store and index. Image Buffers set to 100 (I was getting Buffer overruns at lower values). I'm not seeing errors of any kind with the current config in the logs...it's just dropping frames (rather than 2fps, I'm getting .3 to .5 fps). I have been unable to reduce the load at all by (1) lowering the frame rate from 5fps to 2fps (on both the camera and Zoneminder), (2) increasing the camera's compression of the JPGs from 30 to 60, (3) reducing the resolution from 1280x800 to 1280x720, (4) removing the timestamping that Zoneminder was doing.
I can't throw any more CPU at it, RAM doesn't seem to be the bottleneck...any ideas?
TIA,
Chip
I have a new Zoneminder 1.25 setup on a CentOS 6.2 64-bit system. The machine has 4 Opteron 6276 CPUs, which each have 8 hyper-threaded cores that appear as 16 cores to the OS...in other words, 32 physical cores that appear as 64 cores. The system has 32GB of RAM. It also has a 22TB SAS storage array built on RAID 10 using 2TB Constellation drives. Machine is connected to a network with 1GB backbone and 100MB PoE to the cameras. The cameras and Zoneminder are on their own dedicated VLAN. I have the /dev/shm (tempfs) set to use 24GB, and it is operating with roughly 9GB free. I also have roughly 5GB of physical memory free and the system is not utilizing any of the configured swap space. I am using libjpeg-turbo. CPU utilization is running at 3-5%, CPU load is around 50. Iftop shows me that the network utilization is around 38Mb.
I have 58 monitors...all of them connected to an Axis P3304-V. They are all configured identically...a limit of 2 frames per second, 1280x720 resolution, JPEG compression of 60 (and I am pulling the JPG feed, not the MJPEG). The camera is sending images with the timestamp, so Zoneminder is configured not to. All monitors are on continuous record, so there's no analysis being done at the server level...simple store and index. Image Buffers set to 100 (I was getting Buffer overruns at lower values). I'm not seeing errors of any kind with the current config in the logs...it's just dropping frames (rather than 2fps, I'm getting .3 to .5 fps). I have been unable to reduce the load at all by (1) lowering the frame rate from 5fps to 2fps (on both the camera and Zoneminder), (2) increasing the camera's compression of the JPGs from 30 to 60, (3) reducing the resolution from 1280x800 to 1280x720, (4) removing the timestamping that Zoneminder was doing.
I can't throw any more CPU at it, RAM doesn't seem to be the bottleneck...any ideas?
TIA,
Chip