<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Mohamed El Ashmawi's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:20:51 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>SharePoint 2013 Preview Deployment - Failed to create the configuration database</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2013-preview-deployment-failed-to-create-the-configuration-database</link>
      <pubDate>Wed, 10 Oct 2012 13:37:03 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2012/10/10/sharepoint-2013-preview-deployment-failed-to-create-the-configuration-database/</guid>
      <description><![CDATA[On deploying 2013 on SQL Server 2012, you might get an error when running the configuration wizard...]]></description>
      <content:encoded><![CDATA[<p>On deploying 2013 on SQL Server 2012, you might get an error when running the configuration wizard to create the SharePoint farm:</p>
<p>&ldquo;Configuration Failed.&rdquo;</p>
<p>&ldquo;Failed to create the configuration database&rdquo;</p>
<p>&ldquo;An exception was thrown: This SQL Server instance does not have the required &ldquo;maxdegree of parallelism&rdquo; setting of 1&rdquo;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/3482.error.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/3482.error.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/3482.error.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/3482.error.jpg" border="0" /></a></p>
<p>&nbsp;</p>
<p>This can be resolved as follows:</p>
<ol>
<li>Open SQL Server Management Studio</li>
<li>Right Click on your SQL instance and select Properties</li>
<li>Select &ldquo;Advanced&rdquo; and change &ldquo;Max Degree of Parallelism&rdquo; from 0 to 1</li>
</ol>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/1732.SQLSettings.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/1732.SQLSettings.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/1732.SQLSettings.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/1732.SQLSettings.jpg" border="0" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Disk Space Requirements</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-disk-space-requirements</link>
      <pubDate>Mon, 19 Mar 2012 10:39:03 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2012/03/19/sharepoint-2010-capacity-management-disk-space-requirements/</guid>
      <description><![CDATA[To be able to estimate the total disk space required by aSharePoint 2010 farm, you need to estimate...]]></description>
      <content:encoded><![CDATA[<p>To be able to estimate the total disk space required by a<br />SharePoint 2010 farm, you need to estimate the sizes of the following:</p>
<ol></ol>
<ul>
<li><b>System &amp; Log Files</b></li>
</ul>
<p>This is the direct attached storage (DAS) required on each server for its operating system, 14 hive, IIS Logs, SharePoint Logs and any other temporary storage. The common values for these are present in my blog article at <a href="https://blogs.msdn.com/b/mohamed_el_ashmawi/archive/2011/10/18/sharepoint-2010-capacity-management-confirm-farm-size-after-modelling.aspx">https://blogs.msdn.com/b/mohamed_el_ashmawi/archive/2011/10/18/sharepoint-2010-capacity-management-confirm-farm-size-after-modelling.aspx</a>&nbsp;</p>
<ul>
<li><b>SharePoint databases</b></li>
</ul>
<p>This is the space required for the various SharePoint databases to be used by the SharePoint farm. There are core databases that are present in any deployment such as the configuration database, central administration database and content databases. Moreover, many service applications have their own databases (one or more). An overview of the difference databases and their characteristics is present in <a href="https://technet.microsoft.com/en-us/library/cc678868.aspx#Section1">https://technet.microsoft.com/en-us/library/cc678868.aspx#Section1</a></p>
<p>This space is usually present on SAN and is exposed to SQL 2008 clustered instances.</p>
<ul>
<li>&nbsp;<b>Search Index</b></li>
</ul>
<p>The search index is stored on the query servers and its size depends on the number of items in an index partition. We will go through how to estimate the storage for the index in the article on estimating search requirements.</p>
<p>&nbsp;</p>
<p><b>SharePoint Databases</b></p>
<p>The SharePoint 2010 configuration database and the central administration database are small in size and each is less than 1 GB.</p>
<p>Estimating storage for content databases can be done using the formula in <a href="https://technet.microsoft.com/en-us/library/cc298801.aspx">https://technet.microsoft.com/en-us/library/cc298801.aspx</a></p>
<p>It is basically: Database size = ((<i>D </i>&times; <i>V</i>) &times; <i>S</i>) + (10 KB &times; (<i>L</i> + (<i>V</i> &times; <i>D</i>)))</p>
<p>Where</p>
<p>D: Expected number of documents</p>
<p>S: The average size of the documents that you will be storing</p>
<p>L: The number of list items in the environment</p>
<p>V: The approximate number of versions</p>
<p>Another way to estimate the content databases size is to extrapolate from the current SharePoint 2007 (if you are migrating from SharePoint 2007 to SharePoint 2010). To be able to extrapolate correctly, you need to get the size of the current content databases, assume a growth factor for 3 to 5 years; then build the new content database estimate.</p>
<p>Note that it is recommended limiting the size of content databases to 200&nbsp;GB to ensure system performance.</p>
<p>I will detail the estimates for the service applications databases in the next articles along with capacity estimates.</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Farm Design Considerations</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-farm-design-considerations</link>
      <pubDate>Mon, 12 Mar 2012 14:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2012/03/12/sharepoint-2010-capacity-management-farm-design-considerations/</guid>
      <description><![CDATA[While designing large SharePoint farms, many considerations need to be assessed.
Below are some...]]></description>
      <content:encoded><![CDATA[<p>While designing large SharePoint farms, many considerations need to be assessed.</p>
<p>Below are some decisions that have implications on the farm logical architecture:</p>
<ol start="1">
<li>Should content be served from one SharePoint farm or multiple SharePoint farms?</li>
</ol>
<p style="padding-left: 60px;">A SharePoint farm can publish many different vanity URLs each having its own web applications, so different URLs and even purpose shouldn&rsquo;t be the driving force for having multiple farms. However, in some scenarios, the business requirements are totally different between different web sites and it is expected to have different&nbsp; administration teams for the different farms. Many corporations currently have different SharePoint farms for different purposes, while others have multiple SharePoint farms that are geographically dispersed to cater for regional requirements.</p>
<p style="padding-left: 60px;">Another example of cases where is more than one SharePoint farm is when you have an authoring farm and a publishing farm.</p>
<p style="padding-left: 60px;">The selection of the number of farms and their roles is a blend of a business decision and a technical decision and need to be confirmed in case of large farms.</p>
<ol style="padding-left: 60px;" start="2"></ol>
<p style="padding-left: 30px;">2. What are the required&nbsp;service applications?</p>
<ol style="padding-left: 60px;" start="2"></ol>
<p style="padding-left: 60px;">The following list includes the service applications for SharePoint 2010:</p>
<ul style="padding-left: 60px;">
<li>Access Services</li>
<li>Business Data Connectivity Services</li>
<li>Excel Service Application</li>
<li>Managed Metadata Service</li>
<li>PerformancePoint Service Application</li>
<li>Search service</li>
<li>Secure Store Service</li>
<li>State service</li>
<li>Usage and Health Data Collection service</li>
<li>User Profile service</li>
<li>Visio Graphics Service</li>
<li>Web Analytics service</li>
<li>Word Automation Services</li>
<li>Microsoft SharePoint Foundation Subscription Settings Service</li>
<li>Office Web Apps services</li>
<li>Microsoft Project Server 2010</li>
</ul>
<p style="padding-left: 60px;">Depending on the business needs, a farm can have a subset of these service applications. For example, Access service, Visio service, Office Web App or project server might not be needed on a specific farm as there is no need for them.</p>
<p style="padding-left: 60px;">Thus, it is important to identify the required service applications and plan for them.</p>
<ol style="padding-left: 60px;" start="3"></ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. How are the service applications deployed? What is the service applications architecture?</p>
<ol style="padding-left: 60px;" start="3"></ol>
<p style="padding-left: 60px;">Technet has an article on services architecture planning at <a href="https://technet.microsoft.com/en-us/library/cc560988.aspx">https://technet.microsoft.com/en-us/library/cc560988.aspx</a>. This article discusses service application design considerations andoptions.&nbsp;</p>
<p style="padding-left: 60px;">The most important decisions to make at the moment are the follows:</p>
<ul style="padding-left: 60px;">
<li>Whether to share some service applications across farms or not?</li>
</ul>
<p style="padding-left: 60px;">The following service applications can be shared across farms:</p>
<p style="padding-left: 60px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User Profiles</p>
<ul style="padding-left: 60px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Managed Metadata</ul>
<p style="padding-left: 90px;">Business Connectivity Services (BCS)</p>
<p style="padding-left: 90px;">Search</p>
<p style="padding-left: 90px;">Secure Store</p>
<p style="padding-left: 90px;">Web Analytics</p>
<p style="padding-left: 60px;">Thus, it is an important decision to decide on whether to share them across farms. In this case, you can have these services reside on one farm (enterprise services farm) and publish them so that other farms can consume them. Moreover, you can decide on having dedicated farms for specific purpose (ex. Search farm that serves all search requests).</p>
<p style="padding-left: 60px;">Note:&nbsp; It is most common to share User Profile, Managed Metadata, BCS and Search across farms.</p>
<p style="padding-left: 60px;">Note: Not all service applications are recommended for use in WAN environments. The recommended service applications in WAN are search and managed metadata.&nbsp;</p>
<ul style="padding-left: 60px;">
<li>How to group service applications within one farm?</li>
</ul>
<p style="padding-left: 60px;">After deciding on the farm that a service application will run on, we can decide to group them in service application groups. The criteria for grouping are their use by the various web applications that you have in your farm</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Confirm Farm Size after modelling</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-confirm-farm-size-after-modelling</link>
      <pubDate>Mon, 17 Oct 2011 16:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2011/10/17/sharepoint-2010-capacity-management-confirm-farm-size-after-modelling/</guid>
      <description><![CDATA[During the modeling step, first step in capacity management, you identify the expected use of the...]]></description>
      <content:encoded><![CDATA[<p>During the modeling step, first step in capacity management, you identify the expected use of the new environment in terms of workload and dataset. This information is used as the basis of designing the environment in Design step of capacity planning.</p>
<p>The first action to apply when designing the environment is to verify the expected size of the SharePoint farm.</p>
<p>SharePoint farms are generally categorized in 3 different sizes. Each has its characteristics and expected workloads and datasets. The details of the different sizes are present in the TechNet article at <a href="https://technet.microsoft.com/en-us/library/ff758647.aspx">https://technet.microsoft.com/en-us/library/ff758647.aspx</a>.</p>
<p><br />Below is a summary of the farm sizes and their characteristics (This part is extracted from the TechNet article mentioned above):</p>
<ol></ol>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>1. Small Farm:</strong></span></p>
<ol></ol>
<p>It consists of a single database server or cluster and one or two SharePoint Server 2010 computers.</p>
<p><b>Characteristics:</b></p>
<ul>
<li>Limited deployments with a minimal set of service applications enabled</li>
<li>Small user base</li>
<li>&nbsp;Low usage load (Very few requests per second)</li>
<li>Small volume of data (10 or more gigabytes).</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/3465.SmallFarm.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/3465.SmallFarm.gif"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/3465.SmallFarm.gif" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/3465.SmallFarm.gif" width="313" height="239" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/7026.SmallFarm.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/7026.SmallFarm.gif"></a></p>
<p>&nbsp;</p>
<p>Note: A smaller option for a SharePoint farm is to have a single server deployment where one server has SharePoint and SQL. This topology is not recommended for a production environment and should be used for evaluation or development purposes only.</p>
<p>&nbsp;</p>
<p><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&nbsp;2. Medium farm:</span></strong></p>
<p>The Topology is broken down into three distinct tiers: dedicated Web servers, dedicated application servers, and one or more database servers or clusters.</p>
<p><b>Characteristics:</b></p>
<ul>
<li>Service applications are distributed across multiple servers.</li>
<li>Tens of thousands of users and a load of 10 to 50 requests per second.</li>
<li>A data store of one or two terabytes.</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/6786.mediumfarm.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/6786.mediumfarm.gif"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/6786.mediumfarm.gif" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/6786.mediumfarm.gif" /></a></p>
<p>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><b>3. Large Farm:</b></span></p>
<p>In large farms, there are Web servers, multiple application servers, depending on the usage characteristic of each of the local (non-shared) services, and multiple SQL Server&ndash;based servers or SQL Server clusters, depending on the content size and the application services databases that are enabled on the farm. Moreover, services and solutions are broken down and published across multiple farms.</p>
<p><b>Characteristics:</b></p>
<ul>
<li>A user base in the range of hundreds of thousands of users.</li>
<li>A usage load in the range of hundreds of requests per second.</li>
<li>A dataset in the range of ten or more terabytes.</li>
<li>Several service applications federated and consumed from dedicated services farm, typically the User Profile Service, Search, Managed Metadata service, and Web Analytics.</li>
<li>Most other service applications are enabled locally.</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/6786.largefarm.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/6786.largefarm.gif"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/6786.largefarm.gif" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/6786.largefarm.gif" /></a></p>
<p>&nbsp;</p>
<p>Based on the results of the modeling, you should be able to identify the size of the farm you should design. This is a very important decision as it will define the next steps that you will apply.</p>
<p>If you have a small farm, then the design is clear as per the topology above and there are not much of decisions that need to be made. If you have a medium farm, then the topology is clear and the expected number of servers would be in the range above.</p>
<p>If you have a large farm, then there are many decisions to be made as follows:</p>
<ul>
<li>Is there a need to have a separate farm for enterprise services?</li>
<li>Should My Sites be present in another farm?</li>
<li>Should there be one SharePoint content farm or are there reasons to have more than one farm serving content?</li>
<li>Which service applications would you run locally?</li>
<li>How are service applications grouped on application servers?</li>
</ul>
<p>&nbsp;</p>
<p>In case of small or medium sizes farm, options are rather clear so the rigor of the next steps will not be needed; however, large size farms require more effort to come up with a concrete design.</p>
<p>&nbsp;Minimum hardware requirements for SharePoint farms servers are present at <a href="https://technet.microsoft.com/en-us/library/cc262485.aspx">https://technet.microsoft.com/en-us/library/cc262485.aspx</a></p>
<p>In general, the following server configurations are common for large farm server deployments:</p>
<ul>
<li>Web Servers</li>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Processor:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2x Quad Core</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Memory:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8-16 GB</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hard Disk:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OS: 80 GB</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logs: 140 GB</p>
<p>&nbsp;</p>
<ul>
<li>Application Servers</li>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Processor:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2x Quad Core</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Memory:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8-16 GB</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hard Disk:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OS: 80 GB</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logs:&nbsp; 140 GB</p>
<p>&nbsp;</p>
<ul>
<li>Database Servers</li>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Processor:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4x Quad Core</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Memory:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32 GB</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hard Disk:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OS: 80 GB</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logs: 140 GB</p>
<p>Note:&nbsp; the values mentioned above for the hardware requirements are tentative and is a generalization. The exact values will differ from one implementation to the other, based on capacity calculations. For example, total content size has an impact on the memory needed for the database servers, thus, memory needed<br />reaches 64 GB in some cases. Search Index has implications on the Memory and the disk size for the index servers, so they will impact the values mentioned above.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Build New Environment Usage Estimates</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-build-new-environment-usage-estimates</link>
      <pubDate>Tue, 11 Oct 2011 14:48:12 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2011/10/11/sharepoint-2010-capacity-management-build-new-environment-usage-estimates/</guid>
      <description><![CDATA[After analyzing the use of the current environment, you are able to involve business sponsors/users...]]></description>
      <content:encoded><![CDATA[<p>After analyzing the use of the current environment, you are able to involve business sponsors/users in guided discussions for the estimates for the new system. Usually, you build the model for the new environment based on the current environment usage. There are many criteria you can use to build this model.</p>
<p>Note: When building estimates for the new environment, you need to take future growth into consideration. One common consideration is to extrapolate for a 3 years period; thus, you will put the estimate for 3 years in the future. We generally set it this way so that we can have 3 years of operation without need for servers scale up/scale out. Based on customer&rsquo;s need you might decide to build the estimate for more years as 5 years.</p>
<p>Following are the main extrapolations you will need to make:</p>
<p>1. What is the expected number of users for the new environment?</p>
<p>If this is an intranet portal that includes all company employees, then you could estimate the current number of employees and add to it based on the 3 year growth expectation. Otherwise, you can use the current value from the previous analysis and estimate the growth for the next period.</p>
<p>&nbsp;</p>
<p>&nbsp;2. What is the expected peak RPS (Requests per Second)?</p>
<p>Without prior knowledge of the current environment it is hard to build an estimate for the RPS. However, it is relatively easy to extrapolate it from the results received earlier with the LogParser exercise. One option is to assume that the requests will be the same or will grow by a percentage. An option is to assume that the requests will double for the new environment.</p>
<p>Note that you will need to build RPS for the different service applications that we will have in the new environment. It&rsquo;ll be convenient to have this breakup from the current system; otherwise, you can estimate it by breaking up the RPS from the full system to its difference components.</p>
<p>&nbsp;</p>
<p>3.&nbsp; What is the expected Data Size?</p>
<p>There are formulas to estimate the data sizes for the SharePoint content databases; however, a clearer estimate can be done if sizes of current content databases are present.</p>
<p>&nbsp;</p>
<p>Note: Based on your comfort with the values estimated above, you might decide to add 10% or 20% as safety margins.</p>
<p>In addition to the items above, you can get more information regarding SharePoint usage in the current environment to use in building the architecture of the new farm. One such important value is the number of items in the search index. This value has a profound impact on the design of the search architecture as we will see later, so having a basis for its estimate helps a lot when architecture is being built.</p>
<p>After building the estimates for the new environment, you should use them to fill the workload tables presented earlier.</p>
<p>This will be the end of the modeling step in the capacity management cycle.</p>
<p>The next step is to start on the design of the new environment. This will be handled in the next article.</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Log Parser Part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-log-parser-part-2</link>
      <pubDate>Mon, 26 Sep 2011 14:49:18 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2011/09/26/sharepoint-2010-capacity-management-log-parser-part-2/</guid>
      <description><![CDATA[As mentioned in my previous post, you should run the log parser on logs for a specific day. You can...]]></description>
      <content:encoded><![CDATA[<p>As mentioned in my previous post, you should run the log parser on logs for a specific day. You can do that by copying the log files from the different load balanced Front-end servers &nbsp;to a centralized location and run the logparser queries in there.</p>
<p>Since you will get the results for a specific day, then the choice of that day is critical. Weekend days usually have lower use than the weekdays. Moreover, sometimes there are low months due to higher vacation rates or business reasons. A good sample for this is summer months where the number of users using the system is lower than other months.</p>
<p>A good strategy is to apply the scripts for different days to get clearer view on the current system usage. Keep in mind when designing the new environment that you need it to be able to handle the peak load at the peak period; moreover, you need to keep room for future growth. Thus, it is important to identify peak period and apply usage analysis on it.</p>
<p>&nbsp;</p>
<p>The output of logparser queries created in the last blog is in tabular format, but you can use them to build graph that would highlight the required values. Samples of the results of the pervious queries in graph format are as follows:</p>
<p><strong>Peak Requests Per Second (Peak RPS)</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/4405.1.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/4405.1.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/4405.1.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/4405.1.jpg" /></a></p>
<p>&nbsp;</p>
<p><strong>Average Requests Per Second (Average RPS)</strong></p>
<p><strong><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/0434.2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/0434.2.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/0434.2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/0434.2.jpg" /></a></strong></p>
<p></p>
<p><strong>Distinct Users Per Hour:</strong></p>
<p><strong><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/0312.3.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/0312.3.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/40/92/0312.3.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-40-92/0312.3.jpg" /></a></strong></p>
<p><strong></strong>&nbsp;</p>
<p>Using these graphs and the accompanying tables, it should be clear how to build the modeling tables mentioned earlier. They should be enough for identifying the current load on the system and be the basis for estimating the future load for the new system.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Log Parser</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-log-parser</link>
      <pubDate>Thu, 22 Sep 2011 14:06:46 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2011/09/22/sharepoint-2010-capacity-management-log-parser/</guid>
      <description><![CDATA[Log Parser is a powerful tool to extract useful usage information from IIS logs. It can be used for...]]></description>
      <content:encoded><![CDATA[<p>Log Parser is a powerful tool to extract useful usage information from IIS logs. It can be used for data sources other than IIS log files (XML files, CSV files, registry, event logs, etc.), but for the SharePoint 2010 usage scenario, we will need IIS logs input only.</p>
<p>LogPraser can be downloaded at <a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=24659">https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=24659</a></p>
<p>Log Parser is a command-line tool that takes an input and a command to execute. It returns an output to the screen, an output file, SQL database or an image.</p>
<p>It is made up of three components:</p>
<ol>
<li>Input Formats: Log Parser supports many input formats such as Event Logs, XML Files, and Windows Registry. The one we will need is IIS Log files.</li>
<li>SQL-Like Engine Core: This component processes data from the input source. &nbsp;The syntax is SQL based, so it uses keywords like &ldquo;select&rdquo;, &ldquo;where&rdquo;, &ldquo;group by&rdquo;, etc.</li>
<li>Output Formats: Log Parser supports many output formats such as text file formats or SQL databases. The most important for our purpose is screen output and CSV format.</li>
</ol>
<p>&nbsp;More information on logparser formats and the syntax for logparser queries is present in the log parser documentation that is downloaded with the setup file mentioned above.</p>
<p>One of the best documents on how to use log parser for analyzing SharePoint usage is present at <a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;=tm&amp;id=4616">https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;=tm&amp;id=4616</a></p>
<p>&nbsp;For easier use of logparser, it is better to add it in the path environment variable. This will enable you to use the logparser command from any folder that you created. The default path is C:\Program Files (x86)\Log Parser 2.2</p>
<p>To start using LogParser on your environment, create a folder and put in it the log files for a specific day. Copy to that folder the log files from the different front end servers too if you have multiple load balanced front ends.</p>
<p>Below are the most important queries that will help you identify the usage patterns for your environment:</p>
<ol>
<li>To get different users and the number of times they are present in the logs, apply the following command. (Note that the output is present in LogFileUsers.csv file)</li>
</ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;logparser -i:IISW3C -o:CSV "select count(*) as ct,cs-username,logfilename from *.log group by cs-username,logfilename" &gt;LogFileUsers.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To get the total number of users per log file, run the following command:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV "select sum(ct) as sum,count(*) as users,logfilename from LogFileUsers.csv group by logfilename"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp; Get the top 20 users of the environment by the following query:</p>
<ol>logparser -i:IISW3C "select top 20 count(*) as ct,cs-username as user from *.log group by user order by ct desc"</ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Get the Requests Per Second:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Requests per second and their distribution over time is one of the most important measures to the environment usage. Thus, it is important to determine sizing for the new environment.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generally, when a user requests a page, the browser sends an anonymous request to the server. In case of SharePoint with Windows Authentication, the server will return HTTP 401 response, so the client browser will return authentication details. This 401 response produces no load on the server, but it is logged in the IIS log&nbsp;files. This is why the previous queries results contained requests with empty username.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In next queries, you will find a &ldquo;where&rdquo; clause that will exclude these 401 responses as they have no load on the server and shouldn&rsquo;t be considered within the Request Per Second (RPS).</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The queries to get the Requests per Second are:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Note: These queries use a script file &ldquo;load.txt&rdquo; as input. The script of the file is present at the end of this blog)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;logparser -i:IISW3C file:load.txt -o:csv -q &gt;RequestsRes.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- distribution by Seconds</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV &ndash;o:CSV "select count(*) as ct,secs,max(ss) as ss,max(mi) as mi,max(hh) as hh from RequestsRes.csv group by secs order by secs"&nbsp; -q &gt;secsdist.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- distribution by minutes</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "select count(*) as ct,div(secs,60) as minu,max(ss) as ss,max(mi) as mi,max(hh) as hh from RequestsRes.csv group by minu order by minu"&nbsp; -q &gt;mindist.csv</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --Hourly average Requests Per Minute</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser &ndash;i:CSV &ndash;o:CSV "select hh as Hour,avg(ct) as AvergeCT from mindist.csv group by hh order by hh" &gt;HourAvgRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Hourly Peak Requests Per Minute</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV &ndash;o:CSV "select hh,max(ct) from mindist.csv group by hh order by hh"&nbsp; &gt;MinPeakRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Hourly Average Requests Per Second</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;logparser -i:CSV &ndash;o:CSV "select hh as Hour,avg(ct) as SecPeak from secsdist.csv group by hh order by hh"&nbsp; &gt;SecAvgRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- &nbsp;Hourly Peak Requests Per Second</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV &ndash;o:CSV "select hh as Hour,max(ct) as SecPeak from secsdist.csv group by hh order by hh"&nbsp; &gt;SecPeakRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The requests include requests for images orstatic files. Usually, user operations are 1/3 of the total requests.</p>
<p>&nbsp;</p>
<ol></ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. Get Distinct Users Over Time:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Apply the following commands to get the number of distinct users in an hour</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "selet count(*) as ct,cs-username,secs,max(ss) as ss,max(mi) as mi,max(hh) as hh from RequestsRes.csv group by secs,cs-username order by secs,cs-username"&nbsp; -q &gt;userdist.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Distinct Users By Hour</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "select hh,cs-username,sum(ct) as req from userdist.csv group by hh,cs-username order by hh,cs-username" &gt;userhhdist.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "select hh,count(*) from userhhdist.csv group by hh" &ndash;q &gt;userhhdist_PerHour.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Distinct Users By Minute</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logparser -i:CSV -o:CSV "select div(secs,60) as minu,cs-username,sum(ct) as req from userdist.csv group by minu,cs-username order by minu,cs-username" &gt;usermidst.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logparser -i:CSV -o:CSV "select minu,count(*) from usermidst.csv group by minu" &gt;usermidst_PerMin.csv</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The script of the load.txt file is as follows:&nbsp;</p>
<p>select<br />EXTRACT_FILENAME(LogFilename),LogRow,</p>
<p>&nbsp;date, time, cs-method, cs-uri-stem,<br />cs-username, c-ip, cs(User-Agent), cs-host, sc-status, sc-substatus, sc-bytes,<br />cs-bytes, time-taken,</p>
<p>add(&nbsp;<br />add(<br />mul(3600,to_int(to_string(to_localtime(to_timestamp(date,time)),'hh'))),<br />mul(60,to_int(to_string(to_localtime(to_timestamp(date,time)),'mm')))</p>
<p>&nbsp;&nbsp; ),</p>
<p>&nbsp;&nbsp;<br />to_int(to_string(to_localtime(to_timestamp(date,time)),'ss'))</p>
<p>) as secs,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'yy'))<br />as yy,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'MM'))<br />as mo,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'dd'))<br />as dd,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'hh'))<br />as hh,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'mm'))<br />as mi,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'ss'))<br />as ss,</p>
<p>to_lowercase(EXTRACT_PATH(cs-uri-stem)) as<br />fpath,&nbsp;</p>
<p>to_lowercase(EXTRACT_FILENAME(cs-uri-stem))<br />as fname,&nbsp;</p>
<p>to_lowercase(EXTRACT_EXTENSION(cs-uri-stem))<br />as fext</p>
<p>from *.log</p>
<p>where sc-status&lt;&gt;401</p>
<p>&nbsp;</p>
<p>Additional information on using LogParser for SharePoint 2010 analysis will be included in my next blog.</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Log Parser</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-log-parser-2</link>
      <pubDate>Thu, 22 Sep 2011 14:06:43 GMT</pubDate>
      <dc:creator><![CDATA[]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2011/09/22/sharepoint-2010-capacity-management-log-parser-2/</guid>
      <description><![CDATA[Log Parser is a powerful tool to extract useful usage information from IIS logs. It can be used for...]]></description>
      <content:encoded><![CDATA[<p>Log Parser is a powerful tool to extract useful usage information from IIS logs. It can be used for data sources other than IIS log files (XML files, CSV files, registry, event logs, etc.), but for the SharePoint 2010 usage scenario, we will need IIS logs input only.</p>
<p>LogPraser can be downloaded at <a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=24659">https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=24659</a></p>
<p>Log Parser is a command-line tool that takes an input and a command to execute. It returns an output to the screen, an output file, SQL database or an image.</p>
<p>It is made up of three components:</p>
<ol>
<li>Input Formats: Log Parser supports many input formats such as Event Logs, XML Files, and Windows Registry. The one we will need is IIS Log files.</li>
<li>SQL-Like Engine Core: This component processes data from the input source. &nbsp;The syntax is SQL based, so it uses keywords like &ldquo;select&rdquo;, &ldquo;where&rdquo;, &ldquo;group by&rdquo;, etc.</li>
<li>Output Formats: Log Parser supports many output formats such as text file formats or SQL databases. The most important for our purpose is screen output and CSV format.</li>
</ol>
<p>&nbsp;More information on logparser formats and the syntax for logparser queries is present in the log parser documentation that is downloaded with the setup file mentioned above.</p>
<p>One of the best documents on how to use log parser for analyzing SharePoint usage is present at <a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;=tm&amp;id=4616">https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;=tm&amp;id=4616</a></p>
<p>&nbsp;For easier use of logparser, it is better to add it in the path environment variable. This will enable you to use the logparser command from any folder that you created. The default path is C:\Program Files (x86)\Log Parser 2.2</p>
<p>To start using LogParser on your environment, create a folder and put in it the log files for a specific day. Copy to that folder the log files from the different front end servers too if you have multiple load balanced front ends.</p>
<p>Below are the most important queries that will help you identify the usage patterns for your environment:</p>
<ol>
<li>To get different users and the number of times they are present in the logs, apply the following command. (Note that the output is present in LogFileUsers.csv file)</li>
</ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;logparser -i:IISW3C -o:CSV "select count(*) as ct,cs-username,logfilename from *.log group by cs-username,logfilename" &gt;LogFileUsers.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To get the total number of users per log file, run the following command:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV "select sum(ct) as sum,count(*) as users,logfilename from LogFileUsers.csv group by logfilename"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp; Get the top 20 users of the environment by the following query:</p>
<ol>logparser -i:IISW3C "select top 20 count(*) as ct,cs-username as user from *.log group by user order by ct desc"</ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Get the Requests Per Second:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Requests per second and their distribution over time is one of the most important measures to the environment usage. Thus, it is important to determine sizing for the new environment.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generally, when a user requests a page, the browser sends an anonymous request to the server. In case of SharePoint with Windows Authentication, the server will return HTTP 401 response, so the client browser will return authentication details. This 401 response produces no load on the server, but it is logged in the IIS log&nbsp;files. This is why the previous queries results contained requests with empty username.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In next queries, you will find a &ldquo;where&rdquo; clause that will exclude these 401 responses as they have no load on the server and shouldn&rsquo;t be considered within the Request Per Second (RPS).</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The queries to get the Requests per Second are:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Note: These queries use a script file &ldquo;load.txt&rdquo; as input. The script of the file is present at the end of this blog)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;logparser -i:IISW3C file:load.txt -o:csv -q &gt;RequestsRes.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- distribution by Seconds</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV &ndash;o:CSV "select count(*) as ct,secs,max(ss) as ss,max(mi) as mi,max(hh) as hh from RequestsRes.csv group by secs order by secs"&nbsp; -q &gt;secsdist.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- distribution by minutes</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "select count(*) as ct,div(secs,60) as minu,max(ss) as ss,max(mi) as mi,max(hh) as hh from RequestsRes.csv group by minu order by minu"&nbsp; -q &gt;mindist.csv</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --Hourly average Requests Per Minute</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser &ndash;i:CSV &ndash;o:CSV "select hh as Hour,avg(ct) as AvergeCT from mindist.csv group by hh order by hh" &gt;HourAvgRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Hourly Peak Requests Per Minute</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV &ndash;o:CSV "select hh,max(ct) from mindist.csv group by hh order by hh"&nbsp; &gt;MinPeakRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Hourly Average Requests Per Second</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;logparser -i:CSV &ndash;o:CSV "select hh as Hour,avg(ct) as SecPeak from secsdist.csv group by hh order by hh"&nbsp; &gt;SecAvgRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- &nbsp;Hourly Peak Requests Per Second</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV &ndash;o:CSV "select hh as Hour,max(ct) as SecPeak from secsdist.csv group by hh order by hh"&nbsp; &gt;SecPeakRPS.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The requests include requests for images orstatic files. Usually, user operations are 1/3 of the total requests.</p>
<p>&nbsp;</p>
<ol></ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. Get Distinct Users Over Time:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Apply the following commands to get the number of distinct users in an hour</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "selet count(*) as ct,cs-username,secs,max(ss) as ss,max(mi) as mi,max(hh) as hh from RequestsRes.csv group by secs,cs-username order by secs,cs-username"&nbsp; -q &gt;userdist.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Distinct Users By Hour</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "select hh,cs-username,sum(ct) as req from userdist.csv group by hh,cs-username order by hh,cs-username" &gt;userhhdist.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logparser -i:CSV -o:CSV "select hh,count(*) from userhhdist.csv group by hh" &ndash;q &gt;userhhdist_PerHour.csv</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Distinct Users By Minute</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logparser -i:CSV -o:CSV "select div(secs,60) as minu,cs-username,sum(ct) as req from userdist.csv group by minu,cs-username order by minu,cs-username" &gt;usermidst.csv</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logparser -i:CSV -o:CSV "select minu,count(*) from usermidst.csv group by minu" &gt;usermidst_PerMin.csv</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The script of the load.txt file is as follows:&nbsp;</p>
<p>select<br />EXTRACT_FILENAME(LogFilename),LogRow,</p>
<p>&nbsp;date, time, cs-method, cs-uri-stem,<br />cs-username, c-ip, cs(User-Agent), cs-host, sc-status, sc-substatus, sc-bytes,<br />cs-bytes, time-taken,</p>
<p>add(&nbsp;<br />add(<br />mul(3600,to_int(to_string(to_localtime(to_timestamp(date,time)),'hh'))),<br />mul(60,to_int(to_string(to_localtime(to_timestamp(date,time)),'mm')))</p>
<p>&nbsp;&nbsp; ),</p>
<p>&nbsp;&nbsp;<br />to_int(to_string(to_localtime(to_timestamp(date,time)),'ss'))</p>
<p>) as secs,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'yy'))<br />as yy,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'MM'))<br />as mo,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'dd'))<br />as dd,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'hh'))<br />as hh,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'mm'))<br />as mi,</p>
<p>to_int(to_string(to_localtime(to_timestamp(date,time)),'ss'))<br />as ss,</p>
<p>to_lowercase(EXTRACT_PATH(cs-uri-stem)) as<br />fpath,&nbsp;</p>
<p>to_lowercase(EXTRACT_FILENAME(cs-uri-stem))<br />as fname,&nbsp;</p>
<p>to_lowercase(EXTRACT_EXTENSION(cs-uri-stem))<br />as fext</p>
<p>from *.log</p>
<p>where sc-status&lt;&gt;401</p>
<p>&nbsp;</p>
<p>Additional information on using LogParser for SharePoint 2010 analysis will be included in my next blog.</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management: Check Current Enviornment Usage</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management-check-current-enviornment-usage</link>
      <pubDate>Mon, 19 Sep 2011 12:57:50 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2011/09/19/sharepoint-2010-capacity-management-check-current-enviornment-usage/</guid>
      <description><![CDATA[As mentioned in my previous post, the first step in capacity management is modeling the SharePoint...]]></description>
      <content:encoded><![CDATA[<p>As mentioned in my previous post, the first step in capacity management is modeling the SharePoint 2010 environment.</p>
<p>Modeling the environment is basically analyzing and estimating the usage of the environment in terms of workload and dataset. Workload describes the usage of the environment in terms of total number of users, concurrent users, requests per second, usage distribution, etc. Dataset describes the volume of content stored in the system and how it can be distributed.</p>
<p>Workload information that is required to have a model of the new environment is present at <a href="https://technet.microsoft.com/en-us/library/ff758645.aspx and">https://technet.microsoft.com/en-us/library/ff758645.aspx<span style="color: #000000;" color="#000000"> </span>and</a> they are as follows</p>
<table style="width: 97%;" border="1" cellpadding="0">
<tbody>
<tr>
<td valign="bottom">
<p><b>Characteristics </b></p>
</td>
<td valign="bottom">
<p><b>Value </b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>Average daily RPS</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Average RPS at peak time</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Total&nbsp; number of unique users per day</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Average&nbsp; daily concurrent users</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Peak&nbsp; concurrent users at peak time</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Total&nbsp; number of requests per day</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Expected&nbsp; workload distribution</p>
</td>
<td valign="top">
<p>No. of<br />&nbsp; Requests per day</p>
</td>
<td valign="top">
<p>%</p>
</td>
</tr>
<tr>
<td valign="top">
<p>Web&nbsp; Browser - Search Crawl</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Web&nbsp; Browser - General Collaboration Interaction</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Web&nbsp; Browser - Social Interaction</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Web&nbsp; Browser - General Interaction</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Web&nbsp; Browser - Office Web Apps</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Office&nbsp; Clients</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>OneNote&nbsp; Client</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>SharePoint&nbsp; Workspace</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Outlook&nbsp; RSS Sync</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Outlook&nbsp; Social Connector</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Other&nbsp; interactions(Custom Applications/Web services)</p>
</td>
<td valign="top"></td>
<td valign="top"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Dataset information required to have a model for the data sizes needed by the system are present at <a href="https://technet.microsoft.com/en-us/library/ff758645.aspx">https://technet.microsoft.com/en-us/library/ff758645.aspx<span style="color: #000000;" color="#000000"> </span></a>and they are as follows</p>
<table style="width: 97%;" border="1" cellpadding="0">
<tbody>
<tr>
<td valign="bottom">
<p><b>Object </b></p>
</td>
<td valign="bottom">
<p><b>Value </b></p>
</td>
</tr>
<tr>
<td valign="top">
<p>DB size&nbsp; (in GB)</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Number&nbsp; of Content DBs</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Number&nbsp; of site collections</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Number&nbsp; of web apps</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Number&nbsp; of sites</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Search&nbsp; index size (# of items)</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Number&nbsp; of docs</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Number&nbsp; of lists</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Average&nbsp; size of sites</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Largest&nbsp; site size</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">
<p>Number&nbsp;of user profiles</p>
</td>
<td valign="top"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Generally, the hard task is to come up with values to put in these tables. Usually, business users are the ones best equipped to fill these tables; however, they don&rsquo;t have the technical knowledge to do so. Thus, the technical capacity planner must work with the business users to build up a model of the environment based on the speculated needs.</p>
<p>If SharePoint 2010 is the first version of SharePoint that the customer is using, then filling the tables above will be like shooting in the dark as there is very little historical data to use for estimation. Thus, it is important to come up with logical estimates for usage of the new environment and monitor usage patterns for the environment and consider scaling up/out when needed.</p>
<p>Note: Underestimating the usage of the new environment can result in a smaller farm size and reduced performance. On the other hand, overestimating will result in a larger farm that will not be fully utilized.<br />Thus, it is important to choose an approach either to overestimate or underestimate based on expected usage of the environment.</p>
<p>Estimating the environment usage is easier if there is historical data to use as a basis for further estimation. Historical data could come from a SharePoint 2007 environment that will be upgrade or another present SharePoint 2010 environment with comparable usage patterns.</p>
<p>Thus, extracting usage data from a current system is crucial to building a correct model for the new environment. One preferred method to do that is to use LogParser for retrieving this information. The most important advantage of LogParser is its flexibility as it allows you to simply write queries against the IIS logs and get the results in the format you prefer.</p>
<p>The next blog post will be about LogParser. It will include the URL to download it, the query language options, and the most common queries that you will need to use to extract the tables needed above.</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Capacity Management</title>
      <link>https://docs.microsoft.com/archive/blogs/mohamed_el_ashmawi/sharepoint-2010-capacity-management</link>
      <pubDate>Wed, 24 Aug 2011 11:24:00 GMT</pubDate>
      <dc:creator><![CDATA[Mohamed El AShmawi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mohamed_el_ashmawi/2011/08/24/sharepoint-2010-capacity-management/</guid>
      <description><![CDATA[SharePoint 2010 Capacity Management
&nbsp;
It is important to plan for your SharePoint environment...]]></description>
      <content:encoded><![CDATA[<h1>SharePoint 2010 Capacity Management</h1>
<p>&nbsp;</p>
<p>It is important to plan for your SharePoint environment carefully before starting implementation. Many companies opt for a small or medium size farms (3 to 6 servers in the farm), but they need to make this decision based on a capacity planning exercise (Use the farm size guidelines at <a href="https://technet.microsoft.com/en-us/library/ff758647.aspx">https://technet.microsoft.com/en-us/library/ff758647.aspx</a>&nbsp;to determine the size farm appropriate to your organization).</p>
<p>Larger enterprises with large user base would generally opt for large size farms, so they need to do a more rigorous capacity planning exercise to select their initial deployment configuration.</p>
<p>It is important to note that Capacity Planning for SharePoint is part of a larger process for capacity management. Due to the nature of SharePoint, the data sizes and usage can get much higher than initially anticipated. For example, departments may decide to move more content into SharePoint than initially estimated, users may use My Sites heavily and demand even more quota for their sites, or custom built applications for some line of business applications may increase the usage of the SharePoint environment.</p>
<p>Thus, the SharePoint environment needs to be monitored carefully to identify any bottlenecks and remedy them quickly. Such issues are generally resolved by scaling-up or scaling-out. Scaling-up means adding more processing power, RAM, or disk to the current servers to cater for the load. Scaling-out means adding more servers to the SharePoint farm. &nbsp;</p>
<p>The general approach for capacity management in SharePoin is detailed at <a href="https://technet.microsoft.com/en-us/library/ff758647.aspx">https://technet.microsoft.com/en-us/library/ff758647.aspx</a>&nbsp;and it includes the following steps:</p>
<ol>
<li>Model</li>
<li>Design</li>
<li>Pilot, test &amp; Optimize</li>
<li>Deploy</li>
<li>Monitor and Maintain</li>
</ol>
<p>&nbsp;&nbsp;</p>
<p>In the next posts, I&rsquo;ll draft the approach for sizing of SharePoint 2010 and its different service applications. The approach will include the different decisions made and the reasoning behind them.</p>]]></content:encoded>
    </item>
  </channel>
</rss>