Меня попросили указать требования к серверному оборудованию для приложения, которое я сейчас разрабатываю, и я не уверен в своих способностях сделать это правильно. В идеале я хотел бы получить пошаговый список того, как это сделать сам, но, читая другие похожие вопросы, это не так просто, и я, вероятно, получу здесь лучшие ответы, просто указав, каковы мои требования.
Приложение представляет собой тонкий клиент WPF, который обменивается данными через WCF с серверным приложением, размещенным в IIS. В настоящее время существует мало требований к бизнес-логике, но это может измениться на более поздних этапах проекта и может включать WWF для некоторых из этих требований. Я использую NHibernate для уровня сохраняемости и буду использовать AppFabric для кэширования второго уровня. Наконец, база данных будет базой данных SQLServer 2008 R2.
Сайты, для которых меня попросили определить спецификацию, будут иметь около 20 пользователей. Чтобы снизить затраты, они хотели бы единое решение, которое с точки зрения производительности, с таким небольшим количеством пользователей, я считаю, будет в порядке, однако я понимаю риски этого как с точки зрения безопасности, так и с точки зрения времени простоя. и т.д. Если я здесь наивен, дайте мне знать.
К сожалению, на данном этапе я понятия не имею, сколько данных нужно будет хранить в базе данных - в конечном итоге могу ли я просто предположить, что чем больше данных мне нужно сохранить, тем больший жесткий диск мне понадобится?
Если я пропустил какую-либо ценную информацию, дайте мне знать в комментариях.
Обычным подходом было бы изучить дерево основных возможных узких мест «мощность процессора», «производительность дискового ввода-вывода» и «требования к памяти», чтобы оценить приблизительную потребность в вашем конкретном случае для каждого из них и перестроить степени, чтобы вам было удобно (что немного ненаучно, но, конечно, потребует обоснованного предположения, включая прогнозы о будущей нагрузке и моделях использования и возможных ресурсоемких функциях).
«Объем данных», скорее всего, не будет иметь значения при размерах сегодняшних жестких дисков - скорее всего, вы сможете получить "вполне достаточно" объем хранилища при невысокой стоимости.
Узкие места памяти и производительности ввода-вывода обычно взаимосвязаны, поскольку ОЗУ используется для кэширования значительно более медленных операций ввода-вывода жесткого диска, а жесткие диски используются как пространство подкачки в условиях нехватки памяти.
В общем, из-за сложности алгоритмов в системах и библиотеках никакая оценка, сделанная редакционной комиссией, не будет столь же хороша, как проверка рабочей нагрузки в реальном времени и ее проекция. С сегодняшними возможностями в области хостинга и виртуализации я бы лично посоветовал просто использовать метод «попробуйте, прежде чем покупать» и арендовать для этой цели машину с Windows за пределами рынка хостинга.