Whether it comes down to get the best performances for your SharePoint on both Development or Production environments there are always multiple components involved making it difficult sometimes to quickly identify the ones causing potential bottlenecks.
SharePoint as an Application is not exempt from this scenario. Actually SharePoint relates to multiple layers and technologies from both an Infrastructure and Content perspective making this exercise even more interesting.
The purpose of this article is to mention the typical configurations that should be controlled and monitored over the time to ensuring best performances in the long period. The topics mentioned on this article might not be exhaustive but are the most relevant to my experience based on real case scenarios. So feel free to use these ones as a starting point to check your environment.
Generally speaking these are the areas where the common pitfalls could be found:
Slow or bad configured storage and in particular the one hosting SQL Content Databases for SharePoint
Poor configurations for VMs hosting the different SharePoint Servers
Antivirus and HIPS (Host Intrusion Prevention Software) running with no specific filters for SharePoint
Ineffective configuration for the Cache
Additional Application Services installed by the PSconfig wizard without using them and resulting in a waste of resources
Although the Wizard can be a convenient way of installing everything sometimes is not needed. For Production environments the best approach should be PowerShell to granularly deploy only the required components
Additional configuration for shared components (eg. IIS, Network) when multiple applications are using same resources
For those environments where multiple applications are installed on the same server it is necessary to optimize also the resources that each application will be using. In the case of SharePoint components like IIS, Network and Memory are essential. Ideally a maintenance plan which include the monitoring and assignment of these resources to pertinent applications would be the preferred method not to let the applications to step on each other toes
SharePoint application not working within supported software boundaries
This is a typical one where for example after upgrades, migration or not thoughtful Information Architecture restructures, SharePoint is pushed to the limits with Sites, Lists, Web Parts or even customizations taking more resources than planned or expected