Проектирование одновременных запросов баз данных

StackOverflow https://stackoverflow.com/questions/3501071

Вопрос

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

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

Вопрос, который я выдвинул из инфраструктурных людей, это «сколько одновременных пользователей». Давайте не будем обсуждать обоснование поиска только этой фигуры; Это просто то, что просили в этом случае!

Это веб-сайт веб-сайта, SQL Server Bashend с довольно фиксированной, легко читающей аудиторией. Чтобы пригнуть это к фактическим одновременным запросам в очень грубой моде, то, как я его вижу, это сводится к все более гранулированным единицам измерения:

  1. Общая аудитория
  2. Одновременные сеансы
  3. Одновременные запросы
  4. Одновременные запросы DB

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

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

Это было полезно?

Решение

Я попробую, но, очевидно, не зная деталей, это довольно сложно дать точный совет.

Прежде всего, ребята для инфраструктуры, возможно, задали этот вопрос с точки зрения лицензирования (SQL Server может быть лицензирован на пользователя или на CPU)

Теперь вернемся к вашему вопросу. «Общая аудитория» важно, если вы можете прогнозировать / Работать этот номер. Это может дать вам худший сценарий, когда все пользователи сразу попадают в базу данных (например, 9am, когда все входятся в систему).

Если вы храните информацию о сеансе, у вас, вероятно, будет не менее 2 подключений на пользователя (1 сеанс + 1 основной DB). Но это число может быть (иногда заметно) уменьшено путем объединения соединений (в зависимости от того, как вы подключаетесь к базе данных). Используйте сценарий наихудшего случая - 50 системного соединения + 2 * Количество пользователей.

Одновременные запросы/запросы зависят от характера приложения. Нужна больше деталей. Более одновременные запросы (на переднюю часть) не обязательно будут переведены в большее количество запросов на заднем плане.

Сказав все это - для целей стоимости вам нужно сосредоточиться на более широкой картине.

  1. Лицензия SQL Server (если моя память служит мне правильно) будет стоить ~ 128K AUD (Dual Xeon). Горячий/теплый резерв? Удвоить стоимость.

  2. Дисковое хранилище - сколько хранения вам нужно? Диски относительно дешевы, но если вы собираетесь использовать SAN, стоимость может стать заметной. Также - чем больше дисков, тем лучше с точки зрения производительности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top