Выделение кучи Java для Tomcat в экземпляре EC2 - PullRequest
5 голосов
/ 19 декабря 2011

Я пишу сервлет Java, который планирую развернуть в Amazon AWS с помощью Elastic Beanstalk.Мои тесты показывают, что все работает хорошо, используя экземпляр Small EC2 с использованием стандартного Tomcat AMI, который использует Beanstalk.

Я пытаюсь выяснить, как правильно распределить пространство кучи Java для этой конфигурации.Небольшой экземпляр имеет 1,7 ГБ памяти, поэтому я думаю, что куча 1024 МБ будет работать хорошо.Я понимаю, что память понадобится для других целей, хотя единственной «реальной» целью этого экземпляра является запуск Tomcat.И я также знаю, что есть некоторый момент с большими кучами, когда стандартная JVM Sun / Oracle действительно не работает.

Является ли это разумным способом распределения памяти?Должен ли я использовать больше или меньше?Какие инструменты я могу использовать, чтобы определить оптимальную конфигурацию?

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011

1024 кажется нормальным, может быть, немного.

Я не совсем уверен, что делает ваш сервлет, но чтобы дать вам представление, у меня есть приложение для электронной коммерции, в котором около 1000 пользователей ежедневно работают в 2 небольших экземплярах ec2. Загрузка Tomcat распределяется через mod_jk.

Я вообще не настраивал JVM и сохранил настройки по умолчанию. Я также использую терракотовое распределенное кеширование объектов, и этот процесс, кажется, потребляет большую часть памяти.

Вы развернуты на операционной системе Linux или Windows? IMO, Linux лучше справляется с управлением доступной памятью.

Что касается инструментов, я бы предложил развернуть ваше приложение как есть на небольшом экземпляре ec2 и использовать такой инструмент, как JMeter, для стресс-тестирования приложения. Во время стресс-теста вы можете открыть утилиту top (при условии, что ваше приложение установлено на linux, а top установлено).

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

0 голосов
/ 29 мая 2013

Проверьте newrelic для Java, чтобы определить ваш шаблон использования кучи.

...