OK, let's say that I want to monitor process X, which could be affected by repeatedly killing process Y. That is, I am attempting to 'induce' leaks.

So, I get a baseline, like say '17' open file descriptors (FDs) for process X.

Then I loop for 'n' iterations, killing process Y, waiting a bit, getting current FD count, storing it, next.

Now, I may have a list that looks like one of the following:

For example, lets use file descriptors, here are some lists of possibl +e values A = 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 +17 17 B = 17 17 17 17 17 17 17 17 17 17 17 17 16 17 17 17 17 17 17 17 17 17 +17 17 C = 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 +17 25 D = 17 20 17 20 17 20 17 20 17 20 17 20 17 20 17 20 17 20 17 20 17 20 +17 20 E = 17 20 34 29 36 22 18 25 19 19 19 43 52 37 28 19 17 17 17 20 17 27 +36 47 F = 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 +83 86 G = 17 20 20 26 25 26 30 34 38 41 44 39 42 46 50 58 52 55 55 55 55 56 +59 58 Here are some of the thoughts I have jotted down: Example A: not a leak, easy to determine, never changes Example B: not a leak, almost never changes, value only ips for a moment, may reset low value, but does not reset average value (int), so does not represent a leak, easy to determine Example C: does not appear to be a leak, almost never changes, only appears at end of data, low enough value should not change average value much, would statistics help here, to show it as an outlier? may be able to use position as an indicator, no change ever until final position out of n positions would show it to be an outlier (however, a single change earlier that did not reset could be a very slow leak, potentially, requiring more time to evaluate) NOTE: a single change anywhere, that resets, is not a leak Example D: not a leak, changes regularly, up and down the same amounts, harder to detect, can notice that the current number repeatedly drops to the low number (or thereabouts) and the current number only climbs to the max number or thereabouts (can keep average low and average max as well as running average), maybe keep counts of individual numbers or 'buckets' as well, but still possible to determine NOTE: Related, but IS a leak of some sort, would be when it always drops back to the low or thereabouts, but always or evetually always climbs to a higher max Example E: not a leak, changes regularly, but by varying amounts, ends on a high note, so would have to be mindful that it drops back down to or near the low frequently (frequency/counts) and recently (positional) Example F: IS a leak, changes regularly, always up, but by varying amounts, easy to detect (can also count increases, decreases if it helps the other cases) Example G: IS a leak, changes regularly, not every time, sometimes decreases, but relatively few decreases, continued upward trend NOTE: Should continually check that the PID of each process does not change, else the values are no longer any good!!!in which case, they will almost certainly reset to lower values, perhaps climbing again Other considerations: Want to consider the slope, percentage-wise as well as absolute...???


"Peace, love, and Perl...well, okay, mostly just Perl!" --me

Apprentice

In reply to Re^4: leak detection in other (non-perl) processes by apprentice
in thread leak detection in other (non-perl) processes by apprentice

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.