I am running into some performance issues on my server, which runs Windows server 2008, SQL Server 2008 R2, and apache. This is a purely internal website, and is accessed by a total of about 6 people. However, those six use it heavily all day. My issue is that django frequently reports a MSSQL timeout error. The problem arises when there are several users, each with a few pages loading. AFAICS, there are a few things which could be causing this:
My django configuration: I am using Johnny Cache, with a memcached backend. For reference, django-debug-toolbar (which only runs on my testing environment, not the server) shows that an average page results in about 100 SQL queries. Is this normal? However, I also have a couple of pages which pull data for multiple records, and can go up to 2000 SQL queries
Apache/MSSQL configuration: I don't know much about tuning either of these so I have left them both with default settings. Is there anything specific I should do to improve performance?
Insufficient resources. My server (which is a VM) appears to be running fine, using about 20% CPU and about 60% RAM. It has two Intel Xenon dual-core processors and 4GB RAM.
To summarise my question, can anyone with a bit of experience in this sort of setup give me any advice on which of the above I should focus on to improve performance?