[Piuparts-devel] piuparts-report timings
Andreas Beckmann
anbe at debian.org
Fri Feb 22 08:58:30 UTC 2013
On 2013-02-22 01:39, Dave Steele wrote:
>> Watching the messages scroll by, "writing package templates" doesn't
>> even look like the heavy hitter - successfully-tested feels like it
>> takes longer (the log entries need to have seconds resolution)
well, for sid that's 30 MB (state-successfully-tested.html) + 6 MB (pass.html)
$ du -skh /org/piuparts.debian.org/htdocs/sid/main/source
342M /org/piuparts.debian.org/htdocs/sid/main/source
but writing these 340 MB can't "disappear" somehow ...
seconds-resolution times sid: see below
>> Your detect_well_known_errors run is maybe faster than I expected.
>> Your piuparts-report run seems way slow.
/usr/bin/time piuparts report
before rpy fix with 62 plots:
582.39user 534.54system 2:23:05elapsed 13%CPU (0avgtext+0avgdata 5667956maxresident)k
390024inputs+18548560outputs (231major+13396636minor)pagefaults 0swaps
with rpy fix and 86 plots:
601.78user 609.77system 2:15:04elapsed 14%CPU (0avgtext+0avgdata 5665480maxresident)k
240280inputs+18550120outputs (191major+13623045minor)pagefaults 0swaps
no change to memory consumption
>> Could it be available buffer space?
Intel(R) Xeon(R) CPU E31235 @ 3.20GHz, 16 GB RAM, wheezy/amd64 (+ stable + sid mix), kernel 3.7 from experimental, xfs on SAMSUNG HD103UJ 1TB hdd, no LVM
with eatmydata on a fully loaded system (8 slaves running):
08:16 source: 18358
08:16 Writing package templates in sid/main
08:19 Writing maintainer summaries in /org/piuparts.debian.org/htdocs/sid/main
08:19 Writing section index page
so (not) syncing makes a difference
>> top - 19:12:31 up 16 days, 8:25, 6 users, load average: 0.65, 0.78, 0.51
>> Tasks: 229 total, 3 running, 225 sleeping, 0 stopped, 1 zombie
>> %Cpu(s): 16.4 us, 3.8 sy, 0.0 ni, 77.9 id, 1.7 wa, 0.0 hi, 0.2 si, 0.0 st
>> KiB Mem: 10236532 total, 9265276 used, 971256 free, 640960 buffers
>> KiB Swap: 20903932 total, 153916 used, 20750016 free, 5019796 cached
>>
>> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
>> 26835 piupart+ 20 0 675m 552m 7660 R 98.1 5.5 0:22.16 piuparts-report
>> 3410 root 20 0 325m 115m 8264 S 3.3 1.2 153:30.72 Xorg
top - 08:24:28 up 10 days, 21:15, 26 users, load average: 8.83, 8.60, 8.18
Tasks: 274 total, 12 running, 262 sleeping, 0 stopped, 0 zombie
%Cpu(s): 13.0 us, 7.5 sy, 73.9 ni, 5.4 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem: 16411480 total, 15179384 used, 1232096 free, 87236 buffers
KiB Swap: 31246420 total, 2206420 used, 29040000 free, 6413828 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3994 piuparts 20 0 1110m 975m 8256 R 101.3 6.1 2:53.14 /usr/bin/python /org/piuparts.debian.org/share/piuparts/piuparts-report
thats running section #3, memory usage will grow over time
slaves stopped and with cold caches and eatmydata:
08:40:30 Running section sid/main
08:40:30 Loading and parsing Packages file
08:40:34 Fetching http://debian.local/debian/dists/sid/main/source/Sources.bz2
08:40:36 Finding log files
08:40:36 Archiving logs of obsolete packages
08:40:36 Copying log files
08:40:37 Removing old log files
08:40:37 Writing per-dir HTML pages
08:40:37 Writing counts.txt
08:40:37 successfully-tested: 38206
08:40:37 failed-testing: 74
08:40:37 cannot-be-tested: 1
08:40:37 essential-required: 61
08:40:37 waiting-to-be-tested: 0
08:40:37 waiting-for-dependency-to-be-tested: 0
08:40:37 dependency-failed-testing: 23
08:40:37 dependency-cannot-be-tested: 32
08:40:37 dependency-does-not-exist: 79
08:40:37 circular-dependency: 0
08:40:37 unknown: 0
08:40:37 unknown-preferred-alternative: 0
08:40:37 outdated: 0
08:40:37 total: 38476
08:40:37 source: 18358
08:40:37 Writing package templates in sid/main
08:44:20 Writing maintainer summaries in /org/piuparts.debian.org/htdocs/sid/main
08:44:51 Writing section index page
08:44:51 analysis template initdscript_lsb_header_issue.tpl does not exist.
...
08:44:51 analysis template unknown_failures.tpl does not exist.
08:44:51 Writing stats pages for sid/main
08:44:51 Writing page for successfully-tested
08:44:57 Writing page for failed-testing
08:44:57 Writing page for cannot-be-tested
08:44:57 Writing page for essential-required
08:44:57 Writing page for waiting-to-be-tested
08:44:57 Writing page for waiting-for-dependency-to-be-tested
08:44:57 Writing page for dependency-failed-testing
08:44:57 Writing page for dependency-cannot-be-tested
08:44:57 Writing page for dependency-does-not-exist
08:44:57 Writing page for unknown
08:44:57 Writing page for outdated
08:44:57 -------------------------------------------
slaves stopped, hot caches, eatmydata:
08:50:17 Running section sid/main
08:50:17 Loading and parsing Packages file
08:50:22 Fetching http://debian.local/debian/dists/sid/main/source/Sources.bz2
08:50:24 Finding log files
08:50:24 Archiving logs of obsolete packages
08:50:24 Copying log files
08:50:24 Removing old log files
08:50:24 Writing per-dir HTML pages
08:50:25 Writing counts.txt
08:50:25 successfully-tested: 38206
08:50:25 failed-testing: 74
08:50:25 cannot-be-tested: 1
08:50:25 essential-required: 61
08:50:25 waiting-to-be-tested: 0
08:50:25 waiting-for-dependency-to-be-tested: 0
08:50:25 dependency-failed-testing: 23
08:50:25 dependency-cannot-be-tested: 32
08:50:25 dependency-does-not-exist: 79
08:50:25 circular-dependency: 0
08:50:25 unknown: 0
08:50:25 unknown-preferred-alternative: 0
08:50:25 outdated: 0
08:50:25 total: 38476
08:50:25 source: 18358
08:50:25 Writing package templates in sid/main
08:54:04 Writing maintainer summaries in /org/piuparts.debian.org/htdocs/sid/main
08:54:42 Writing section index page
08:54:42 analysis template initdscript_lsb_header_issue.tpl does not exist.
...
08:54:42 analysis template unknown_failures.tpl does not exist.
08:54:42 Writing stats pages for sid/main
08:54:42 Writing page for successfully-tested
08:54:48 Writing page for failed-testing
08:54:48 Writing page for cannot-be-tested
08:54:48 Writing page for essential-required
08:54:48 Writing page for waiting-to-be-tested
08:54:48 Writing page for waiting-for-dependency-to-be-tested
08:54:48 Writing page for dependency-failed-testing
08:54:48 Writing page for dependency-cannot-be-tested
08:54:49 Writing page for dependency-does-not-exist
08:54:49 Writing page for unknown
08:54:49 Writing page for outdated
08:54:49 -------------------------------------------
So let's do only sid and put the output on tmpfs
There are 2.2G of logfiles in /org/piuparts.debian.org/master/sid/main/pass/
initial copying takes some time, but they can be fully cached in memory :-)
08:55:52 Running section sid/main
08:55:52 Loading and parsing Packages file
08:55:52 Fetching http://debian.local/debian/dists/sid/main/binary-amd64/Packages.bz2
08:55:59 Fetching http://debian.local/debian/dists/sid/main/source/Sources.bz2
08:56:01 Finding log files
08:56:01 Archiving logs of obsolete packages
08:56:01 Copying log files
09:01:23 Removing old log files
09:01:23 Writing per-dir HTML pages
09:01:24 Writing counts.txt
09:01:24 successfully-tested: 38206
09:01:24 failed-testing: 74
09:01:24 cannot-be-tested: 1
09:01:24 essential-required: 61
09:01:24 waiting-to-be-tested: 0
09:01:24 waiting-for-dependency-to-be-tested: 0
09:01:24 dependency-failed-testing: 23
09:01:24 dependency-cannot-be-tested: 32
09:01:24 dependency-does-not-exist: 79
09:01:24 circular-dependency: 0
09:01:24 unknown: 0
09:01:24 unknown-preferred-alternative: 0
09:01:24 outdated: 0
09:01:24 total: 38476
09:01:24 source: 18358
09:01:24 writing new file: /tmp/piuparts-htdocs/sid/main/counts.txt
09:01:24 appending line: 20130222, 38206, 74, 1, 61, 0, 0, 23, 32, 79, 0, 0, 0, 0
09:01:24 Writing package templates in sid/main
09:01:28 Writing maintainer summaries in /tmp/piuparts-htdocs/sid/main
09:01:28 Writing section index page
09:01:28 analysis template initdscript_lsb_header_issue.tpl does not exist.
...
09:01:28 analysis template unknown_failures.tpl does not exist.
09:01:29 Writing stats pages for sid/main
09:01:29 Writing page for successfully-tested
09:01:35 Writing page for failed-testing
09:01:35 Writing page for cannot-be-tested
09:01:35 Writing page for essential-required
09:01:35 Writing page for waiting-to-be-tested
09:01:35 Writing page for waiting-for-dependency-to-be-tested
09:01:35 Writing page for dependency-failed-testing
09:01:35 Writing page for dependency-cannot-be-tested
09:01:35 Writing page for dependency-does-not-exist
09:01:35 Writing page for unknown
09:01:35 Writing page for outdated
09:01:35 Writing static pages
Traceback (most recent call last):
and without need to copy:
09:09:21 Running section sid/main
09:09:21 Loading and parsing Packages file
09:09:21 Fetching http://debian.local/debian/dists/sid/main/binary-amd64/Packages.bz2
09:09:29 Fetching http://debian.local/debian/dists/sid/main/source/Sources.bz2
09:09:31 Finding log files
09:09:31 Archiving logs of obsolete packages
09:09:31 Copying log files
09:09:31 Removing old log files
09:09:31 Writing per-dir HTML pages
09:09:32 Writing counts.txt
09:09:32 successfully-tested: 38206
09:09:32 failed-testing: 74
09:09:32 cannot-be-tested: 1
09:09:32 essential-required: 61
09:09:32 waiting-to-be-tested: 0
09:09:32 waiting-for-dependency-to-be-tested: 0
09:09:32 dependency-failed-testing: 23
09:09:32 dependency-cannot-be-tested: 32
09:09:32 dependency-does-not-exist: 79
09:09:32 circular-dependency: 0
09:09:32 unknown: 0
09:09:32 unknown-preferred-alternative: 0
09:09:32 outdated: 0
09:09:32 total: 38476
09:09:32 source: 18358
09:09:32 Writing package templates in sid/main
09:09:36 Writing maintainer summaries in /tmp/piuparts-htdocs/sid/main
09:09:36 Writing section index page
09:09:36 analysis template initdscript_lsb_header_issue.tpl does not exist.
...
09:09:36 analysis template unknown_failures.tpl does not exist.
09:09:37 Writing stats pages for sid/main
09:09:37 Writing page for successfully-tested
09:09:43 Writing page for failed-testing
09:09:43 Writing page for cannot-be-tested
09:09:43 Writing page for essential-required
09:09:43 Writing page for waiting-to-be-tested
09:09:43 Writing page for waiting-for-dependency-to-be-tested
09:09:43 Writing page for dependency-failed-testing
09:09:43 Writing page for dependency-cannot-be-tested
09:09:43 Writing page for dependency-does-not-exist
09:09:43 Writing page for unknown
09:09:43 Writing page for outdated
09:09:43 Writing static pages
Traceback (most recent call last):
and dropping eatmydata does not make a difference here ...
but it clearly shows that that's an I/O problem, not a algorithmic one.
Btw, the navigation bar for 86 sections takes 8-10 KB per file, and
for most source summaries, that's > 50% file size
so back to the normal file system, eatmydata, but only 2 out of 86
sections:
09:50:54 source: 18358
09:50:54 Writing source summaries in sid/main
09:52:40 Writing 3100 maintainer summaries in /org/piuparts.debian.org/htdocs/sid/main
09:53:01 Writing section index page
so total write size matters: that was only 150 MB vs. 342 MB previously.
Andreas
More information about the Piuparts-devel
mailing list