At a customer we had a weird behavior of the People Picker in a SharePoint 2010 environment.
People Picker in action
On the productive environment, everything worked as expected. However, on the development environment finding a person by name via the People Picker after an application pool recycle took more than a minute – inadmissible long!
It took us a while, but with the help of the great tool WireShark we where able to track down the performance issue:
20 (!) parallel Domains in the same network.
To find an user account via People Picker a LDAP request is sent to one Domain Controller after the other. Most of the DCs in this environment didn’t react to the request in time and came back with the message “Destination unreachable”, the next DC gets requested. This behavior took a long time on the development environment.
You can modify the People Picker using STSADM (unfortunately there is no PowerShell command for People Picker modifications). We modified it to only request specific domains searching for users:
Why did it work on PROD?
The PROD environment was build up in a different Domain, so the order of the requests seemed to differ from the order of the request in the development environment. Therefore, the request found the right DC faster.