Concurrent execution of rc-scripts with rcorder(8)

Buganini buganini at gmail.com
Wed Aug 24 13:32:01 UTC 2011


rcexecr generate time table like this:

# env ARG0=\? ARG1=start rcexecr /etc/rc.d/*
1	beg	/etc/rc.d/dhclient start
1	beg	/etc/rc.d/rctl start
1	beg	/etc/rc.d/natd start
1	beg	/etc/rc.d/ugidfw start
1	beg	/etc/rc.d/sysctl start
2	end	/etc/rc.d/sysctl
3	beg	/etc/rc.d/hostid start
4	end	/etc/rc.d/hostid
5	beg	/etc/rc.d/zvol start
6	end	/etc/rc.d/zvol
7	beg	/etc/rc.d/dumpon start
8	end	/etc/rc.d/dumpon
9	beg	/etc/rc.d/ddb start
10	end	/etc/rc.d/ddb
11	beg	/etc/rc.d/initrandom start
12	end	/etc/rc.d/initrandom
13	beg	/etc/rc.d/gbde start
13	beg	/etc/rc.d/ccd start
13	beg	/etc/rc.d/encswap start
13	beg	/etc/rc.d/geli start
14	end	/etc/rc.d/gbde
14	end	/etc/rc.d/encswap
14	end	/etc/rc.d/geli
14	end	/etc/rc.d/ccd
15	beg	/etc/rc.d/swap1 start
16	end	/etc/rc.d/swap1
17	beg	/etc/rc.d/fsck start
18	end	/etc/rc.d/fsck
19	beg	/etc/rc.d/root start
20	end	/etc/rc.d/root
21	beg	/etc/rc.d/serial start
21	beg	/etc/rc.d/mdconfig start
21	beg	/etc/rc.d/sppp start
21	beg	/etc/rc.d/nsswitch start
21	beg	/etc/rc.d/gssd start
21	beg	/etc/rc.d/hostid_save start
21	beg	/etc/rc.d/atm1 start
22	end	/etc/rc.d/hostid_save
22	end	/etc/rc.d/mdconfig
23	beg	/etc/rc.d/mountcritlocal start
24	end	/etc/rc.d/mountcritlocal
25	beg	/etc/rc.d/zfs start
26	end	/etc/rc.d/zfs
27	beg	/etc/rc.d/FILESYSTEMS start
28	end	/etc/rc.d/FILESYSTEMS
29	beg	/etc/rc.d/hostname start
29	beg	/etc/rc.d/ip6addrctl start
29	beg	/etc/rc.d/geli2 start
29	beg	/etc/rc.d/kldxref start
29	beg	/etc/rc.d/kld start
29	beg	/etc/rc.d/ipfilter start
29	beg	/etc/rc.d/netoptions start
29	beg	/etc/rc.d/addswap start
29	beg	/etc/rc.d/ipsec start
30	end	/etc/rc.d/ipfilter
30	end	/etc/rc.d/kld
31	beg	/etc/rc.d/ipnat start
31	beg	/etc/rc.d/var start
32	end	/etc/rc.d/ipnat
32	end	/etc/rc.d/var
33	beg	/etc/rc.d/ipfs start
33	beg	/etc/rc.d/random start
33	beg	/etc/rc.d/cleanvar start
34	end	/etc/rc.d/hostname
34	end	/etc/rc.d/random
35	beg	/etc/rc.d/ipmon start
35	beg	/etc/rc.d/adjkerntz start
35	beg	/etc/rc.d/mixer start
36	end	/etc/rc.d/atm1
36	end	/etc/rc.d/serial
36	end	/etc/rc.d/ip6addrctl
36	end	/etc/rc.d/netoptions
36	end	/etc/rc.d/adjkerntz
36	end	/etc/rc.d/kldxref
36	end	/etc/rc.d/sppp
36	end	/etc/rc.d/ipfs
36	end	/etc/rc.d/cleanvar
37	beg	/etc/rc.d/netif start
38	end	/etc/rc.d/netif
39	beg	/etc/rc.d/ppp start
39	beg	/etc/rc.d/rtsold start
39	beg	/etc/rc.d/faith start
39	beg	/etc/rc.d/pfsync start
39	beg	/etc/rc.d/pflog start
39	beg	/etc/rc.d/devd start
39	beg	/etc/rc.d/static_arp start
39	beg	/etc/rc.d/stf start
39	beg	/etc/rc.d/bridge start
39	beg	/etc/rc.d/resolv start
39	beg	/etc/rc.d/atm2 start
40	end	/etc/rc.d/devd
40	end	/etc/rc.d/atm2
40	end	/etc/rc.d/pfsync
40	end	/etc/rc.d/pflog
41	beg	/etc/rc.d/defaultroute start
41	beg	/etc/rc.d/atm3 start
41	beg	/etc/rc.d/pf start
41	beg	/etc/rc.d/ipfw start
42	end	/etc/rc.d/faith
42	end	/etc/rc.d/ppp
42	end	/etc/rc.d/stf
42	end	/etc/rc.d/pf
43	beg	/etc/rc.d/routing start
44	end	/etc/rc.d/routing
45	beg	/etc/rc.d/mroute6d start
45	beg	/etc/rc.d/route6d start
45	beg	/etc/rc.d/routed start
45	beg	/etc/rc.d/mrouted start
46	end	/etc/rc.d/routed
46	end	/etc/rc.d/resolv
46	end	/etc/rc.d/rtsold
46	end	/etc/rc.d/ipfw
46	end	/etc/rc.d/mroute6d
46	end	/etc/rc.d/nsswitch
46	end	/etc/rc.d/defaultroute
46	end	/etc/rc.d/mrouted
46	end	/etc/rc.d/route6d
47	beg	/etc/rc.d/NETWORKING start
48	end	/etc/rc.d/NETWORKING
49	beg	/etc/rc.d/pppoed start
49	beg	/etc/rc.d/kerberos start
49	beg	/etc/rc.d/netwait start
49	beg	/etc/rc.d/nfsuserd start
50	end	/etc/rc.d/kerberos
50	end	/etc/rc.d/ipsec
50	end	/etc/rc.d/netwait
51	beg	/etc/rc.d/mountcritremote start
51	beg	/etc/rc.d/nfscbd start
51	beg	/etc/rc.d/kadmind start
52	end	/etc/rc.d/kadmind
52	end	/etc/rc.d/mountcritremote
53	beg	/etc/rc.d/motd start
53	beg	/etc/rc.d/wpa_supplicant start
53	beg	/etc/rc.d/tmp start
53	beg	/etc/rc.d/newsyslog start
53	beg	/etc/rc.d/mdconfig2 start
53	beg	/etc/rc.d/ldconfig start
53	beg	/etc/rc.d/kpasswdd start
53	beg	/etc/rc.d/hostapd start
53	beg	/etc/rc.d/gptboot start
53	beg	/etc/rc.d/dmesg start
53	beg	/etc/rc.d/devfs start
53	beg	/etc/rc.d/archdep start
53	beg	/etc/rc.d/accounting start
54	end	/etc/rc.d/newsyslog
54	end	/etc/rc.d/tmp
54	end	/etc/rc.d/archdep
55	beg	/etc/rc.d/virecover start
55	beg	/etc/rc.d/syslogd start
55	beg	/etc/rc.d/cleartmp start
55	beg	/etc/rc.d/abi start
56	end	/etc/rc.d/syslogd
57	beg	/etc/rc.d/savecore start
57	beg	/etc/rc.d/localpkg start
57	beg	/etc/rc.d/power_profile start
57	beg	/etc/rc.d/auditd start
57	beg	/etc/rc.d/pwcheck start
57	beg	/etc/rc.d/bsnmpd start
57	beg	/etc/rc.d/hastd start
58	end	/etc/rc.d/mdconfig2
58	end	/etc/rc.d/savecore
58	end	/etc/rc.d/abi
58	end	/etc/rc.d/devfs
58	end	/etc/rc.d/ldconfig
58	end	/etc/rc.d/ipmon
59	beg	/etc/rc.d/SERVERS start
60	end	/etc/rc.d/SERVERS
61	beg	/etc/rc.d/ipxrouted start
61	beg	/etc/rc.d/named start
62	end	/etc/rc.d/named
63	beg	/etc/rc.d/ntpdate start
64	end	/etc/rc.d/ntpdate
65	beg	/etc/rc.d/rpcbind start
66	end	/etc/rc.d/rpcbind
67	beg	/etc/rc.d/nisdomain start
67	beg	/etc/rc.d/nfsclient start
68	end	/etc/rc.d/nisdomain
69	beg	/etc/rc.d/ypserv start
70	end	/etc/rc.d/ypserv
71	beg	/etc/rc.d/ypxfrd start
71	beg	/etc/rc.d/ypupdated start
71	beg	/etc/rc.d/ypbind start
72	end	/etc/rc.d/ypbind
73	beg	/etc/rc.d/ypset start
74	end	/etc/rc.d/ypset
74	end	/etc/rc.d/nfsclient
75	beg	/etc/rc.d/yppasswdd start
75	beg	/etc/rc.d/keyserv start
75	beg	/etc/rc.d/quota start
75	beg	/etc/rc.d/amd start
76	end	/etc/rc.d/quota
77	beg	/etc/rc.d/mountd start
78	end	/etc/rc.d/nfsuserd
78	end	/etc/rc.d/gssd
78	end	/etc/rc.d/mountd
79	beg	/etc/rc.d/nfsd start
80	end	/etc/rc.d/nfsd
81	beg	/etc/rc.d/statd start
82	end	/etc/rc.d/statd
83	beg	/etc/rc.d/lockd start
84	end	/etc/rc.d/virecover
84	end	/etc/rc.d/cleartmp
84	end	/etc/rc.d/hastd
84	end	/etc/rc.d/dmesg
84	end	/etc/rc.d/kpasswdd
84	end	/etc/rc.d/keyserv
84	end	/etc/rc.d/auditd
84	end	/etc/rc.d/pppoed
84	end	/etc/rc.d/pwcheck
84	end	/etc/rc.d/lockd
84	end	/etc/rc.d/amd
84	end	/etc/rc.d/ipxrouted
84	end	/etc/rc.d/accounting
84	end	/etc/rc.d/atm3
85	beg	/etc/rc.d/DAEMON start
86	end	/etc/rc.d/DAEMON
87	beg	/etc/rc.d/ftp-proxy start
87	beg	/etc/rc.d/sdpd start
87	beg	/etc/rc.d/rwho start
87	beg	/etc/rc.d/rtadvd start
87	beg	/etc/rc.d/timed start
87	beg	/etc/rc.d/ubthidhci start
87	beg	/etc/rc.d/hcsecd start
87	beg	/etc/rc.d/rarpd start
87	beg	/etc/rc.d/bootparams start
87	beg	/etc/rc.d/watchdogd start
87	beg	/etc/rc.d/powerd start
87	beg	/etc/rc.d/ntpd start
87	beg	/etc/rc.d/apm start
87	beg	/etc/rc.d/nscd start
87	beg	/etc/rc.d/moused start
87	beg	/etc/rc.d/mountlate start
87	beg	/etc/rc.d/lpd start
87	beg	/etc/rc.d/local start
88	end	/etc/rc.d/sdpd
88	end	/etc/rc.d/apm
88	end	/etc/rc.d/ubthidhci
88	end	/etc/rc.d/hcsecd
89	beg	/etc/rc.d/rfcomm_pppd_server start
89	beg	/etc/rc.d/bthidd start
89	beg	/etc/rc.d/apmd start
89	beg	/etc/rc.d/bluetooth start
90	end	/etc/rc.d/rfcomm_pppd_server
90	end	/etc/rc.d/mountlate
90	end	/etc/rc.d/motd
90	end	/etc/rc.d/lpd
90	end	/etc/rc.d/local
90	end	/etc/rc.d/nscd
90	end	/etc/rc.d/ntpd
90	end	/etc/rc.d/powerd
90	end	/etc/rc.d/rarpd
90	end	/etc/rc.d/rctl
90	end	/etc/rc.d/rtadvd
90	end	/etc/rc.d/rwho
90	end	/etc/rc.d/timed
90	end	/etc/rc.d/ugidfw
90	end	/etc/rc.d/bthidd
90	end	/etc/rc.d/bootparams
90	end	/etc/rc.d/apmd
90	end	/etc/rc.d/yppasswdd
91	beg	/etc/rc.d/LOGIN start
92	end	/etc/rc.d/LOGIN
93	beg	/etc/rc.d/othermta start
93	beg	/etc/rc.d/ftpd start
93	beg	/etc/rc.d/msgs start
93	beg	/etc/rc.d/inetd start
93	beg	/etc/rc.d/sshd start
93	beg	/etc/rc.d/syscons start
93	beg	/etc/rc.d/sendmail start
93	beg	/etc/rc.d/cron start
93	beg	/etc/rc.d/jail start
94	end	/etc/rc.d/cron
94	end	/etc/rc.d/localpkg
94	end	/etc/rc.d/jail
95	beg	/etc/rc.d/bgfsck start
95	beg	/etc/rc.d/securelevel start
95	end	/etc/rc.d/gptboot
95	end	/etc/rc.d/hostapd
95	end	/etc/rc.d/mixer
95	end	/etc/rc.d/inetd
95	end	/etc/rc.d/ypupdated
95	end	/etc/rc.d/bsnmpd
95	end	/etc/rc.d/bridge
95	end	/etc/rc.d/bluetooth
95	end	/etc/rc.d/bgfsck
95	end	/etc/rc.d/power_profile
95	end	/etc/rc.d/othermta
95	end	/etc/rc.d/watchdogd
95	end	/etc/rc.d/wpa_supplicant
95	end	/etc/rc.d/ypxfrd
95	end	/etc/rc.d/nfscbd
95	end	/etc/rc.d/moused
95	end	/etc/rc.d/addswap
95	end	/etc/rc.d/natd
95	end	/etc/rc.d/ftp-proxy
95	end	/etc/rc.d/securelevel
95	end	/etc/rc.d/sendmail
95	end	/etc/rc.d/sshd
95	end	/etc/rc.d/ftpd
95	end	/etc/rc.d/dhclient
95	end	/etc/rc.d/geli2
95	end	/etc/rc.d/static_arp
95	end	/etc/rc.d/syscons
95	end	/etc/rc.d/msgs


2011/8/24 Dirk-Willem van Gulik <dirkx at webweaving.org>:
>
> On 24 Aug 2011, at 10:08, Vitaly Magerya wrote:
>
>> One thing to try is to attach a diagnostics feature that will produce
>> data about rc script dependencies and execution times, which can
>> be used to visualize which scripts take most time, and how to
>> reorganize dependencies to improve boot time (one example I noticed
>> is moused: it is only started after network is up, which is a shame,
>> since it could easily start while DHCP negotiation is in progress).
>
> Perhaps https://github.com/buganini/rcexecr may be a good start.
>
> Dw
>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
>


More information about the freebsd-hackers mailing list