Какой самый быстрый способ повысить производительность базы данных?целиться прямо в мою цель (5000 пользователей)?Или сначала использовать искусственные вехи? - PullRequest
2 голосов
/ 23 августа 2011

Какой самый быстрый способ повышения производительности базы данных?

я должен идти прямо к моей цели (5000 пользователей)? Или я должен пройти через искусственные вехи - (например - сначала 1000 пользователей, только потом 2500 ...)?

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

Факты:

  • Производительность базы данных для 50 одновременно работающих пользователей хорошая
  • Производительность базы данных более 50 недопустима, и я имею в виду, что запросы к базе данных занимают слишком много времени. Вместо ~ 0,5 с они обычно занимают от ~ 2 до ~ 7 с, а иногда даже ~ 30 с
  • Приблизительно у 70 пользователей система перестает работать вообще, большинство запросов к базе данных занимает более ~ 30 секунд
  • База данных реализована в SQL SERVER 2005 \ 8

Требования: Приложение должно поддерживать 5000 одновременно работающих пользователей.

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

  1. Определение целевых показателей производительности.
  2. Создание среды тестирования, идентичной (насколько это возможно) производственной среде
  3. Проверьте, в порядке ли целевые показатели производительности. если нет, сделайте следующее, пока не достигнете цели производительности

    3.1 Повышение производительности (за один раз) путем переконфигурации сервера, улучшений индексов, улучшений кода, улучшений структуры базы данных и многого другого с использованием таких инструментов трассировки и мониторинга, как - счетчики производительности, профилировщик SQL Server, журналы и многое другое

    3.2 Проверьте и проанализируйте влияние изменений и примите или отклоните их

Мой вопрос: Предполагая, что заставить систему работать на чем-то еще, чем 5000, скажем, например, 1000 или даже 2500 пользователей Не дает никакой ценности для бизнеса , Каков самый быстрый способ , чтобы добраться до 5000 пользователей?

  1. Добраться туда напрямую?
  2. Или сначала доберитесь до меньших вех? например - сначала цель 500 пользователей, затем 1000, затем 2500 ....
  3. Что-то еще ??

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

Ответы [ 3 ]

3 голосов
/ 23 августа 2011

Например, настройка до 500 пользователей может привести к решениям, которые не будут эффективными при увеличении до 1000 пользователей. Пример: давайте представим, что вы можете настроить кэш для 500 пользователей, возможно, вам не хватит оперативной памяти, чтобы получить хороший результат для 5000.

Иди к своей цели.

2 голосов
/ 23 августа 2011

Я не вижу, чтобы искусственные вехи действительно добавляли какую-либо ценность, если требование, если 5000 одновременно работающих пользователей, идет прямо к этому, иначе вы рискуете потратить время на оптимизацию, которая не масштабируется.

0 голосов
/ 23 августа 2011

Я бы сказал, что получение небольшого веха может создать вам проблему. Представьте, что у вас есть небольшое количество пользователей (или очень большое), вам нужно будет найти точку, где вехи не слишком велики и не слишком малы. Это может быть сложно.

...