Я бы начал со сбора базовых данных о критических ресурсах - обычно это ЦП, использование памяти, использование диска, использование сети - и отслеживать их во времени. Если какой-либо из этих ресурсов показывает регулярные всплески, когда они остаются на 100% мощности более доли секунды, при текущем использовании, у вас где-то есть узкое место. В этом случае вы не можете принять дополнительную нагрузку без вероятных сбоев.
Затем я бы начал выяснять, какой ресурс узкого места для вашего приложения - это зависит от приложения, но в большинстве случаев это узкий ресурс, который останавливает вас от дальнейшего масштабирования. Ваш процессор может почти простаивать, но, например, вы перегружаете дисковый ввод-вывод. Это сложный процесс - нагрузочное и стресс-тестирование - это способ go.
Если вы можете устранить узкое место, купив лучшее оборудование, сделайте это - это намного дешевле, чем переписывать программное обеспечение. . Если вы не можете купить лучшее оборудование, обратите внимание на балансировку нагрузки. Если вы не можете балансировать нагрузку, вам нужно взглянуть на архитектуру и реализацию приложения и посмотреть, есть ли способы устранить узкое место.
Переход от одного ресурса к другому довольно типичен. - у вас есть процессор, чтобы вести себя, но теперь, когда вы увеличиваете трафик c, вы увеличиваете дисковый ввод-вывод; как только вы решите это, у вас может появиться еще одна проблема с процессором.