<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tristan Watkins on IT Infrastructure &#187; User Profiles Archive</title>
	<atom:link href="http://tristanwatkins.com/index.php/tag/user-profiles/feed/" rel="self" type="application/rss+xml" />
	<link>http://tristanwatkins.com</link>
	<description>Technical guidance for SharePoint, Cloud Services, Windows and more</description>
	<lastBuildDate>Fri, 21 Oct 2011 23:33:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>People Search Result Organisation Browser Link Doesn&#8217;t Respect Alternate Access Mappings</title>
		<link>http://tristanwatkins.com/index.php/people-search-result-organisation-browser-link-doesnt-respect-alternate-access-mappings/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=people-search-result-organisation-browser-link-doesnt-respect-alternate-access-mappings</link>
		<comments>http://tristanwatkins.com/index.php/people-search-result-organisation-browser-link-doesnt-respect-alternate-access-mappings/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 07:00:49 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Consultancy and Design]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Alternate Access Mappings]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Server Name Mappings]]></category>
		<category><![CDATA[Service Applications]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[User Profiles]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1688</guid>
		<description><![CDATA[My colleague Anthony Clegg and I have recently been working on a project together, for which I&#8217;ve designed and delivered the infrastructure, while he&#8217;s been delivering the solution. As part of my design, I extended the SharePoint Web Applications from the default HTTPS zones to new HTTP zones, exclusively for crawling. This approach has been [...]]]></description>
			<content:encoded><![CDATA[<p>My colleague <a href="http://www.antblogs.com/">Anthony Clegg</a> and I have recently been working on a project together, for which I&#8217;ve designed and delivered the infrastructure, while he&#8217;s been delivering the solution. As part of my design, I extended the SharePoint Web Applications from the default HTTPS zones to new HTTP zones, exclusively for crawling. This approach has been around for some time, but there&#8217;s a new wrinkle on the SharePoint 2010 Enterprise Search Centre People Search results page, which I&#8217;ll discuss here:
</p>
<p><span id="more-1688"></span></p>
<ul>
<li>I have an intranet and a MySite, each with a default zone used by all users to access the application, in this example <a href="https://sp">https://sp</a> and <a href="https://my">https://my</a>.
</li>
<li>I want to optimise my crawl performance by crawling over HTTP, in order to remove the encryption/decryption load for each request, so I create a new Alternate Access Mapping zone on HTTP, for each of these web applications. These new URLs are <a href="http://s">http://s</a> and <a href="http://m">http://m</a>.
</li>
<li>I also set up HOSTS file entries on my Crawl Component servers so they will be able to crawl these applications locally. I don&#8217;t want my crawls to add load to the WFE servers.
</li>
<li>If I don&#8217;t want real people to access the site on this zone (and I probably don&#8217;t), I don&#8217;t set up DNS entries for it. Only Search will be using this zone.
</li>
<li>(Optionally) I create a Web Application User Policy that restricts access to this zone, since it is not running under SSL.
</li>
<li>
<div>I reconfigure my Content Sources in the Search Service Application to crawl the new zones, <a href="http://s">http://s</a>, <a href="http://m">http://m</a> and sps3://s
</div>
<ul>
<li>Note, for an SSL-secured site, the final People Search Connector, &#8220;sps3://s&#8221; will actually be &#8220;sps3<strong>s</strong>://s&#8221; by default, so make sure to get rid of that last &#8220;s&#8221;.
</li>
</ul>
</li>
<li>I run a full crawl and verify that it completes much faster than it did when I was crawling the site over HTTPS/SPS3S.
</li>
<li>Once my full crawl completes successfully, I verify that All Sites and People search results are returning as <a href="https://sp">https://sp</a> and <a href="https://my">https://my</a> (the default zones).
</li>
</ul>
<p>This was all working as expected &#8211; until Anthony noticed that the Org Browser web part appeared to be broken. On further inspection, we identified that:
</p>
<ul>
<li>Alternate Access Mappings didn&#8217;t appear to be working on this link (it displayed the crawled address).
</li>
<li>All other links on the People Search Results tab pointed at the default zone; they accurately respected Alternate Access Mappings.
</li>
<li>All results for the All Sites tab/scope successfully respected Alternate Access Mappings.
</li>
</ul>
<p>So we have one link to the wrong zone on the Enterprise Search Centre&#8217;s out-of-the-box People Search results page (or tab, if you prefer). I took this scenario to my development environment to confirm. Indeed, the behaviour was the same. I&#8217;ll illustrate below.
</p>
<p><span style="text-decoration:underline">Alternate Access Mappings for my Blank Site</span><br/><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_AAM_SP.png"><img class="alignnone size-full wp-image-1052" title="AAM SP" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_AAM_SP.png" alt="PeopleSearch AAM SP People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p><span style="text-decoration:underline">Alternate Access Mappings for my My Site</span><br/><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_AAM_My.png"><img class="alignnone size-full wp-image-1054" title="AAM My" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_AAM_My.png" alt="PeopleSearch AAM My People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p><span style="text-decoration:underline">The updated Content Sources page</span><br /><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_ContentSources.png"><img class="alignnone size-full wp-image-1052" title="Content Sources" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_ContentSources.png" alt="PeopleSearch ContentSources People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p><span style="text-decoration:underline">The &#8220;All Sites&#8221; Search Results Page With All Links Mapped</span><br /><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_AllSites.png"><img class="alignnone size-full wp-image-1036" title="All Sites" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_AllSites.png" alt="PeopleSearch AllSites People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p>In the following four screen shots of the same People Search results, notice the status bar as I hover over various links on this page (see: bottom left of the browser).
</p>
<p><span style="text-decoration:underline">The Correct Link to Me</span><br/><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link1.png"><img class="alignnone size-full wp-image-1051" title="Link to My Site" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link1.png" alt="PeopleSearch Link1 People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p><span style="text-decoration:underline">The Correct Link to &#8220;Add as Colleague&#8221;</span><br/><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link2.png"><img class="alignnone size-full wp-image-1051" title="Link to Add as Colleague" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link2.png" alt="PeopleSearch Link2 People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p><span style="text-decoration:underline">The Correct Refinement Link to &#8220;All Matches&#8221;</span><br/><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link3.png"><img class="alignnone size-full wp-image-1051" title="Link to All Matches" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link3.png" alt="PeopleSearch Link3 People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p><span style="text-decoration:underline">The Incorrect Organisation Chart Link (http://m)</span><br/><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link4.png"><img class="alignnone size-full wp-image-1051" title="Broken Link to Organisation Chart" src="http://tristanwatkins.com/wp-content/uploads/PeopleSearch_Link4.png" alt="PeopleSearch Link4 People Search Result Organisation Browser Link Doesnt Respect Alternate Access Mappings" width="500" /></a>
	</p>
<p>It would be incorrect to say that this link is broken. It works, so long as you have name resolution for it. The link is just pointing at the wrong zone, which may not be in DNS. Further, clicking that link may not be desirable or could disrupt the user experience, if the zone is locked down. In short, we explicitly want to avoid edits from that zone in this case, for a number of reasons, all of which I will gloss over here as my preference for a single zone.
	</p>
<p>Long story short: this looks like a bug to me. I&#8217;ll call it a bug. These links are new to User Profiles in SharePoint 2010, so there&#8217;s a likelihood that Alternate Access Mappings were overlooked here.
</p>
<h3>What to do?<br />
</h3>
<p>I still want to use Alternate Access Mappings, because the performance overhead of crawling encrypted data is not unsubstantial. This leaves me with an option to escalate this issue through Microsoft Support, which I really don&#8217;t have the time to do, or we could probably whip up some script quickly to update the results page and fix these two links up, but that&#8217;s not a very elegant solution. This is no longer a pressing need in my case, because this client has opted to delay launch of MySites and People Search for reasons completely off this map, but the bug remains and pertains elsewhere (like in my development environment). I will take this to Microsoft when I can find the time, but that&#8217;s not going to happen in the near future. Until then, any other ideas? </p>
<p><strong>17-03-2011 update</strong>: David noted in the comments that he&#8217;s worked around this by running his sps3:// crawl on a different web application &#8211; even creating one with no real content, specifically for this purpose. <del datetime="2011-03-18T15:37:40+00:00">I haven&#8217;t had a chance to test it out yet but it sounds like a great idea to me. See the comment for more detail.</del> Anthony has put this to the test for our client and all is working now. Hooray!</p>
<h3>Afterword: Server Name Mappings</h3>
<p>Somewhere along the line I&#8217;ve got myself in a muddle regarding Server Name Mappings. When we first encountered this problem, I configured both Alternate Access Mappings and Server Name Mappings (with the same mappings). In this case, I don&#8217;t believe this has caused any problems, but it&#8217;s not necessary and isn&#8217;t correct. Alternate Access Mappings should translate search results to the same zone that you&#8217;re browsing from, without doing any extra work. Server Name Mappings translate crawled data like file shares to other links <em>that don&#8217;t already exist as Alternate Access Mappings</em>. As <a href="http://blogs.msdn.com/b/enterprisesearch/archive/2010/05/28/server-name-mapping-and-alternate-access-mapping-aam.aspx">this Enterprise Search blog post</a> explains, &#8220;Although Server Name Mapping and Alternate Access Mapping achieve seemingly similar results, they work independently, addressing different problems, and should not be used together&#8221;. This is perhaps the only content I&#8217;ve found that clearly explains how to use Server Name Mappings correctly, and is well worth a read.
</p>
<p>It&#8217;s worth noting that the Server Name Mappings had no impact on the Organisation Browser link either.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/people-search-result-organisation-browser-link-doesnt-respect-alternate-access-mappings/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>User Profile Service Connection and Slow First Page Load</title>
		<link>http://tristanwatkins.com/index.php/user-profile-service-connection-slow-first-page-load/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=user-profile-service-connection-slow-first-page-load</link>
		<comments>http://tristanwatkins.com/index.php/user-profile-service-connection-slow-first-page-load/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 15:02:06 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Client applications]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Application Pool]]></category>
		<category><![CDATA[First Page Load]]></category>
		<category><![CDATA[IIS Reset]]></category>
		<category><![CDATA[Service Application Proxy]]></category>
		<category><![CDATA[Service Connection]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[User Profiles]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1346</guid>
		<description><![CDATA[I&#8217;m presently running some quite methodical SharePoint 2010 development environment performance tests, as we&#8217;re finding that the Dell XPS M1330 we&#8217;ve been using for the last few years doesn&#8217;t really cut it in some scenarios. This has been an on-going issue for some time where I work, but it&#8217;s only recently been prioritised at the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m presently running some quite methodical SharePoint 2010 development environment performance tests, as we&#8217;re finding that the Dell XPS M1330 we&#8217;ve been using for the last few years doesn&#8217;t really cut it in some scenarios. This has been an on-going issue for some time where I work, but it&#8217;s only recently been prioritised at the top of my workload. That it is now my top priority should give some indication how important these issues are for any company that spends significant time customising SharePoint. I&#8217;ll be discussing this wider project in more detail once I&#8217;ve finished my testing in the next couple of weeks, but for now I wanted to share a provisional finding about connecting Web Applications to the User Profile Service Application.</p>
<p><span id="more-1346"></span></p>
<h3>First Page Load After IIS Reset in SharePoint 2010</h3>
<p>One of the key performance indicators I&#8217;m measuring is first page load after an IIS reset.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">Why not just do an Application Pool Recycle?</span><br />
Before going any further, I acknowledge that most developers will be able to save a lot of time by recycling application pools rather than resetting IIS &#8211; but there are still scenarios when a full IIS reset is required and we&#8217;re finding that first page load after an IIS reset is a great deal slower in SharePoint 2010 than it was in 2007. First page load has always been notably slow and people have written warm-up scripts to address this scenario post-reboot, but in SharePoint 2010 I&#8217;m noticing speeds are two or three times slower.</p>
<p>I&#8217;d initially hoped that I could use this long first page load time to my advantage, which partially explains the time I&#8217;ve spent working on this issue here. I was thinking, surely if it takes so long, that extra time will give me a more accurate measure of these performance indicators across different systems. However, as I started to test on server class hardware I was finding that the performance gains were by no means linear and much less than I would have expected. This also held true with i7 laptops, i7 desktops and Amazon EC2. Interestingly, it appeared that the CPU was in no way fully utilised on any of these systems when loading the page for the first time, and these timings did not improve by adding additional CPUs. Earlier tests suggested that disk speed was not a significant factor in first page load times and memory is in no way constrained during these tests.</p>
<h3>The Speedy (but evil) White Wizard</h3>
<p>In the second instance, we noticed that not all farms were as slow as most of them seemed to be. We stumbled across this accidentally when testing performance in Amazon Web Services (AWS). A colleague did our initial AWS work and we were both very impressed by the initial performance results. A few days later I joined in the fun and built my first single-server instance. We immediately noticed that my first page load times were approximately double the times that my colleague was seeing. Eventually we identified that he used the Farm Configuration Wizard while I had manually created a separate Application Pool for each of my Service Applications. This warranted further investigation.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">A note about application pooling</span><br />
My approach to creating a separate Application Pool for each Service Application is to some extent a hang-over from SharePoint 2007 least-privileged thinking. I was aware that this approach exceeded recommended Application Pool capacity limits, but I didn&#8217;t let this trouble me too much based on the single-user load; I&#8217;ve always prioritised adherence to the least-privileged model over minor performance degradation. However, based on these seemingly significant performance results, emerging community consensus and the best guidance available today, I decided to reconsider this approach.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">A note about AWS</span><br />
There are a number of broader architectural challenges to conquer when designing a SharePoint 2010 development environment in AWS, which is a topic that I hope to return to in a later post.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">A note about the Farm Configuration Wizard</span><br />
This is the page that greets you immediately after installing SharePoint. It takes care of a lot of Services and Service Applications in one go, but it does some pretty undesirable things as well. In short, for all but the most playful of applications, it&#8217;s not appropriate. Build the Service Applications properly.</p>
<h3>Reconsidering Application Pooling</h3>
<p>As mentioned above, my next step was to quantify the improvements that can be gained through pooling applications. My first test was to delete all of my Service Applications and re-create them in a single application pool. I also deleted all of the web applications and created them in a single, separate Application Pool.</p>
<p>Following my normal development environment build process, I created all of the Service Applications and the Web Applications before tackling the User Profile Service Application. Out of curiosity, I quickly tested first page load times and was happily surprised to find that <strong>they had been cut in half</strong>. So I took a snapshot and created the User Profile Service Application.</p>
<h3>I Blame the User Profile Service Application</h3>
<p>After creating the new User Profile Service Application and running an IISRESET, <em>my first page load of Central Administration was almost exactly as slow as it had been with all the Service Applications in their own pools</em>. This was before creating a synchronisation or doing anything with the newly created Service Application. It was merely provisioned. At my wits end, I called it a night.</p>
<p>Having thought about it some the next morning, I decided to create a new web application with a Blank root Site Collection. I already had a similar web application in my farm but I made one key configuration change to the new one. When creating the web application I created a custom <strong>Application Proxy Group</strong> and removed the <strong>Service Connection</strong> to the User Profile Service Application. I then tested first page load times on my two blank sites. The new site without the Service Connection to the User Profile Service Application loaded as quickly as the sites did before I created the User Profile Service Application. The original site loaded in the same time as the old sites. <strong>The disconnected site was approximately twice as fast to load.</strong></p>
<h3>Validating the Results</h3>
<p>After reaching this provisional finding, I fired up the <a title="Microsoft Information Worker Demo VM" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=751fa0d1-356c-4002-9c60-d539896c66ce" target="_blank">Microsoft Information Worker Demo VM</a>. I wanted to test this on a completely different virtual machine (but on the same hardware). I created two new web applications with two new Blank root site collections. I ommitted the Service Connection to the User Profile Service Application on the second web application again. My timings were nearly identical to the timings on the first machines.</p>
<p>Next, I reverted to the earlier snapshot of my development environment &#8211; the one with each Service Application in a different Application Pool. I created a new web application with the Blank root Site Collection again and got nearly the same results. In this case, all of the results were slightly slower (a couple of seconds) than they were in my snapshot with all the Service Applications and Web Applications pooled together, but the Service Connection to the User Profile Service Application was a much bigger factor (~20 seconds).</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">What about the Farm Configuration Wizard Results?</span><br />
You may be wondering why the sites on the Wizard-configured farm loaded quickly. While I&#8217;ve not spent any time revisiting that environment and I&#8217;ve never spent much time on servers configured by that wizard, I strongly suspect  this is because the User Profile Synchronisation Service had never been successfully provisioned.</p>
<p>I am still in the process of further validating these results across various hardware configurations and within various virtualisation technologies. My tests should provide better data on the benefits of pooling the Service Applications as well. All of these findings are somewhat provisional, but I&#8217;d say the Service Connection results so far are the clearest findings I&#8217;ve got to date, by a considerable margin. In short, I think <strong>you can expect first page load times to be at least twice as quick</strong> when the Web Application is disconnected from the User Profile Service Application.</p>
<h3>But I Kind of Need That Service Connection</h3>
<p>Touché! You often will. In fact, let me back-track and say that I haven&#8217;t really considered how these findings can be applied in the real world yet. In previous development environment iterations, we found that we needed to <a title="SharePoint 2010 (not) in a Workgroup" href="http://tristanwatkins.com/index.php/sharepoint-2010-not-in-a-workgroup/" target="_blank">abandon development in a Workgroup</a> so we could connect to the User Profile Service Application. It may be that some web applications can live without this connection (for instance, many WCM apps), but as I say, my head is deep in performance considerations at the moment and I really haven&#8217;t had time to consider these implications yet. However, I will try to revisit the topic reasonably soon and I welcome comments! One way or the other, it&#8217;s good to have a better understanding of why 2010 first page load times are so much slower than 2007.</p>
<h3>Does this slow anything else down?</h3>
<p>At this point, I haven&#8217;t had a chance to test much else, but I have tested creating a new web application with and without this Service Connection. No impact. I also tried creating a Publishing Portal within those web applications, and again, no impact.</p>
<p>If you&#8217;re curious about the actual performance figures, I hope to publish them in the next couple of weeks. To give a high-level indication, in one environment the connected First Page Load times were ~35 seconds and the disconnected times were ~17 seconds. In slower environments this difference may be even greater.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/user-profile-service-connection-slow-first-page-load/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

