I am currently working on a rehat6.2 intel platform and have had some interesting problems. A data base program that we run uses up shmid's every time we run the cli. I currently can run approximately 30 instances from my perl program but I start getting "shared memory device unavailable" errors if I attempt to run more. I noticed that alot of the shared memory ID's seemed to have 0 processes connected to them and that eventually they would dissappear but not very quickly. I added this as a shared memory controller to remove id's that had 0 attached and my performance increased dramatically and the number of instances could go higher.
while (1 == 1) { # #Clear any unused shared memory pages # $presult=`ipcs -m |grep -v - | grep -v bytes | grep -v dest`; @parts = split("\n", $presult); foreach $w (@parts) { print "ipcs: $w\n"; @pidparts=split(" ", $w); $thispid = $pidparts[1]; $presult1=$pidparts[5]; if ($presult1 eq 0) { print "removing ssh id: pid: -$thispid- current at +tached -$presult1-\n"; $pcmd="ipcrm shm \"$thispid\""; print "pcmd: $pcmd\n"; $presult1 = `$pcmd`; print "presult1: $presult1\n"; sleep 15; } } }
Unfortunately, what it also does ocassionally is kill shared memory id's while they are being initialized (not all, just some). Is there any way to read the contents of the shared memory page, using perl, to see what is happening and based on that knowledge choose to remove it?

In reply to Controlling Shared Memory Id's by rkac

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.