Определение системных требований (аппаратное обеспечение, процессор и память) для пакетного программного приложения - PullRequest
2 голосов
/ 12 ноября 2009

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

Ежемесячно необходимо запустить пакетное приложение, чтобы обработать около полумиллиона записей в соответствии с определенными правилами. Каждая запись имеет около 100 полей. Средой является .NET, C # и SQL-сервер со сторонним механизмом правил

Не могли бы вы предложить, как определить и / или определить, какое оборудование лучше всего подходит, если необходимо обрабатывать записи в течение, скажем, от 8 до 10 часов. Как изменится спецификация, если пользователь захочет увеличить или уменьшить временные рамки в зависимости от стоимости оборудования?

Заранее спасибо

Эбби

Ответы [ 3 ]

1 голос
/ 15 декабря 2009

Шаг 0. Создайте приложение. Невозможно определить реальную производительность мультикомпьютерной системы, как вы описываете, исходя из «бумажных» спецификаций ... Вам нужно попробовать ее и посмотреть, в чем заключаются самые большие замедления ... Это традиционно физический ввод-вывод, но не всегда ...

Шаг 1. Профиль с образцами наборов данных в изолированной среде. Это брутто метрика. Вы не пытаетесь выделить то, что занимает время, а просто измеряете общее время, необходимое для выполнения правил.

Что означает изолированная среда? Вы хотите использовать одно и то же сетевое оборудование между машинами, но не разрешаете другой трафик в этом сегменте сети. Это вводит слишком много переменных на данный момент.

Что означает профиль? Используя текущее оборудование, измерьте, сколько времени потребуется для выполнения при следующих обстоятельствах. Напишите программу для автоматизации генерации данных.

Сценарий 1. 1000 самых простых правил.

Сценарий 2. 1000 самых сложных правил, которые можно ожидать от пользователей.

Сценарии 3 и 4. 10 000 самых простых и сложных.

Сценарии 5 и 6. 25 000 самых простых и сложных

Сценарии 7 и 8. 50000 простейших и самых сложных

Сценарии 9 и 10. 100 000 простейших и наиболее сложных

Шаг 2. Анализ данных.

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

Разработайте линию тренда, которая показывает, сколько времени вы можете ожидать, если существует 200 000 и 500 000 правил. Выполните еще один пробег на 200 000. Посмотрите, верна ли линия тренда, если нет, пересмотрите метод разработки линии тренда.

Шаг 3. Измерьте активность базы данных и сети при обработке системой 20000 наборов правил. Посмотрите, происходит ли больше активности с большим количеством правил. Если это так, чем больше вы увеличиваете пропускную способность сервера SQL Server и обратно, тем быстрее он будет работать.

Если они «относительно низкие», то, скорее всего, скорость процессора и оперативной памяти будет там, где вы захотите улучшить требуемую спецификацию машин ...

Конечно, если все это тестирование будет стоить вашему работодателю дороже, чем покупка самого мощного серверного оборудования, возможно, просто количественно определите стоимость времени, потраченного на тестирование, по сравнению со стоимостью покупки лучшего сервера и выполнением с ним и только настройкой ваше приложение и SQL, которым вы управляете для повышения производительности ...

1 голос
/ 12 ноября 2009

Создать приложение и профилировать его?

0 голосов
/ 11 декабря 2009

Если эта система не первая в своем роде, вы можете рассмотреть следующие вопросы:

  • Повторное использование (после дополнительной оценки) требований к оборудованию из предыдущих проектов
  • Оценка требований к оборудованию на основе рабочей нагрузки и конфигурации оборудования существующего приложения

Если это не так, и требования к производительности очень важны, то лучшим способом было бы создать прототип с, скажем, 10 реализованными правилами. Обработайте набор данных с использованием прототипа и экстраполируйте на полный набор правил. На основе этой информации вы сможете определить начальные требования к производительности и оборудованию. Затем вы можете точно настроить эти спецификации с учетом планируемого роста объема обрабатываемых данных, требований к масштабируемости и избыточности.

...