|
Page 1 of 1
|
[ 11 posts ] |
|
Shared Memory Config TIPS
| Author |
Message |
|
tgutwin
Joined: Thu Jan 12, 2006 5:02 am Posts: 24 Location: North Vancouver, Canada
|
 Shared Memory Config TIPS
I have been fighting with a random hang memory problem after an upgrade from a FC4 to FC6 install. It ended up being my shared memory settings. See below for details, but first my system info: FC6 with a custom kernel build 2.6.21.5 build for my AMD X2 3GB (originally 1GB) RAM over 700GB disks with JFS filesystem and a logical volume manager ZM 1.22.3 3 Bosch cameras via a ProVideo PV150 - 4 Bt878 port capture card Camera settings - 384x240 with FPS=8, alarm FPS=20, buffer =40 frames & 10,20,20 warm pre and post Hauppage PVR-350 (mpeg2 vid in/out capture card)
I won't list dmesg or lspci since everything is being picked up OKAY.
The system is also running MythTV (SVN version with the MythTV Zoneminder plugin - Nice Piece Of work!). With both ZM and MythTV I have some significant (but not huge) video capture & streaming requirements. When I was running ZM on FC4 with double the buffer sizes and FPS it was happy. Other reasons forced my to update to FC6. (Video capture drivers for the capture card I am using for MythTV)
Random system hangs and slowdowns were occurring between 1-3 days.  /var/log/messages was telling me that I should decreases the buffers or slow down capture.... Which I did. To levels less than what I was running on FC4 and I was still hanging, so I knew it was something else. I followed the FAQ info on setting the Shared memory to no avail.
REMEMBER to restart httpd and ZM after changes to the shared memory settings!
I had tried many, many things but was stumped. I even grabbed and extra 2GB memory to help out, with no luck, UNTIL...
I came across and article about shared memory setting when running DB2. ( http://publib.boulder.ibm.com/infocente ... 008238.htm ). It made some statement that conflicted with those in the FAQ so I gave them a try. The essential difference was that the kernel.shmall setting is NOT in a direct memory setting in KB but in pages of memory. it is Max Pages of memory
For example: If you want to allocate a maximum memory setting to 8GB you have to convert it to the number of pages (or segments).
with a page size of 4096
NOT 8388608000 as would be suggested in the FAQ. shmmax is the max amount to allocate in one request this is is an actual memory size (as opposed to pages) set to 4GB Can anyone else confirm this is correct??? I don't want to make an update to the Wiki FAQ or a A Shared Memory page on the Wiki until I have confirmed this. I know these values are huge and will adjust them down after some burn -in time. Here is my /etc/sysctl.conf Here is my interprocess communication status NOTE that even though I set the kernel.shmall = 2048000 it is reported (as described and expected) as 8GB
My system has not hung since. So far a full 7 days and not a hint of trouble. 
_________________ ------------------------------------------------------------
Don't Let Software Push You Around... Push Back
------------------------------------------------------------
|
| Fri Jul 06, 2007 5:55 am |
|
|
|
 |
|
Kushnirenko
Joined: Mon Jun 25, 2007 7:29 pm Posts: 17
|
 shmall is indeed in pages
I can confirm that in Linux
shmmax - is in bytes - max amount of shared memory that can be allocated to one process. Default number is 32MB
shmall - is in pages - total amount of shared memory that can be used by all processes on the computer. Default number is 2097152 pages or 8GB.
When in doubt go to the source  . Indeed shm.h in linux kernel says:
Now what are the recommended values for Zonemider? Here I slightly disagree with FAQ. My understanding is that each camera will allocate one segment. So shmmax should be calclulated not for all cameras as FAQ suggests but only for one camera. For example camera with 320x240 resolution and GREY colorcode and 40 frames in ring buffer requires: 320x240 x 1byte(Grey) x 40 = 3070200 Similarly RGB24 camera would require 3 times as much 320x240 x 3bytes(RGB) x 40 = 9216000 To be safe you need to increase this number by 10% or something. Indeed ipcs for this setup (one Grey and one RGB24) says that zoneminder allocates slightly larger amount of memory
So to define shmmax pick the most high resolution camera with the biggest ringbuffer and calcluate shmmax in bytes. In the abouve example it should be something like 10MB, or 16MB if you like round numbers. In this case Linux default number 32MB (or 0x2000000) is actually fine
To define shmall take shmmax and multiply by the number of cameras and divide by 4096. To be safe you have to increase this number so that other processes can allocate shared memory too. So in this example it should be:
shmall = 16MB * 2 (cameras) * 2 (safety factor) / 4096 = 16384 (pages). Again Linux default number 2097152 pages or 8GB of memory is also fine.
|
| Sat Aug 25, 2007 7:03 am |
|
 |
|
jameswilson
Joined: Wed Jun 08, 2005 9:07 pm Posts: 5078 Location: Midlands UK
|
maybe in the setting a recommended setting based on current config, could be displayed?
_________________James Wilson
Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
|
| Sat Aug 25, 2007 1:18 pm |
|
 |
|
nunu
Joined: Fri Aug 28, 2009 5:39 pm Posts: 5
|
After troubles and tribulations, here's what I had to do to get my tvip100w-n wireless camera working. Using Zoneminder 1.24.2 with Debian Lenny.
1. First thing is first, memory settings are important, I have a P4 3.ghz machine with 2 gb of memory. I am running virtual box and install Debian Lenny, and dedicated 1gb of memory to this vm. I tried so many settings in /etc/sysctl.conf, then finally found a number that works well, which is kernel.shmmax = 256000000, I did not put in kernel.shmall in the sysctl.conf file. Previously, I had set kernel.shmmax to 128000000, which worked fine for the camera at resolution 320x240, but when I bumped it up to 640x480, it displayed a black screen or a blank screen. Make sure you restart your machine when making any memory changes. I also have a p3 450mhz 768mb of memory, and had the same experience as the p4 3ghz machine. Seems like the kernel.shmmax = 256000000 might be a good number to use.
2. Since this is a wireless camera, interference plays a great deal. I had the camera set outside the house where there was a lot more interference and the camera would stop responding after a while, I had to hard reset it. I also experience lots of camera crashes when tweaking the settings constantly, once you get settings that work for you, you should not need to tweak it much. Basically plan out your wireless channels configurations so that you get the least amount of interference with your neighbors Access Points. I brought the camera inside the house and is looking out of a window, and reconfigured my wireless channels (1,6 or 11) are the ones you should use, the wireless has been pretty flawless, getting a 70-80 percent strength signal on it. What also helped is using the tomato router firmware on my wt54g router, where I could increase the power of the antennae.
3. Here are my camera settings:
640x480
medium compression
auto frame rate
With these settings, I get a decent 5-12 fps
320x240
medium compression
auto frame rate
With these settings, I get a pretty solid 15-27 fps
4. The zoneminder camera settings were quite tricky, but I found something that eluded me for awhile. Here are the key settings below.
Source Tab/remote host path:/video/cgi
Buffers Tab/Image buffer size: 150
Buffers Tab/Warmup frames: 30
Buffers Tab/Stream image replay image buffer: 20000
One of these settings makes the viewing stable, and got rid of memory issue messages in the /var/log/messages. Not sure which one did the trick, and I might have these settings bloated, but I left these alone anyways, it may eat up memory, but at least it's stable, you can tweak these til you find a happy medium.
5. One last thing I did was to tweak the Options/Network setting in Zoneminder. I upped the http_timeout setting to 100000. Probably don't need a number that high, not exactly sure what it really does, but a setting to be experimented with. The combination of the source/buffers/options/network configurations have left my system very stable.
6. I also bought a airlink101 aic250w camera, and is basically the same camera as the tvip100w-n, but the image in lowlight is very fuzzy, but the cost was less than half ($69) of what the tvip100w-n was ($140). Configurations were the exact same, except the frame rate at 640x480 isn't as good as the tvip100w-n. Overall though, it is as stable as the tvip100w-n.
|
| Fri Aug 28, 2009 6:39 pm |
|
 |
|
snaffler
Joined: Tue Jan 25, 2011 3:10 am Posts: 1
|
 impossible
After three months of trying to get zoneminder to work and tracking down obscure forum posting to obscure website with little tweaks here and there I come to this. I feel like the monkey in 2001 staring at the dark tablet. I don't even know what this forum topic is talking about. Do I just give up and toss my bluecherry board, all of my cameras and PC? There is no way I'm changing memory settings in the kernel without totally screwing everything up.
Can't somebody make a version of linux with all of these settings already done?
|
| Tue Jan 25, 2011 3:20 am |
|
 |
|
PacoLM
Joined: Wed Dec 02, 2009 10:55 pm Posts: 556 Location: Spain
|
 Re: impossible
Don't give up!. I started to play with Linux some time ago and without experience, just reading and applying the steps, I got my ZM system working. The shared memory settings is a gray area, but depends on your setup. You only have to edit/add two values in a file (/etc/sysctl.conf) and restart the system. I'm talkign about shared memory, I do not know which are your problems with your setup.
Ask for help, this forum it's really helpful!.
PacoLM
|
| Tue Jan 25, 2011 8:20 am |
|
 |
|
MichaelTiemann
Joined: Wed Apr 20, 2011 2:04 am Posts: 14
|
 Re:
 |  |  |  | nunu wrote: After troubles and tribulations, here's what I had to do to get my tvip100w-n wireless camera working. Using Zoneminder 1.24.2 with Debian Lenny.
[...]
4. The zoneminder camera settings were quite tricky, but I found something that eluded me for awhile. Here are the key settings below.
Source Tab/remote host path:/video/cgi Buffers Tab/Image buffer size: 150 Buffers Tab/Warmup frames: 30 Buffers Tab/Stream image replay image buffer: 20000
One of these settings makes the viewing stable, and got rid of memory issue messages in the /var/log/messages. Not sure which one did the trick, and I might have these settings bloated, but I left these alone anyways, it may eat up memory, but at least it's stable, you can tweak these til you find a happy medium.
5. One last thing I did was to tweak the Options/Network setting in Zoneminder. I upped the http_timeout setting to 100000. Probably don't need a number that high, not exactly sure what it really does, but a setting to be experimented with. The combination of the source/buffers/options/network configurations have left my system very stable.
|  |  |  |  |
I, too was banging my head against the wall trying to figure out how to increase image buffer size beyond 40 without my cameras going red in the console. I turned on debugging, changed the default 40 to 41, read the logs, and found that Zoneminder was unhappy when it tried to request 41M of shm when only 40M was available. Looking at the source code of the error message, it was clear what was going wrong: once Zoneminder opens a shared memory segment, that's it. What it should do is drop and reallocate the shared memory when one of the parameters related to the shared memory allocation changes. Happily, a restart caused Zoneminder to properly allocate the 41 image buffers I requested, and knowing that, I could easily change the image buffer count to 80, restart Zoneminder again, and now I have lots of pre-roll for my events. I've now dropped my shmmax down to a reasonable number...unreasonable numbers don't help once Zoneminder fixes its size on startup.
|
| Wed Apr 20, 2011 5:31 pm |
|
 |
|
lucy123
Joined: Sun Jan 01, 2012 9:19 am Posts: 3
|
 Re: impossible
I feel exactly like this guy. I have tried to solve the problem by following the solutions offered on this board and can't get zoneminder to work....I feel like an idiot trying to figure this out because half of the solutions, I don't even know what they are talking about! Is there a website that is made for idiots like me?
_________________ "If you are afraid of failure, then you will fail" - by me
|
| Sun Jan 01, 2012 9:23 am |
|
 |
|
bb99
Joined: Wed Apr 02, 2008 1:04 am Posts: 833
|
 Re: Shared Memory Config TIPS
Lucy, there's no magic here! I used to rely on user RDMelin to supply LiveCD's for the versions as they were upgraded; tear them apart to see how he made them work then do the same for what I wanted. He hasn't posted one since ZMLarch 1.24.2, which worked beautifully! Last build I feel good with is the 1.24.2 against Fedora 12 (wiki: fedora: "the easy way" or seach forums for "flowers for candy"). It's rock solid and works well on older equipment. I do build almost everything that hits the forums but mostly run into problems; it's got to work as posted or you won't hear it from me.
|
| Mon Jan 02, 2012 7:46 am |
|
 |
|
berton32
Joined: Sat Jul 14, 2012 5:01 pm Posts: 3
|
 Re: Shared Memory Config TIPS
Hey i want to change the memory settings of my new laptop of Dell. But i am unable to do so. Can any one here help me out!!
_________________Buy Pakistani dresses & Indian dresses & bride dresses from The Trendy Style dress shop
|
| Sat Jul 14, 2012 5:05 pm |
|
 |
|
bb99
Joined: Wed Apr 02, 2008 1:04 am Posts: 833
|
 Re: Shared Memory Config TIPS
|
| Sat Jul 14, 2012 6:44 pm |
|
|
|
Page 1 of 1
|
[ 11 posts ] |
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|