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 ...
|