This is a sample email we get from time to time about performance tuning on Windows 2008 / 2008 R2 x64 bit, and have turned it into a case study on server tuning.
Question: My customer's FileHold Server running on dedicated hardware with FileHold is running somewhat slowly, the users all use the Desktop client, and the Server has the following hardware in place:
- Windows 2008 R2 x64
- MS SQL 2008 R2
- 2 x dual core Opteron cpu @ 2.4ghz
- 8gigs of ram
- The same server also runs ACT which has its own SQL 2005 Express installed, this small application takes quite a bit of server memory to run.
Also, there are 5 scheduled tasks that seem to run all the time, is this a problem?
My Healthchecker report is attached. How can I improve performance?
Signed, A FileHold Reseller.
We thank you for your email to support AT filehold.com - here is a best practices style list of things to do to improve server performance.
Dedicated Server Requirement - please read this page for System Requirements.
Scheduled Tasks and IT Overview of FileHold System components: In response to your question - There are multiple FileHold scheduled tasks that runs every 60 seconds, that is what you are seeing in the task manager, and this is normal. An IT overview of FileHold can be found on this page.
Dedicated Server: As soon as possible, you must move ACT and SQL Express 2005 to another server, FileHold requires a dedicated server for FileHold. No other third party application can share the same server for any reason other than software related to backup, server imaging or other business continuity reason. Anything that also uses IIS Web Server is forbidden. Support is invalidated when the server shares the Windows, and additional charges to repair the system will reply. FileHold has this requirement to avoid performance conflicts, as well as deeper technical issues that can affect FileHold. FileHold is typically a mission critical application, and this requirement is bases on years of experience.
Health Checker Analysis: From the FileHold Server Health Checker there is one configuration issue - you need to correctly configure the Temporary ASP.NET folder and sub folders/files etc - by giving the FH_Service full control of this directory:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files
Hardware and System Requirements: You will want to increase the RAM from 8.0 GB to 16 GB or more. 8.0 GB of Ram is enough to run a Windows 7 desktop, but running SQL Server, IIS Web Server, FileHold Server Application (which includes full text search indexing service, and other services) takes at minimum 8.0 GB of Ram, and usually 16GB or more. Our system requirements state to give a basic level of performance, to use 8.0 GB of RAM at minimum.
Truncate SQL Log Files: To save on storage space, and as a best practice for Server tuning with MS SQL Server, you should make sure SQL databases and SQL log files are being given a full backup, and that your SQL log files are given a regular "shrink" down to a small size, otherwise they will grow exponentially. We set my SQL log files to simple recovery mode once made small - to avoid a gigantic SQL Log file in the future. This excellent Microsoft TechNet article clears up a lot of misconceptions about SQL backups of log files.
TCP/IP Port Exhaustion: We also recommend that you perform the task on this Windows Server Tuning help page - one command line will increase the performance of your system - since by default, Windows Server is limited to 16,000 simultaneous TCPIP connections.
Antivirus: If you are running antivirus/security suite software on the server - make sure to tune it so that the fileholdadm.exe, the w3wp.exe and the sqlserver.exe processes are not being monitored for real-time threat analysis. In most Anti-virus software, you can set exceptions for these processes specifically. Also, if you are setting up Anti-virus - make sure it alerts someone in IT to investigate if a document is found to contain a virus and is removed or quarantined. Read this article about anti-virus best practices for the FileHold Desktop Client for more information - and read this article for what to do on the server for Anti-virus and security considerations.
SQL tuning - We recommend that a nightly maintenance task schedule be setup using SQL Management Studio. You will want to update statistics and indexes on all 5 FileHold databases. Read the Microsoft SQL Server Tuning and Performance - Best Practices Guide for more information. The same methods can be used in SQL 2008.
Change .NET App pool recycling from default - this does nothing for performance tuning, but helps with when the application pool resets itself, since by default this is every 24 hours, and the system will disconnect all users, who then have to log on. The following article shows you how to change this to a time where usage is minimal.