High CPU load - on FAST system

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
Restarting the machine for hardware acceleration is only necessary if A) you are running BI in service mode and B) You don't know how to restart the service correctly without rebooting the machine.

Restarting the machine is the dummy-proof fallback method.
 

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,897
Reaction score
21,250
Restarting the machine for hardware acceleration is only necessary if A) you are running BI in service mode and B) You don't know how to restart the service correctly without rebooting the machine.

Restarting the machine is the dummy-proof fallback method.
While that will work, one thing I've learned is that there is nothing quite like a fresh restart...like you said, dummy proof and works every time.
 

thestapler

n3wb
Joined
Jul 13, 2016
Messages
29
Reaction score
0
Hey Guys!

I put in the raid card this morning, I have it set up with 3x-RAID0 arrays, 2x 10TB and 1x 4TB. I split up the cameras to record to 2 different "new" folders (the 3rd raid0 will be for something else). There is a reason for the Raid0, but I won't go into it on here.

I didn't bother putting in a NEW and STORED, just kept them in NEW... is that a good idea? or should I have NEW and STORED on the same drive (basically the same thing, just moves pointers to a new folder so I/O won't be affected like it was the old way I had it set up).

Setting it up with HA enabled, only shows 18 cameras, the others don't even show any video... someone said you can disable HA on a per camera basis? can you enable it on a per camera? I only see Hardware decoding in the camera settings... ?

With the Raid card setup, I have noticed a slight CPU load decrease as well.. but the biggest difference I see, is that there is almost 0 I/O wait time... and much reduced I/O load... that's a HUGE benefit!
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
In the 3rd screenshot I posted earlier, you see the part where it says "Hardware decoding:" and there is a dropdown box with the value "Default". This dropdown box has options for explicitly enabling or disabling hardware decoding for the camera, and it does not require a blue iris restart for this change to take effect. Do not choose the option with "VPP". The "Default" value means the camera will use hardware accelerated decoding only if hardware accelerated decoding is enabled globally (1st screenshot shows the global option).

Some camera brands may encode H.264 a little funky such that the hardware decoder won't work, and that may be your problem. Or it could be that you've overtaxed the hardware decoder and the cameras which initialized last may have been the ones that failed to decode.
 

thestapler

n3wb
Joined
Jul 13, 2016
Messages
29
Reaction score
0
Some camera brands may encode H.264 a little funky such that the hardware decoder won't work, and that may be your problem. Or it could be that you've overtaxed the hardware decoder and the cameras which initialized last may have been the ones that failed to decode.
So, this is the case here... the cameras that weren't working with HA enabled, were the SPECO O2MD2 cameras... we use quite a few of them... so I had to set them to not using the HA, and all is well.

The 18 cameras that use HA, have reduced the CPU load by about 15-20%... going to play around with increasing the FPS on the HA cameras... currently, they are all set at 8FPS...

Thanks for your help @bp2008 ... you and @fenderman are awesome, and very helpful!
 

Bapski

Young grasshopper
Joined
Dec 25, 2016
Messages
83
Reaction score
17
By my estimation your current load is 576 megapixels per second. I am running 678 megapixels per second right now on an i7-3770K (not overclocked) at 40-50% usage. You are using 40 cameras however, while I am using 24. There may be a bit of a performance penalty for each incoming stream. Or maybe there isn't. I just don't know. One thing is for certain, your settings are not optimal otherwise your CPU load would be much lower.

Outgoing streaming from Blue Iris always requires expensive transcoding, even if you are streaming out h.264, which is why you see a noticeable increase in load from it. This is one of the reasons you should strive to keep usage well below 80% during normal running.

Anyway, regarding the settings, I'll expand on what fenderman said.

First of all, make sure you are streaming ordinary H.264. Not "H.264+" or "H.265". Blue Iris can't deal with those as efficiently as H.264.

Go here and note the highlighted settings.



You want hardware acceleration set to "Yes (H.264)". Do not choose the VideoPostProc option, as that will make things much worse. Restart Blue Iris for this change to take effect. Also set a live preview rate limit as I have shown. This only affects the local Blue Iris GUI which you have said you do not use much, so it should be fine to set it to 1 FPS for the best performance.

Now, each of your cameras should be set up for direct to disc recording in Blue Iris DVR format as shown by the highlighted settings here:



The last things I will mention are here:



The Max rate setting (which is maddening and should not be necessary) needs to be set a few FPS higher than the camera's actual FPS, because you get visual corruption in direct to disk recordings if the frame rate temporarily fluctuates higher than the Max rate setting.

Now, this is more personal choice than anything, but I uncheck the "Also use for BVR playback" box, which forces Blue Iris to use H.264 software decoding for clips instead of hardware decoding. This box is checked by default, but it causes some minor problems with clip playback so I turn it off for all my cameras. It is important to note that if you play multiple clips simultaneously using the timeline then having this box unchecked will make that require more CPU.

