Return-Path: X-Original-To: apmail-jmeter-user-archive@www.apache.org Delivered-To: apmail-jmeter-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 79E1510AAA for ; Sat, 19 Oct 2013 11:45:35 +0000 (UTC) Received: (qmail 52639 invoked by uid 500); 19 Oct 2013 11:45:35 -0000 Delivered-To: apmail-jmeter-user-archive@jmeter.apache.org Received: (qmail 52039 invoked by uid 500); 19 Oct 2013 11:45:33 -0000 Mailing-List: contact user-help@jmeter.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "JMeter Users List" Delivered-To: mailing list user@jmeter.apache.org Received: (qmail 51976 invoked by uid 99); 19 Oct 2013 11:45:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Oct 2013 11:45:27 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of sebbaz@gmail.com designates 209.85.212.169 as permitted sender) Received: from [209.85.212.169] (HELO mail-wi0-f169.google.com) (209.85.212.169) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Oct 2013 11:45:23 +0000 Received: by mail-wi0-f169.google.com with SMTP id cb5so3418277wib.2 for ; Sat, 19 Oct 2013 04:45:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=ArccIXuhVLNatM9XwWEkEs3WKWRvSFj2wr22OrtqemI=; b=KTXvkwyz5LWeyUQu2eleneXUgJ5MKoM8X/DAKOB4YT6ACFnW7qIZsoWRrjUC4kNr/4 cnTpEEo7Ln7M+9BNLeChHjJh/+CBmX0MIfm65xjH29ysd5HUozBbOOCr2zPsb2CI4vSo oTUpdXfFXFTNRTnBsPzAEG0eeK1M/dVLj9c7f/43PA9lUTsFDWdBezr9g/nB9zUdqDtj i621Qf6c6jeKOxSZ3i5LietKIlq1u+PXw339lrUmo2i4fm2rfqQCyyoyk4ZCaZqPUxEo OQDwtz7gPJU4yPR5e18x+lPMHFZACOBHTkqKPIBjcGVsix5meNDnRntmIX1WBHJX/gI8 6Cxw== MIME-Version: 1.0 X-Received: by 10.194.63.228 with SMTP id j4mr6333818wjs.34.1382183101436; Sat, 19 Oct 2013 04:45:01 -0700 (PDT) Received: by 10.194.24.99 with HTTP; Sat, 19 Oct 2013 04:45:01 -0700 (PDT) In-Reply-To: <9B2F95EE-308D-448F-B51D-8BDE5167C7F6@azulsystems.com> References: <9B2F95EE-308D-448F-B51D-8BDE5167C7F6@azulsystems.com> Date: Sat, 19 Oct 2013 12:45:01 +0100 Message-ID: Subject: Re: Coordinated Omission - detection and reporting ONLY From: sebb To: JMeter Users List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On 19 October 2013 02:17, Gil Tene wrote: > >> [Trying again - please do not hijack this thread.] >> >> The Constant Throughput Timer (CTT) calculates the desired wait time, >> and if this is less than zero - i.e. a sample should already have been >> generated - it could trigger the creation of a failed Assertion (or simi= lar) >> showing the time difference. N.B. ^^^^^^^^^^^ >> >> Would this be sufficient to detect all CO occurrences? > > Two issues: > > 1. It would detect that CO probably happened, but not how much of it happ= ened, Missing 1msec or 1 minute will look the same. Huh? The time difference would be reported - is that not enough? > 2. It would only detect CO in test plans that include an actual CTT (Cons= tant Throughput Timer). It won't work for other timers, or when no timers a= re used Indeed, but in such cases is there any indication of the expected transaction rate? >> If not, what other metric needs to be checked? > > There are various things you can look for. > > Our OutlierCorrector work includes a pretty elaborate CO detector. It sit= s either inline on the listener notification stream, or parses the log file= . The detector identifies sampler patterns, establishes expected interval b= etween patterns, and detects when the actual interval falls far above the e= xpected interval. This is a code change to JMeter, but a pretty localized o= ne. AIUI CO happens when the sample takes much longer than usual, thus (potentially) delaying any subseqent samples. Overlong samples can already be detected using a Delay Assertion. >> Even if it is not the only possible cause, would it be useful as a >> starting point? > > Yes. As a warning flag saying "throw away these test results". The results are not necessarily useless; at the very least they will show the load at which the system is starting to slow down. >> I am assuming that the CTT is the primary means of controlling the >> sample request rate. > > Unfortunately many test scenarios I've seen use other means. Many people = use other timers or other means for think time emulation. The CTT is not intended for think time emulation. It is intended to ensure a specific transaction rate. Think time obviously affects the transaction rate, but is not the sole determinant. >> If there are other elements that are commonly used to control the >> rate, please note them here. >> >> N.B: this thread is only for discussion of how to detect CO and how to >> report it. > > Reporting the existence of CO is an interesting starting point. But the o= nly right way to deal with such a report showing the existence of CO (with = no magnitude or other metrics) is to say " I guess the data I got is comple= te crap, so all the stats and graphs I'm seeing mean nothing". I disagree that the output is useless. The delays are reported, so one can see how badly the test was affected. If the delays are all small, then a slight adjustment of the thread count and transaction rate should eliminate them. Only if the delays are large are the results less meaningful, though they can still show the base load at which the server starts to slow down. > If you can report "how much" CO you saw, As I wrote originally, the CTT would report the time diffence (i.e. delay). > it may help a bit in determining how bad the data is, and how the stats s= hould be treated by the reader. E.g. if you know that CO totaling some amou= nt of time X in a test of length Y had occured, then you know that any perc= entile above (100 * (1-X)/Y) is completely bogus, and should be assumed to = be equal to the experienced max value. You can also take the approach that = the the rest of the percentiles should be shifted down by at least (100 * = X / Y). e.g. If you had CO that covered only 0.01% of the total test time, = that would be relatively good news. Exactly. > But if you had CO covering 5% of the test time, your measured 99%'ile is = actually the 94%'ile]. Averages are unfortunately anyone's guess when CO is= in play and not actually corrected for. > > Once you detect both the existence and the magnitude of CO, correcting fo= r it is actually pretty easy. The detection of "how much" is the semi-hard = part. Detecting the delay using the CTT is trivial; it already has to calculate it to decide how long to wait. A negative wait is obviously a missed start time. Or am I missing something here? --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org For additional commands, e-mail: user-help@jmeter.apache.org