This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Very slow Cygwin startup on Windows 7
- From: Andrey Repin <anrdaemon at yandex dot ru>
- To: "Dennis Hagarty (dehagart)" <dehagart at cisco dot com>, cygwin at cygwin dot com
- Date: Tue, 17 Feb 2015 13:55:13 +0300
- Subject: Re: Very slow Cygwin startup on Windows 7
- Authentication-results: sourceware.org; auth=none
- References: <3FEEC3A37A0B0A48AA326075128C32EE4DC9F0E8 at xmb-rcd-x01 dot cisco dot com> <87mw4nugdx dot fsf at Rainer dot invalid> <3FEEC3A37A0B0A48AA326075128C32EE4DC9F137 at xmb-rcd-x01 dot cisco dot com> <869208266 dot 20150210030528 at yandex dot ru> <3FEEC3A37A0B0A48AA326075128C32EE4EE263B8 at xmb-rcd-x01 dot cisco dot com>
- Reply-to: cygwin at cygwin dot com
Greetings, Dennis Hagarty (dehagart)!
>>If you are accepting suggestions, and up for some experimentation, try this:
>># getent passwd $(id -u) > /etc/passwd
>># getent group $(id -G) > /etc/group
>># echo -e "#\npasswd: files db\ngroup: files db\n" > /etc/nsswitch.conf
>>
>>and start bash without cygserver running. Just for test.
>>The idea is to have "your" groups in files so that in simple case of (just
>>startup" Cygwin don't have to talk to DC all too much. If at all.
>>You'd still need to run cygserver to benefit from long-time caching, though.
> Apologies for my slow response - urgent RFI's.
No need for apology :) And thank you for chiming back in. Your help is much
appreciated.
> Ok, so I reverted nsswitch to the 'files db' setting.
> I stopped cygserver
> I ran your commands to recreate /etc/passwd and /etc/group
> (they now contain 1 line and 3 lines respectively - before it had about 10 & 21 lines in each)
That's surprisingly small amount of groups.
Even on local system, I have 11(13 if elevated) groups attached to my userid.
Perhaps, the execution of the id -G has been influenced by your current (at
that moment) /etc/group file.
> To create a bash terminal window (from cmd) takes about 5-6 minutes.
> cmd /v:on /c "echo !TIME! & C:\cygwin64\bin\mintty.exe /bin/echo "test" & echo !TIME!"
> 11:01:20.27
> 11:06:59.78 = 5:39.51
> Starting cygserver:
> 11:08:31.55
> 11:08:31.62 = 0:00.07
> Stopping it again:
> 11:09:19.02
> 11:15:04.45 = 05:45.43
> With the 'db' entry excluded as a control:
> 11:15:56.80
> 11:15:56.90 = 00:00.10
> I reverted back to use files+db and my larger passwd and group files, turned on cygserver:
> 11:19:34.31
> 11:19:34.38 = 00:00.07
Could you please do me a favor and repeat the test with a little deviation of
my previous suggestion?
1. Remove /etc/{nsswitch.conf,passwd,group} files. (Rename, move away - by
your choice.)
2. Stop cygserver, if it is running, and any other Cygwin-related programs.
3. Start the mintty (elevated, if need) with write access to /etc. Supposedly,
this will be slow.
4. Make sure id -G lists all the groups you're member of.
The `id -znG | tr "\0" "\n"` would probably be more visible.
5. Repeat the steps from previous suggestion.
getent passwd $(id -u) > /etc/passwd
getent group $(id -G) > /etc/group
printf "%s\n" "passwd: files db" "group: files db" > /etc/nsswitch.conf
6. Close and restart mintty
--
WBR,
Andrey Repin (anrdaemon@yandex.ru) 17.02.2015, <13:35>
Sorry for my terrible english...
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple