Параметры Apache/Tomcat

<VirtualHost *:443>
</VirtualHost>
3
задан 26 August 2011 в 02:35
3 ответа

Apache

Ознакомьтесь с собственной документацией Apache, она содержит более подробные сведения, чем я мог бы здесь:

http://httpd.apache.org/docs/2.0/misc/perf -tuning.html

JVM

Установите для Xmx JVM не более 70% (примерно) от общей свободной физической памяти. Причина этого в том, что библиотеки perm gen и JVM также занимают дополнительное место - цель состоит в том, чтобы общая память процесса никогда не использовала виртуальную память / память подкачки. Если вы установите слишком большое значение, вы начнете видеть такие проблемы, как «превышен предел накладных расходов сборщика мусора».

Ваш алгоритм сборщика мусора может иметь большое влияние на производительность - убедитесь, что вы используете какую-либо форму параллельного сборщика, а не сериал "пауза, отметка и развертка". JVM обычно делает это автоматически в режиме -server .

Используйте инструмент, такой как JConsole или JVisual VM, чтобы проверить сборщик мусора и сколько кучи вы фактически используете, и отрегулируйте его до нужного размера - слишком большая куча может повлиять на время сборки мусора.

Tomcat

Как для потоков HTTP-коннектора в одном экземпляре Tomcat, в зависимости от вашего приложения, вы обычно можете увеличить количество потоков примерно до 600, прежде чем возникнут проблемы - однако часто нет необходимости в том, чтобы оно было настолько большим - вы просто добавляете больше нагрузки на ваш процессор и память.

Когда вы довольны максимальным количеством потоков, я затем устанавливаю minSpareThreads и maxSpareThreads относительно этого. Увеличение значений, если я знаю, что у меня появятся всплески новых подключений и т. Д.

Затем acceptCount . Это максимальное количество подключений в очереди -c onnections, которые выходят за пределы этого параметра после использования потоков соединителя, получат сообщение «В соединении отказано».

В качестве небольшой настройки вы можете установить enableLookups (разрешить DNS-имя хоста поиски) на ложь. Когда он включен, (незначительно) отрицательно влияет на производительность.

Также проверьте Tomcat Native Library, в ней используется собственный код для повышения производительности при выполнении определенных операций (например, файловый ввод-вывод и т. Д.).

Нагрузочное тестирование

Для базовой нагрузки / тестирование производительности, ознакомьтесь с Apache JMeter:

http://jakarta.apache.org/jmeter/

Мы используем его для проверки производительности базовой загрузки страницы с тестовыми сценариями JMeter с использованием сотен одновременных запросов. Тем не менее, для его запуска вам понадобится довольно здоровый сервер (не на том же компьютере, на котором вы используете Apache HTTPD и Tomcat).

В качестве незначительной настройки вы можете установить для enableLookups (разрешить поиск имени хоста DNS) значение false. Когда он включен, (незначительно) отрицательно влияет на производительность.

Также проверьте Tomcat Native Library, в ней используется собственный код для повышения производительности при выполнении определенных операций (например, файловый ввод-вывод и т. Д.).

Нагрузочное тестирование

Для базовой нагрузки / тестирование производительности, ознакомьтесь с Apache JMeter:

http://jakarta.apache.org/jmeter/

Мы используем его для проверки производительности базовой загрузки страницы с тестовыми сценариями JMeter с использованием сотен одновременных запросов. Тем не менее, для его запуска вам понадобится довольно здоровый сервер (не на том же компьютере, на котором вы используете Apache HTTPD и Tomcat).

В качестве незначительной настройки вы можете установить для enableLookups (разрешить поиск имени хоста DNS) значение false. Когда он включен, (незначительно) отрицательно влияет на производительность.

Также проверьте Tomcat Native Library, в ней используется собственный код для повышения производительности при выполнении определенных операций (например, файловый ввод-вывод и т. Д.).

Нагрузочное тестирование

Для базовой нагрузки / тестирование производительности, ознакомьтесь с Apache JMeter:

http://jakarta.apache.org/jmeter/

Мы используем его для проверки производительности базовой загрузки страницы с тестовыми сценариями JMeter с использованием сотен одновременных запросов. Тем не менее, для его запуска вам понадобится довольно здоровый сервер (не на том же компьютере, на котором вы используете Apache HTTPD и Tomcat).

ознакомьтесь с собственной библиотекой Tomcat, в ней используется собственный код для повышения производительности определенных операций (например, файлового ввода-вывода и т. д.).

Нагрузочное тестирование

Для базового тестирования нагрузки / производительности ознакомьтесь с Apache JMeter:

http: / /jakarta.apache.org/jmeter/

Мы используем его для тестирования производительности базовой загрузки страницы с тестовыми скриптами JMeter, использующими сотни одновременных запросов. Тем не менее, для его запуска вам понадобится довольно здоровый сервер (не на том же компьютере, на котором вы используете Apache HTTPD и Tomcat).

ознакомьтесь с собственной библиотекой Tomcat, в ней используется собственный код для повышения производительности определенных операций (например, файлового ввода-вывода и т. д.).

Нагрузочное тестирование

Для базового тестирования нагрузки / производительности ознакомьтесь с Apache JMeter:

http: / /jakarta.apache.org/jmeter/

Мы используем его для тестирования производительности базовой загрузки страницы с тестовыми скриптами JMeter, использующими сотни одновременных запросов. Тем не менее, для его запуска вам понадобится довольно здоровый сервер (не на том же компьютере, на котором вы используете Apache HTTPD и Tomcat).

4
ответ дан 3 December 2019 в 05:49

разумным начальным значением является 25% нового размера (Xms) по сравнению с общим размером кучи (Xmx)

Я бы посоветовал вам затем профилировать ваше приложение - на основе пиковой нагрузки и наблюдать использование памяти с помощью LambdaProbe или аналогичного средства и посмотрите, что вам нужно изменить

0
ответ дан 3 December 2019 в 05:49

Куча, я бы изначально установил ms = mx = 1 ГБ. 1.5, если ваше приложение требует памяти. Я никогда не видел никакого смысла (или выгоды) в наличии переменного размера кучи в серверной среде.

Определение размера пула потоков - это отдельная глава. В первую очередь я говорю о Tomcat.

Если в вашем приложении много синхронизированных разделов (общие кеши, внешние ресурсы / интеграции только с последовательным доступом и т.д.), рабочие потоки имеют убывающую отдачу по мере их увеличения, тем больше времени они проведут в ожидании друг друга. С вашими спецификациями и ничего не зная о вашем приложении, я скажу 50 в качестве отправной точки с точки зрения размера пула потоков. Вам нужно будет запустить несколько тестов производительности, чтобы правильно настроить это. Используйте, например, jmeter, и создайте тестовый сценарий, который имитирует один или несколько основных вариантов использования на вашем сайте. Используйте 2 или 3 временных экземпляра EC2 в качестве генераторов нагрузки (они понадобятся вам только на короткое время) при запуске приложения jmeter-server.

Запускайте тестовые сценарии с перестановками, например, 60, 120, 180 и 240 потоков запросов jmeter и 30, 50, 70 и 90 рабочих потоков tomcat. Сравните время отклика и использование ЦП и памяти на вашем сервере. Для получения базовой информации о процессоре / памяти вы можете использовать стандартную информацию jconsole или visualvm вне вашей JVM. Вы также можете запустить JVM Tomcat с подробной сборкой мусора (ведение журнала GC) и изучить память и поведение GC с помощью чего-то вроде tagtraums GC viewer .

они понадобятся мне только на короткий период), где вы запускаете приложение jmeter-server.

Запустите тестовые сценарии с перестановками, например, 60, 120, 180 и 240 потоков запросов jmeter и 30, 50, 70 и 90 tomcat рабочие потоки. Сравните время отклика и использование ЦП и памяти на вашем сервере. Для получения базовой информации о процессоре / памяти вы можете использовать стандартную информацию jconsole или visualvm вне вашей JVM. Вы также можете запустить JVM Tomcat с подробной сборкой мусора (ведение журнала GC) и изучить память и поведение GC с помощью чего-то вроде tagtraums GC viewer .

они понадобятся мне только на короткий период), где вы запускаете приложение jmeter-server.

Запустите тестовые сценарии с перестановками, например, 60, 120, 180 и 240 потоков запросов jmeter и 30, 50, 70 и 90 tomcat рабочие потоки. Сравните время отклика и использование ЦП и памяти на вашем сервере. Для получения базовой информации о процессоре / памяти вы можете использовать стандартную информацию jconsole или visualvm вне вашей JVM. Вы также можете запустить JVM Tomcat с подробной сборкой мусора (ведение журнала GC) и изучить память и поведение GC с помощью чего-то вроде tagtraums GC viewer .

Для получения базовой информации о процессоре / памяти вы можете использовать стандартную информацию jconsole или visualvm вне вашей JVM. Вы также можете запустить JVM Tomcat с подробной сборкой мусора (ведение журнала GC) и изучить память и поведение GC с помощью чего-то вроде tagtraums GC viewer .

Для получения базовой информации о процессоре / памяти вы можете использовать стандартную информацию jconsole или visualvm вне вашей JVM. Вы также можете запустить JVM Tomcat с подробной сборкой мусора (ведение журнала GC) и изучить память и поведение GC с помощью чего-то вроде tagtraums GC viewer .

1
ответ дан 3 December 2019 в 05:49

Теги

Похожие вопросы