This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: TEST RELEASE: Cygwin 1.7.35-0.3


Hi John,

On Feb 23 10:22, John Hein wrote:
> Corinna Vinschen corinna-cygwin-at-cygwin.com |cygwin_ml_nodigest| wrote at 12:17 +0100 on Feb 23, 2015:
>  > 1.7.33:
>  >
>  >   Calls NetUserEnum/NetGroupEnum,NetLocalGroupEnum with maximum Buffer
>  >   size.
>  >
>  > 1.7.34+:
>  >
>  >   Calls an LDAP enumerator fetching 100 SIDs per call.
>  >   For each SID:
>  >     Call LookupAccountSid.
>  >     For each User:
>  >       Depending on nsswitch.conf, call LDAP to fetch the extended passwd
>  >       info (pw_shell, pw_home, pw_gecos).
>  >
>  > I guess there's some room for improvement.
>  >
>  > OTOH, keep in mind that you're not suppsoed to call mkpasswd/mkgroup
>  > to enumerate your entire organization.  If you're using it at all, then
>  > only to create the required entries in /etc/passwd and /etc/group for
>  > your local acocunt to work, and then leave everything else to the "db"
>  > setting.
> 
> Fair enough.  I'll stop stress testing mkpasswd and consider this
> closed unless there's something we want to try.
> 
> But 1.7.33 seems much faster (if you can call 50 minutes fast) at it
> than 1.7.34-6 or 1.7.35-0.3 in this large-ish AD.  Maybe a knob to
> specify buffer size and/or some other knobs might help identifying the
> slowest parts (and/or some stats).  Just a thought.
> 
> I'll add that the 1.7.34-6 'strace mkpasswd -d' that I had started
> above finished in 20+ hours and spewed ~3500 of ~8000 entries.

Can you retry this test with the latest developer snapshot (2015-02-25)
from https://cygwin.com/snapshots/, please?  As I already said in other
mails to this list, I rewrote the code doing the LDAP lookup for the
getpwent/getgrent calls, as well as for mkpasswd/mkgroup.  I reduced
the number of LDAP calls to 1 call per 100 users, with no intermediate
LDAP call within.  This should become as fast as it can get.  It may
still be slower than pre-1.7.34, but that is a bit unfair considering
the more complext setup using various different AD attributes depending
on the settings in /etc/nsswitch.conf.

OTOH, the number of accounts per LDAP call (100) is a fixed number right
now.  It might be prudent to use a different, higher number in calls to
mkpasswd/mkgroup, compared to a "real" getpwent/getgrent, let's say,
1000.  That might give us another performance gain, but needs testing in
a big environment like yours, of course.

As for stopping after 3500 of 8000 accounts, I'd be interested to
investigate this further, as I accidentally addressed to Roger Orr.

As I outlined in that mail, I stumbled over a bug in my code which also
resulted in enumerating less accounts as desired.  So I'm not entirely
sure your problem isn't related to a bug either.  So, first thing first,
does that problem still exist with the snapshot?


Thanks,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpRGFrxCUeqU.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]