Please help to identify the bottleneck.

Support and queries relating to all previous versions of ZoneMinder
User avatar
dmit
Posts: 38
Joined: Fri Jun 17, 2005 9:16 am

Please help to identify the bottleneck.

Post by dmit »

I'm using ZM 1.21.2 on a Celeron 2600, 256 MB RAM machine. The card is a BTTV compatible (1 chip 4 input) card from Alnet Systems (works just fine as card=93). The video source is a professional Computar Day & Night Video camera connected via BNC cable.

With the help of the dump from XAWTV I configured ZM monitor to be 768x576 RGB 565. It works just perfectly, from the browser on another Linux PC I see all that 25 FPS while in monitor mode and the picture is still perfect.

By the way, does this resolution mean that it works in an interlaced mode? I see no noise or other usual artefacts even during fast motion.

The bandwidth usage on the network is about 6 Mbps. At the same time the zmc process shows about 30% CPU and nph-zms is about 23.5%. But isn't it too much, especially for zmc?..

When I switch the monitor to recording mode the things start to behave even worse. When there is some free RAM, the zma process gets about 30% CPU. But in a very short period of time (less then a minute) the RAM is exhausted, and zma gets all the free CPU cycles. So when the recording is done the average FPS never exceeds 20.

Is it all OK or I missed something?

When I was reading docs I've found that ZM can be run on a PII machine and even additional cards will not affect the performance too much.
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Most configuration that you will find that people use is at a lower FPS on the older machines since all you want is to capture a few good images. I run mine at 3 to 5 FPS for each camera so that I conserve on resorces (processor, HD space, etc...) ZMA takes alot of resorces to alalize each frame and this can depend on how many zones you have set up that can compound that issue. Also the amount of RAM you have vs how many camera you are running (don't want anything to go to swap). You can either provide a better machine to cope or slow down your capture speed.
Regards,
Cordel
User avatar
dmit
Posts: 38
Joined: Fri Jun 17, 2005 9:16 am

Post by dmit »

Yes I understand this issue, but please mention that I still have only ONE cam, so it should not be a matter if I connect 1 camera at 20 FPS or 4 cams at 5 FPS each (the latter choice should lead to even worse results I think). And I'm not using several zones, only default (the whole frame).

Another point - if the zma agent has anything to analyze even when I'm blindly recording the feed? No motion detection present.

So I'm still in doubts how can an old PII or Celeron be a usable platform for at least 5 FPS per cam and one card.

But may be I'm wrong, so please lead me to the right way.

And what about the other questions?
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Every thing comes into play a roll in the load. The image size, if it's colour it takes more resources, FPS, number of cameras, zones, and the list goes on. Your best bet is to tune it down for the system you have it installed on. There is some detail including an equation in the readme that gives an idea of the memory usage for buffers. The slowest machine I run is PIII 750 w/ 512MB Ram and I can handle four cameras at 1 FPS fine. Other things that can contribute is what options are compiled into the supporting packages and if they are tuned to the processor your using. With out going through your system to check everything leaves no easy answer to what seems like a simple question. There are ton's of factors that can very from one installation to the next including the distro used to all the different hardware it's on.
User avatar
dmit
Posts: 38
Joined: Fri Jun 17, 2005 9:16 am

Post by dmit »

Sure, but all that optimizations including distro and gcc flags will not affect the things dramatically, maybe I'll win one FPS or two, not more. Wrong options to ZM could lead to much worse results I think. And this is exactly what I'm asking for - if everything what I get is OK and I just have met the hardware limit or I'm doing something the wrong way. :)

Please don't think I blame on that wanderfull peace of software named ZM (I really like it!) but maybe we need a kind of more precise measurement techniques present, not like "it works even on an old PII".
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

You might consider that most probably use a smaller image size due to the combing effect of interlacing that most of the cards sem to do in linux. Also some use USB cams that don't produce as much detail and have differant compretion and result in a much smaller file. As for bench marks I wish there were some. I thought about putting a database up on my site to try to get some input from other users and have something somewhat like a bench mark after enough data was entered but at the moment I just don't have the time to put into it (Not the worlds fastest typer :wink: ). You would have to take every aspect into consideration from the computer to the zm-options that are set, memory, swap, method of capture, and the image size/quality.
If anyone else has the time and is willing to work on it I'll gladly put it up :D I agree, there are alot of settings in zm that can change how the system loads up.
User avatar
dmit
Posts: 38
Joined: Fri Jun 17, 2005 9:16 am

Post by dmit »

This is exactly what I'm starting to think about. May be not so interactive as you suggest, but at least a kind of a database to get an image of the things at all. We could start from a simple thing - ask all the people using a card on the BT878 chip to collect some results like this:

1) processor
2) RAM
3) capture card used
a) is this a single chip per input or not
b) FPS per one cam
c) FPS per X cams
d) color palette used
e) resolution
c) CPU used per process in different modes

