Наша среда разработки состоит из JBoss 5.0.1 DB Server, SQL Server 2008, Oracle IDM. Оборудование - Win 2008 32 бит, 4 ГБ оперативной памяти. Мы достигли стадии, когда наша среда не может обрабатывать приложение, в результате чего JBoss завершает работу, выкидывая ошибки памяти и загружая процессор до 90%. Я ищу методологию для расчета правильного размера сервера, где я ввожу TPS, максимальное количество одновременных пользователей, максимальное использование ЦП и т. Д., Чтобы получить количество серверов, размер ОЗУ, количество ядер. Я ожидаю, что количество заявок будет расти на 10% ежегодно. Балансировщик нагрузки и аварийное переключение также следует учитывать при определении размера.
Это действительно довольно просто.
Вы знаете, что ваш текущий сервер может обработать, прежде чем он упадет (и вы, вероятно, профилировали систему, чтобы определить, какой ограничивающий фактор - ОЗУ, ЦП и т. Д.).
Возьмите 2/3 или 3/4 значения ограничивающего фактора при падении вашего сервера и объявите его «единичной нагрузкой», или U
.
Оцените, какой, по вашему мнению, будет ваша будущая нагрузка (это оставлено в качестве упражнения для читателя. Только вы знаете свои модели роста.) И назовите это «целевой нагрузкой» или T
.
Если сомневаетесь, оцените высоко.
Количество необходимых серверов равно ceil(T/U)+1
.
То есть:
Выяснить, сколько вам нужно ОЗУ, мощности процессора, пропускной способности дискового ввода-вывода и т. Д., не то, что Server Fault может сделать для вас. Если вы не знаете, вам нужно протестировать и профилировать.
Основываясь на вашем опыте работы в вашей среде, вы можете определить, нужно ли вам добавить больше ОЗУ или ЦП к вашим серверам для достижения баланса (сервер почти «исчерпал» свои характеристики и почти одновременно насыщает ЦП / ОЗУ / диск / и т. Д. , поэтому у вас не будет ресурсов, которые тратятся зря).