1024 кажется нормальным, может быть, немного.
Я не совсем уверен, что делает ваш сервлет, но чтобы дать вам представление, у меня есть приложение для электронной коммерции, в котором около 1000 пользователей ежедневно работают в 2 небольших экземплярах ec2. Загрузка Tomcat распределяется через mod_jk.
Я вообще не настраивал JVM и сохранил настройки по умолчанию. Я также использую терракотовое распределенное кеширование объектов, и этот процесс, кажется, потребляет большую часть памяти.
Вы развернуты на операционной системе Linux или Windows? IMO, Linux лучше справляется с управлением доступной памятью.
Что касается инструментов, я бы предложил развернуть ваше приложение как есть на небольшом экземпляре ec2 и использовать такой инструмент, как JMeter, для стресс-тестирования приложения. Во время стресс-теста вы можете открыть утилиту top (при условии, что ваше приложение установлено на linux, а top установлено).
Попробуйте сломать ваше приложение, увидев, какую нагрузку оно может обработать. В этом прелесть ec2, вы можете настроить тестовую среду за считанные минуты и сразу отказаться от нее.