This requires just one guy to be responsible for collecting and processing the stats. :)

Another kind of wise thing we can implement is putting a stats module into ZM itself, so when someone has configured his system to work OK could just push a button on the console and send the important parameters to the Phil's database.

== dream off ==

So, what about all my questions?... Would someone be so kind to answer some?.. Phil, you look like the most responsible man on the forum.... 8-D
Last edited by dmit on Mon Jul 04, 2005 8:13 pm, edited 1 time in total.
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

i am running 5 cameras across 2 single chip cards and get 4 fps per cam on the card with 2 and about 3 on then one with 3. This is on a celeron 2.2 but with 512Mb. On another test machine i have a 4 chip card (that i cant get working properly yet!) set to 25fps on each input. This machine is a 3Ghz celeron with 512Mb. When capturing 4 cams at 640x480 colour 24 the machine sits at a load of about 10-12 and reports 20 fps per input but drops lots of frams in mocord mode. I have to drop the fps to about 5 per input to get the load down to about 1, and stop it dropping loads of frames. If i change the res to 360 x 288 i can runn all 4 at 25fps at a load of about 2.2. This echos cordels comments as the demand at 640x480 is 4 times that of 320 x 240. I would try dropping the res and keeping your fps (even though you must a few Tb of storage to record any useful duration) and see if that helps. Im playing with the 3GHz celeron and will do a table of load at what freq at fps etc when i get the card to function.

James

PS a bit more mem would help have you got 256 available or is it shared with the gfx?
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Also keep in mind (I still have to research how the load is really viable) That my understanding is the better/faster the system the higher the load can go before the system is really under a load. As it was explained to me my PIII 750 a load of 4.0 is on the high end but a PIV 2.0G the high end is around 8.0. So my understanding is it's on a sliding scale. This could be wrong. If anyone can through something together I'm sure Phil would put it on his site if he can and if not I would be more than willing to create a spot on mine.
User avatar
dmit
Posts: 38
Joined: Fri Jun 17, 2005 9:16 am

Post by dmit »

Thanx for participation in the quest! UR the first man though :)

Yes, my machine shares the video RAM but it works in text mode without X etc
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

cordel in my early stages of putting my table together but at the moment i think a load of over 4 is bad for zm. Ive noticed already that above about 3 zm becomes sluggish and drops frames (not a whole section of events that happens regardless of load)
But other services are reasonable responsive (apache without zm etc) seems desktop on the machine is hit first for sluggishnes.
I will let you know. I also though hard disk speed might be important but im not so sure now as the machine hardly access the disk (unless its swapping) when the desktop is logged off. With regard to this table im putting together would a table of file sizes at differnet jpeg quality be usefull as i virtually have this completed for non interlaced res.

James
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

Yeah I have my PIII (actualy it's a Samual via II) setup headless like that. I might be able to get to doing the database but it will have to follow the server moves I have going over the next couple weeks and the new build machine that I'm putting together now :D :D
Finaly I'll be building for other distros all on virtual machines and if I screw up the build enviroment it takes me 2.3 minutes to create a new envioment insted of three four hours a shot :D :D :D :D :D :lol:
I'll see if I can get something be bland or not going. I've had that dread for atleast the last five months.
User avatar
dmit
Posts: 38
Joined: Fri Jun 17, 2005 9:16 am

Post by dmit »

cordel wrote:Also keep in mind (I still have to research how the load is really viable) That my understanding is the better/faster the system the higher the load can go before the system is really under a load. As it was explained to me my PIII 750 a load of 4.0 is on the high end but a PIV 2.0G the high end is around 8.0. So my understanding is it's on a sliding scale. This could be wrong. If anyone can through something together I'm sure Phil would put it on his site if he can and if not I would be more than willing to create a spot on mine.
Yes, the sliding scale is always the issue. But I think anyway there must be an option to manage the way zma uses the RAM. I feel something wrong in the manner it does.
User avatar
dmit
Posts: 38
Joined: Fri Jun 17, 2005 9:16 am

Hmm

Post by dmit »

I feel like we have to split the topic into two different ones: measuring the ZM performance and answering my stupid questions. :)

Should it be done by site admin or we can do it ourselves? :)
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

i thing the rule is whatever you have its gonna get used by zm. Video is incrediblet resource hungry, imagine at 640 x 480 snapshot at 90 jpeg quality is about 140k an image. 25 fps is 3.5 Meg a second, processed, analyed and stored. accross 4 cams... well you can see. shifting video at speed around a box live at that rate takes lots of power. My main rig is an fx55, with 2Gig an a raptor (36Gb) striped array and on the live cd it doesnt exactly walk it with 4 cams at high res on 25 fps. And trust me my machine handles most things chucked at it.

James
Locked