pcp
[Top] [All Lists]

Re: [pcp] pcp updates: containers, qa

To: Nathan Scott <nathans@xxxxxxxxxx>
Subject: Re: [pcp] pcp updates: containers, qa
From: Mark Goodwin <mgoodwin@xxxxxxxxxx>
Date: Wed, 13 May 2015 21:56:40 +1000
Cc: PCP <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <2135868737.18350469.1431496017520.JavaMail.zimbra@xxxxxxxxxx>
References: <1009828124.17466209.1431416607069.JavaMail.zimbra@xxxxxxxxxx> <5552B428.2010604@xxxxxxxxxx> <1582823694.18245416.1431484897421.JavaMail.zimbra@xxxxxxxxxx> <1662044263.18277261.1431491325842.JavaMail.zimbra@xxxxxxxxxx> <5552E12D.5020807@xxxxxxxxxx> <2135868737.18350469.1431496017520.JavaMail.zimbra@xxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
On 05/13/2015 03:46 PM, Nathan Scott wrote:


----- Original Message -----

Lemme know if time is short & I'll prep something for qa from your earlier
recipe (tomorrow).

time is short (have to head out for an appointment). So I'll pick this up
again tonight. In the mean-time might as well commit that patch to your
tree and I'll merge to master tonight. (and craft a qa test from the
recipe)

Sounds good - thanks mate.  If you don't get to it tonight, toss it back to
me and I'll write the test tomorrow.

Here's the flat profile of pmdaroot compiled with -pg after running
pminfo -f containers.state.running  on 14662 containers. Basically
pmdaroot is disk bound reading and parsing the json for each container
below /var/lib/docker/containers (total of ~ 467 mbytes). With default
parameters, the pmda times out. After fixing that, the client times out.
When you fix that, you wait for ~ 22 seconds or so ... which isn't
actually too bad given how much json data has to be parsed.

  %   cumulative   self              self     total
 time   seconds   seconds    calls  us/call  us/call  name
 56.30      0.09     0.09    14662     6.14     6.14  jsmn_parse
 43.79      0.16     0.07    14661     4.78     4.78  docker_values_extract
  0.00      0.16     0.00  1128893     0.00     0.00  jsmneq
  0.00      0.16     0.00    14663     0.00     0.00  root_stat_time_differs
  0.00      0.16     0.00    14662     0.00    10.92  docker_value_refresh
  0.00      0.16     0.00    14661     0.00     0.00  jsmn_init
  0.00      0.16     0.00        2     0.00     0.00  docker_indom_changed
  0.00      0.16     0.00        2     0.00     0.00  lxc_indom_changed
  0.00      0.16     0.00        2     0.00     0.00  
root_refresh_container_indom
  0.00      0.16     0.00        1     0.00     0.00  docker_insts_refresh
  0.00      0.16     0.00        1     0.00     0.00  lxc_insts_refresh

And the call graph profile :

index % time    self  children    called     name
                0.00    0.16   14662/14662       root_fetchCallBack [2]
[1]    100.0    0.00    0.16   14662         docker_value_refresh [1]
                0.09    0.00   14662/14662       jsmn_parse [3]
                0.07    0.00   14661/14661       docker_values_extract [4]
                0.00    0.00   14661/14663       root_stat_time_differs [6]
                0.00    0.00   14661/14661       jsmn_init [7]
-----------------------------------------------
                                                 <spontaneous>
[2]    100.0    0.00    0.16                 root_fetchCallBack [2]
                0.00    0.16   14662/14662       docker_value_refresh [1]
-----------------------------------------------
                0.09    0.00   14662/14662       docker_value_refresh [1]
[3]     56.3    0.09    0.00   14662         jsmn_parse [3]
-----------------------------------------------
                             2008557             docker_values_extract [4]
                0.07    0.00   14661/14661       docker_value_refresh [1]
[4]     43.8    0.07    0.00   14661+2008557 docker_values_extract [4]
                0.00    0.00 1128893/1128893     jsmneq [5]
                             2008557             docker_values_extract [4]
-----------------------------------------------
                0.00    0.00 1128893/1128893     docker_values_extract [4]
[5]      0.0    0.00    0.00 1128893         jsmneq [5]
-----------------------------------------------

Maybe we could relax root_stat_time_differs() a bit.
Anyway, off to bed - merge to master tomorrow ...


<Prev in Thread] Current Thread [Next in Thread>