So, after my epic 20+ minute offline update of 245 packages, last night I decided to look at some profiling numbers. All my testing was done using git master PackageKit (for the new strace support) on an otherwise unmodified Fedora 20 of a snapshot from last week. For the strace I chose to update two packages, otherwise the strace -tt output went maaaasive. Some salient points:
- yum opens and closes the rpmdb 6692 times (that’s about 6690 more than it needs to) –we’re investigating why
- fdatasync and fsync are killing us:
duration(ms) | system call |
805.749 | fdatasync(17) |
752.828 | fsync(27) |
658.659 | fdatasync(9) |
614.367 | fdatasync(15) |
598.182 | fdatasync(33) |
535.642 | wait4(903, [{WIFEXITED(s) && WEXITSTATUS(s) = |
423.247 | wait4(911, [{WIFEXITED(s) && WEXITSTATUS(s) = |
368.85 | fsync(22) |
309.556 | stat(“/var/lib/yum/yumdb/g/gvfs-fuse-1.18.3-1.fc20-x86_64/checksum_type” |
217.877 | fdatasync(18) |
179.002 | close(23) |
The full strace log is here (warning, huge) if you’re interested. I’ve got some other work to be doing today, but I’ll continue to work on this at the weekend.