Bug 1195998
Summary: | ldconfig.service runs on live boot, slowing down the boot substantially | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Adam Williamson <awilliam> |
Component: | spin-kickstarts | Assignee: | Jeroen van Meeuwen <vanmeeuwen+fedora> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | unspecified | ||
Version: | 22 | CC: | admiller, bruno, bugzilla, fedora, johannbg, jsynacek, kevin, kparal, lnykryn, massi.ergosum, mcatanzaro+wrong-account-do-not-cc, msekleta, pschindl, s, systemd-maint, vanmeeuwen+fedora, vpavlin, zbyszek |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Unspecified | ||
Whiteboard: | AcceptedFreezeException | ||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-03-07 15:46:24 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1043123 |
Description
Adam Williamson
2015-02-25 01:55:07 UTC
Proposing as an Alpha FE, on the grounds that if it's appropriate to not run this service it should be a relatively safe change and make Alpha lives boot a lot faster. ~50s boot delay on baremetal and VM is pretty icky. Fedora-Live-Workstation-x86_64-22_Alpha-TC7.iso which uses systemd-219-4. There's nothing in the journal or systemctl status that explains why this takes so long. [ 21.044998] localhost audispd[1181]: audispd initialized with q_depth=150 and 1 active plugins [ 71.871867] localhost systemd[1]: Started Rebuild Dynamic Linker Cache. # systemctl status ldconfig.service ● ldconfig.service - Rebuild Dynamic Linker Cache Loaded: loaded (/usr/lib/systemd/system/ldconfig.service; static; vendor preset: disabled) Active: active (exited) since Sat 2015-02-28 22:14:40 EST; 34min ago Docs: man:ldconfig(8) Process: 792 ExecStart=/sbin/ldconfig -X (code=exited, status=0/SUCCESS) Main PID: 792 (code=exited, status=0/SUCCESS) CGroup: /system.slice/ldconfig.service Feb 28 22:13:53 localhost systemd[1]: Starting Rebuild Dynamic Linker Cache... Feb 28 22:14:40 localhost systemd[1]: Started Rebuild Dynamic Linker Cache. Discussed at today's blocker review meeting [1]. This bug was accepted as Freeze Exception - This bug has been granted FE status. Please apply a fix before the next compose for testing. http://meetbot.fedoraproject.org/fedora-blocker-review/2015-03-02/ It takes 280 ms in my VM. It have no idea why it is so slow for some people. Anyway, this service can be safely disabled on a live image. The most obvious way would be to uninstall ldconfig.service, or to mask it. But actually a nicer option would be to touch /etc/.updated and /var/.updated after creating the image (some time after all packages have been installed and /usr will not be touched anymore). This would have the advantage that it would keep things closer to a normal installation and would also prevent any other service which is conditionalized on ConditionNeedsUpdate from needlessly running. systemd itself installs 5 of those, and not running them could shave some significant milliseconds from Live boot. sure, that can work, we can do it in spin-kickstarts or livecd-tools i guess. We do also have ConditionKernelCommandLine=!rd.live.image , I think we've used that for other stuff. So, I guess something like: diff --git a/fedora-live-base.ks b/fedora-live-base.ks index 8f2ddc2..264f118 100644 --- a/fedora-live-base.ks +++ b/fedora-live-base.ks @@ -194,6 +194,10 @@ systemctl --no-reload disable atd.service 2> /dev/null || : systemctl stop crond.service 2> /dev/null || : systemctl stop atd.service 2> /dev/null || : +# don't run ldconfig, it makes boot on live very slow +systemctl --no-reload disable ldconfig.service 2> /dev/null || : +systemctl stop ldconfig.service 2> /dev/null || : + # Mark things as configured touch /.liveimg-configured might work? I suppose I could push to rawhide and we can see how well it works there first? (In reply to Kevin Fenzi from comment #6) > So, I guess something like: > > diff --git a/fedora-live-base.ks b/fedora-live-base.ks > index 8f2ddc2..264f118 100644 > --- a/fedora-live-base.ks > +++ b/fedora-live-base.ks > @@ -194,6 +194,10 @@ systemctl --no-reload disable atd.service 2> /dev/null > || : > systemctl stop crond.service 2> /dev/null || : > systemctl stop atd.service 2> /dev/null || : > > +# don't run ldconfig, it makes boot on live very slow > +systemctl --no-reload disable ldconfig.service 2> /dev/null || : > +systemctl stop ldconfig.service 2> /dev/null || : The service is a Type=oneshot service, so it's unlikely to be running, and stopping it is probably useless. The first part would work, but only for this service. Why not do the thing I suggested in comment #c4: diff --git fedora-live-base.ks fedora-live-base.ks index 8f2ddc29c3..785c1676c6 100644 --- fedora-live-base.ks +++ fedora-live-base.ks @@ -305,6 +305,8 @@ if [ -x /usr/bin/fc-cache ] ; then fc-cache -f fi +echo 'File created by kickstart. See systemd-update-done.service(8).' \ + | tee /etc/.updated >/var/.updated %end ok, lets give it a shot. Pushed to rawhide. Will see how it does tomorrow. Seems to work. ;) I'll cherry pick it over to f22 branch at some point. I went ahead and pushed this to f22 also. Please re-open if you see it again. I can confirm that the fix prevent ldconfig from running, tested with workstation rawhide nigtly build from yesterday. Boot time is about 1min30! For some reason, NetworkManager-wait-online.service starts during boot of live images and increase the boot time too, about 30 secs. Note, the unit isn't enabled. In a local mate livecd build i mask the service and the boot time is normal again, about 30-35 secs in a VM. So it looks like that a other service starts NetworkManager-wait-online.service or there is another reason for that. But i checked dependencies of all units which are enabled, but none of them seems to start NetworkManager-wait-online.service. What about ntpdate or something like that? Mask network-online.target helps a lot but NetworkManager-wait-online.service starts nevertheless. [root@localhost liveuser]# systemd-analyze Startup finished in 1.274s (kernel) + 3.903s (initrd) + 30.755s (userspace) = 35.934s [root@localhost liveuser]# systemd-analyze blame 10.930s firewalld.service 9.441s livesys.service 8.095s accounts-daemon.service 6.350s NetworkManager-wait-online.service 3.677s rsyslog.service 3.556s gssproxy.service 2.785s proc-fs-nfsd.mount 2.490s lvm2-monitor.service 1.850s systemd-journald.service 1.849s fedora-readonly.service 1.843s dmraid-activation.service 1.820s polkit.service 1.744s systemd-logind.service 1.704s systemd-udev-settle.service 1.528s NetworkManager.service 1.475s chronyd.service 1.460s systemd-tmpfiles-setup-dev.service 1.368s fedora-import-state.service 1.338s spice-vdagentd.service 1.317s systemd-udev-trigger.service 1.266s avahi-daemon.service 1.218s tmp.mount 1.121s kmod-static-nodes.service 866ms systemd-sysctl.service 860ms mcelog.service 825ms plymouth-read-write.service 807ms udisks2.service <snip> [root@localhost liveuser]# systemctl status ntpd ntpdate.service ntpd.service [root@localhost liveuser]# systemctl status ntpdate.service ● ntpdate.service Loaded: masked (/dev/null) Active: inactive (dead) opps, sorry i meant mask ntpdate.service. OK, nfs is the culprit. Good news is that it is already fixed (at least upstream), see see-also-ed bug. confirm, i masked rpc-statd-notify.service and nfs-utils.service, boot time is OK now and NetworkManager-wait-online.service don't starts. [liveuser@localhost ~]$ systemd-analyze Startup finished in 1.310s (kernel) + 4.122s (initrd) + 25.996s (userspace) = 31.429s [liveuser@localhost ~]$ systemd-analyze blame 14.127s firewalld.service 13.048s livesys.service 12.560s accounts-daemon.service 10.961s dev-sr0.device 9.899s dev-mapper-live\x2drw.device 6.338s spice-vdagentd.service 5.985s gssproxy.service 5.979s mcelog.service 5.970s nfs-config.service 5.962s rsyslog.service 5.930s systemd-logind.service 5.892s rtkit-daemon.service 5.881s avahi-daemon.service 5.833s chronyd.service 4.457s systemd-udev-settle.service 3.072s proc-fs-nfsd.mount 2.587s lvm2-monitor.service 2.408s systemd-journald.service 2.349s polkit.service 2.222s udisks2.service 2.149s systemd-tmpfiles-setup-dev.service 2.105s fedora-readonly.service 1.770s systemd-udev-trigger.service 1.358s systemd-sysctl.service 833ms dev-mqueue.mount 753ms NetworkManager.service <snip> Confirmed that nfs-utils-1.3.2-2.0.fc22 fix the issue with mate-compiz live spin (local build). NetworkManager-wait-online.service doesn't start anymore. see https://bugzilla.redhat.com/show_bug.cgi?id=1183293#c14 Is there something planned for F21? I've the same problem with my live remix: # systemd-analyze blame 32.897s ldconfig.service 6.918s systemd-udev-settle.service 5.101s plymouth-quit-wait.service 3.042s firewalld.service 2.658s systemd-udev-hwdb-update.service 2.270s accounts-daemon.service Maybe I should apply patch proposed in comment #7 ... We don't typically change stable releases after they happen (since we don't really have a good process to respin all the media). So, yeah, I'd say apply a version of the patch to your remix. (In reply to Kevin Fenzi from comment #19) > We don't typically change stable releases after they happen (since we don't > really have a good process to respin all the media). > Because we don't pay attention to Torvlad's suggestions... ;-) > So, yeah, I'd say apply a version of the patch to your remix. OK, I see the change in recent fedora-live-base.ks Thank you We pay attention to everyone who suggests it, but talk is cheap and work is expensive. Only a couple of people have been interested in actually doing the work to do respins *properly*, never enough at one time to make it a really official project. J.B. Williams (southern_gentleman on IRC) currently does hemi-demi-semi-unofficial respins, see his blog: https://jbwillia.wordpress.com/ (In reply to Adam Williamson from comment #21) > J.B. Williams (southern_gentleman on IRC) currently > does hemi-demi-semi-unofficial respins, see his blog: > https://jbwillia.wordpress.com/ Interesting. But mine is a fully-totally-wildly-unauthorized source-only-remix: https://www.assembla.com/code/fedora-remix/subversion/nodes/ cheers |