Lastly, since you use direct to disk, you don't need Blue Iris's timestamp overlay. You can delete that overlay via the Edit button at the bottom of the Video tab, as shown in the screenshot above. You should make sure your cameras keep accurate time via NTP (see NetTime - Network Time Synchronization Tool for a free NTP server you can run) and have the cameras embed their own timestamps so they always appear in recordings.
thank you for your above inputs.
i tried your above settings and my recorded videos have "pixelation". went over above settings and i cant seem to trace which setting i have to revert back.

prior to me changing to the above settings images where ok.
 

nocalmike

n3wb
Joined
Sep 22, 2014
Messages
8
Reaction score
1
By my estimation your current load is 576 megapixels per second. I am running 678 megapixels per second right now on an i7-3770K (not overclocked) at 40-50% usage. You are using 40 cameras however, while I am using 24. There may be a bit of a performance penalty for each incoming stream. Or maybe there isn't. I just don't know. One thing is for certain, your settings are not optimal otherwise your CPU load would be much lower.

Outgoing streaming from Blue Iris always requires expensive transcoding, even if you are streaming out h.264, which is why you see a noticeable increase in load from it. This is one of the reasons you should strive to keep usage well below 80% during normal running.

Anyway, regarding the settings, I'll expand on what fenderman said.

First of all, make sure you are streaming ordinary H.264. Not "H.264+" or "H.265". Blue Iris can't deal with those as efficiently as H.264.

Go here and note the highlighted settings.



You want hardware acceleration set to "Yes (H.264)". Do not choose the VideoPostProc option, as that will make things much worse. Restart Blue Iris for this change to take effect. Also set a live preview rate limit as I have shown. This only affects the local Blue Iris GUI which you have said you do not use much, so it should be fine to set it to 1 FPS for the best performance.

Now, each of your cameras should be set up for direct to disc recording in Blue Iris DVR format as shown by the highlighted settings here:



The last things I will mention are here:



The Max rate setting (which is maddening and should not be necessary) needs to be set a few FPS higher than the camera's actual FPS, because you get visual corruption in direct to disk recordings if the frame rate temporarily fluctuates higher than the Max rate setting.

Now, this is more personal choice than anything, but I uncheck the "Also use for BVR playback" box, which forces Blue Iris to use H.264 software decoding for clips instead of hardware decoding. This box is checked by default, but it causes some minor problems with clip playback so I turn it off for all my cameras. It is important to note that if you play multiple clips simultaneously using the timeline then having this box unchecked will make that require more CPU.

Lastly, since you use direct to disk, you don't need Blue Iris's timestamp overlay. You can delete that overlay via the Edit button at the bottom of the Video tab, as shown in the screenshot above. You should make sure your cameras keep accurate time via NTP (see NetTime - Network Time Synchronization Tool for a free NTP server you can run) and have the cameras embed their own timestamps so they always appear in recordings.
I followed your excellent guide, which dropped my cpu from 100% down to 50% I'm using 10 HikVision cameras and set the max FPS to 15 fps in each camera's web interface and 20 FPS in Blue Iris. So leave it be for a few minutes and come back and the fps for each camera in blue iris have changed the max rate back to 36 fps. I double and triple checked, but blue iris seems to be bumping it back up and subsequently maxing my CPU out again.

Thoughts anyone?

Thanks!!
 

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,897
Reaction score
21,250
I followed your excellent guide, which dropped my cpu from 100% down to 50% I'm using 10 HikVision cameras and set the max FPS to 15 fps in each camera's web interface and 20 FPS in Blue Iris. So leave it be for a few minutes and come back and the fps for each camera in blue iris have changed the max rate back to 36 fps. I double and triple checked, but blue iris seems to be bumping it back up and subsequently maxing my CPU out again.

Thoughts anyone?

Thanks!!
You may have a memory leak do to a faulty intel hd driver...search "memory leak"
 

nocalmike

n3wb
Joined
Sep 22, 2014
Messages
8
Reaction score
1
You may have a memory leak do to a faulty intel hd driver...search "memory leak"
Thanks, I'll take a look. Seem odd though that the the max frame rate setting in BI would change on its own. Memory also never runs more than 70% and is stable.
 

fenderman

Staff member
Joined
Mar 9, 2014
Messages
36,897
Reaction score
21,250
Thanks, I'll take a look. Seem odd though that the the max frame rate setting in BI would change on its own. Memory also never runs more than 70% and is stable.
Its not odd, its supposed to work that way..you need to set it in the camera...the release notes explain, the reasons for this..
 

Sammy2

Getting the hang of it
Joined
Feb 21, 2017
Messages
112
Reaction score
5
I just bookmarked this page as it has some great information in it.

I have one question about Windows 10 though. Does it support RDP and multiple concurrent sessions. There's a hack for that in Windows 7 (Professional and Ultimate only I believe). I'm thinking the Windows 10 Home version doesn't support RDP in any way at all.

TIA
 
Top