The number of authentication request's and authentication challenges takes valuable seconds deteriorating performance.
Resources:
http://support.microsoft.com/kb/2593042
http://blogs.msdn.com/b/crminthefield/archive/2011/12/29/enable-wcf-compression-to-improve-crm-2011-network-performance.aspx
A number of tweaks can be done on the CRM side to improve performance.
There are a number of registry keys targeting different types of performance issues and types of environments, Microsoft is now releasing with each update Roll Up a package named:'tools'.This package contains a tool that can implement a number of updates/optimizations which were previously reserved for registry implementations, this way makes it easier to enable optimizations centrally and avoid creating registry keys across multiple front-end servers.
http://support.microsoft.com/kb/2691237
e.g number of registry keys part of RU6
https://community.dynamics.com/product/crm/crmtechnical/b/crminthefield/archive/2012/04/26/avoid-performance-issues-by-rescheduling-crm-2011-maintenance-jobs.aspx
http://crmjobeditor.codeplex.com/
Note: Make sure you enable IIS WCF compression from point 2. IIS
Configure the below SQL script as a job and run every 30min, if the email router crashes, the job will check for pending emails and sends an email.
Declare @total int
Declare @oldest int
Declare @newest int
Declare @subject75 varchar(max);
Declare @subjectOldest varchar(max);
set @total = (
select COUNT(*) as total
FROM FilteredActivityPointer
where activitytypecode = 4202 AND--Email
statuscode = 6 --pending
)
set @oldest = (
select top 1 DATEDIFF(mi,FilteredActivityPointer.createdon,GETUTCDATE()) as minutes
ORDER BY minutes DESC
set @newest = (
ORDER BY minutes ASC
-- Sets the Email Subject
set @subjectOldest = 'Email router - emails pending on CRM with' + ' ' + convert(varchar(max),@oldest)+ ' ' + 'minutes delay';
set @subject75 = 'Email router - More than 75 emails pending';
--If more than 75 emails and the oldest bigger than 30minutes send notification
IF (@total > 75) AND (@oldest > 30)
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'CRM Production',
@recipients = 'email@domain.com',
@subject = @subject75;
END
--If Oldest email older than 60 minutes send notification
IF @oldest > 60
@subject = @subjectOldest;