Назад | Перейти на главную страницу

Проблемы с производительностью с windows server, sql-server и apache

У меня возникли проблемы с производительностью на моем сервере, который работает под управлением Windows Server 2008, SQL Server 2008 R2 и apache. Это чисто внутренний веб-сайт, на который в общей сложности обращаются около 6 человек. Однако эти шестеро активно используют его весь день. Моя проблема в том, что django часто сообщает об ошибке тайм-аута MSSQL. Проблема возникает, когда есть несколько пользователей, у каждого загружается несколько страниц. AFAICS, это может быть вызвано несколькими причинами:

  1. Моя конфигурация django: я использую Johnny Cache с серверной частью memcached. Для справки: django-debug-toolbar (который работает только в моей тестовой среде, а не на сервере) показывает, что средняя страница дает около 100 SQL-запросов. Это нормально? Однако у меня также есть пара страниц, которые извлекают данные для нескольких записей и могут обрабатывать до 2000 SQL-запросов.

  2. Конфигурация Apache / MSSQL: я мало знаю о настройке любого из них, поэтому я оставил для них обоих настройки по умолчанию. Что мне нужно сделать для повышения производительности?

  3. Недостаточно ресурсов. Мой сервер (который является виртуальной машиной), похоже, работает нормально, используя около 20% ЦП и около 60% ОЗУ. Он имеет два двухъядерных процессора Intel Xenon и 4 ГБ оперативной памяти.

Подводя итог моему вопросу, может ли кто-нибудь, имеющий некоторый опыт в такой настройке, дать мне какой-либо совет, на каком из вышеперечисленных мне следует сосредоточиться для повышения производительности?

Чтобы исключить проблемы производительности, связанные с сервером, возможно, стоит отслеживать количество аппаратных ошибок в секунду в мониторе ресурсов. Большое количество отказов страниц или любое увеличение означает, что вы пытаетесь получить доступ к данным, которые находятся на жестком диске, а не в памяти.

Я также обнаружил, что процентные данные, которые Windows 2008 сообщает о виртуальной машине, иногда могут быть ненадежными. Убедитесь, что объем памяти, выделенный для виртуальной машины, соответствует значению, сообщаемому Windows.