This question requires vast research.
We can only suggest some solutions.
1. NET Tab
First of all check the developer tools of browsers like "Firebug"
(in Firefox), which have different tabs. On "Net"
tab, you can see all the requests
made to your website while loading of any Page.
For each process, you can see all the details and Timeline, which shows how much time the request is taking to get/post the data
So, when your website is running slow, you can see here, which request exactly taking time and find out what you have written in the code for that.
Sometimes one image load request can take several minutes and then fail to load, which slows down the website.
You need to make a list of all the requests which are taking time to load on the NET tab, and try to research on them.
2. Console Tab
Console tab will show you all the errors
which your website encounters while loading.
You can correct them.
As you are using WCF Services and accessing the CRM, check whether all the connection files are releasing and disposing the connection objects after using them.
It is the most important to dispose or close the connections
, otherwise the connection pool will be unnecessarily full and will only allow new connections after it releases resources automatically (Garbage Collection), which usually takes time.
Try to make more asynchronous requests in Plug-Ins, Workflows
, which will not block the user from doing any tasks further.
Refer the below articles and discussions for more suggestions.
1. Optimizing and Maintaining a Microsoft Dynamics CRM 2011 Server Infrastructure
2. Optimizing and Maintaining Client Performance for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online
3. Please Help - IIS 7 is SLOW!! - WIN 2008 w/ Sharepoint & CRM 4