Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 15.02.08 13:40
Оценка:
Здравствуйте, мне хотелось бы проконсультироваться на счёт возможности поднятия производительности системы.
Ситуация такова:
Имеется 80 тысяч пользователей, каждый в течении 5 минут должен обратиться к Web Service исполняемому на Weblogic 9.2.1 и получить результаты своего запроса. У каждого пользователя запущен агент написанный на VC++ который с периодичностью и обращается к веб сервису.
Проблема в том что сервер вешается в таком режиме работы. По-видимому по-причине большого количества запускающихся параллельных потоков.


Подскажите пожалуйста какие варианты решения данной проблемы могут быть ? Приветствуются любые идеи.
Re: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 15.02.08 13:42
Оценка:
P.S. Картинка не отобразилась
Вот она
http://haxt.narod.ru/images/sit001.JPG
Re: Web Service и производительность. Help. Что делать ?
От: C0s Россия  
Дата: 15.02.08 14:27
Оценка:
Здравствуйте, xserge, Вы писали:

X>Подскажите пожалуйста какие варианты решения данной проблемы могут быть ? Приветствуются любые идеи.


если позволяет сеть:
— перейти на асинхронные методы взаимодействия
— отказаться от протоколов на базе TCP, перейти на UDP
Re: Web Service и производительность. Help. Что делать ?
От: Аноним  
Дата: 15.02.08 14:32
Оценка:
Здравствуйте, xserge, Вы писали:

X>Подскажите пожалуйста какие варианты решения данной проблемы могут быть ? Приветствуются любые идеи.


Смотри доки WebSphere на тему кластеризация. Читай также про Load Balancer.
Re[2]: Web Service и производительность. Help. Что делать ?
От: XJava  
Дата: 15.02.08 14:37
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Смотри доки WebSphere на тему кластеризация. Читай также про Load Balancer.

Аноним, т.е. это я был, имел ввиду WebLogic, а не WebSphere.

Также интересно, если будет кластеризация, посмотреть на Terracotta clustering.
Re[2]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 15.02.08 15:10
Оценка:
Здравствуйте, xserge, Вы писали:

X>P.S. Картинка не отобразилась

X>Вот она
X>http://haxt.narod.ru/images/sit001.JPG
Трудно было на rsdn выложить???
Re: Web Service и производительность. Help. Что делать ?
От: Stormblast http://www.myspace.com/stormblastblack
Дата: 15.02.08 15:13
Оценка:
Здравствуйте, xserge, Вы писали:

Написать пул потоков (Thread Pools) ... можно даже разграничить права т.е. высокий приоритет обрабатывается вне очереди и т.п.
Re: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 15.02.08 15:13
Оценка:
Здравствуйте, xserge, Вы писали:

X>Здравствуйте, мне хотелось бы проконсультироваться на счёт возможности поднятия производительности системы.

X>Ситуация такова:
X>Имеется 80 тысяч пользователей, каждый в течении 5 минут должен обратиться к Web Service исполняемому на Weblogic 9.2.1 и получить результаты своего запроса. У каждого пользователя запущен агент написанный на VC++ который с периодичностью и обращается к веб сервису.
X>Проблема в том что сервер вешается в таком режиме работы. По-видимому по-причине большого количества запускающихся параллельных потоков.
X>http://haxt.narod.ru/images/sit001.JPG
X>Подскажите пожалуйста какие варианты решения данной проблемы могут быть ? Приветствуются любые идеи.
А что значит "вешается"? Судя по картинкам как CPU так и памяти ещё предостаточно? Может максимальное количество потоков в пуле подрутить. Они вон вроде все как закончились?
Re[2]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 15.02.08 15:14
Оценка:
Здравствуйте, Stormblast, Вы писали:

S>Написать пул потоков (Thread Pools) ... можно даже разграничить права т.е. высокий приоритет обрабатывается вне очереди и т.п.


Ты, правда, думаешь что у J2EE сервера такой пул отсутствует?
Re[3]: Web Service и производительность. Help. Что делать ?
От: Аноним  
Дата: 15.02.08 16:13
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, Stormblast, Вы писали:


S>>Написать пул потоков (Thread Pools) ... можно даже разграничить права т.е. высокий приоритет обрабатывается вне очереди и т.п.


B>Ты, правда, думаешь что у J2EE сервера такой пул отсутствует?


В J2EE среде, вроде по спецификации, не рекомендуют запускать доп. потоки, а рекомендуют использовать пулы. — кажется так.
Пул потоков должен под лоджиком настраиваться.
Re[4]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 15.02.08 18:40
Оценка:
Здравствуйте, Аноним, Вы писали:

B>>Ты, правда, думаешь что у J2EE сервера такой пул отсутствует?

А>В J2EE среде, вроде по спецификации, не рекомендуют запускать доп. потоки,
Примерно так.

А>а рекомендуют использовать пулы. — кажется так.

Не помню такого. По-моему в спеке написано что управление потоками полностью отдается на откуп серверу. Ну, и в ряде случаев предостерегают об ошибках в ассоциации данных с потоками по причине того что сервера приложений их пулируют

А>Пул потоков должен под лоджиком настраиваться.

Угу
Re: Web Service и производительность. Help. Что делать ?
От: Cyberax Марс  
Дата: 15.02.08 18:55
Оценка:
Здравствуйте, xserge, Вы писали:

X>Имеется 80 тысяч пользователей, каждый в течении 5 минут должен обратиться к Web Service исполняемому на Weblogic 9.2.1 и получить результаты своего запроса. У каждого пользователя запущен агент написанный на VC++ который с периодичностью и обращается к веб сервису.

X>Проблема в том что сервер вешается в таком режиме работы. По-видимому по-причине большого количества запускающихся параллельных потоков.
Похоже на starvation какого-то ресурса: блокировки где-то в коде, пула соединений к базе, какого-нибудь кэша и т.п.

Профилируйте и ищите где блокируется.
Sapienti sat!
Re[2]: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 15.02.08 20:55
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>Здравствуйте, xserge, Вы писали:


X>>Подскажите пожалуйста какие варианты решения данной проблемы могут быть ? Приветствуются любые идеи.


C0s>если позволяет сеть:

C0s>- перейти на асинхронные методы взаимодействия
C0s>- отказаться от протоколов на базе TCP, перейти на UDP

Очень интересная идея на счёт ассинхронного взаимодействия. Интересно а не прийдётся ли переписывать для этого клиента ? Очень дорого обойдётся инсталяция его по рабочим станциям. Я так полагаю что тут решающую роль может играть только периуд таймата на клиенте ? Остальное же возможно решить только переделкой веб сервиса. Или я не прав ?
Re[3]: Web Service и производительность. Help. Что делать ?
От: C0s Россия  
Дата: 15.02.08 21:00
Оценка:
Здравствуйте, xserge, Вы писали:

C0s>>- перейти на асинхронные методы взаимодействия


X>Очень интересная идея на счёт ассинхронного взаимодействия. Интересно а не прийдётся ли переписывать для этого клиента?


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

X>Очень дорого обойдётся инсталяция его по рабочим станциям.


для инсталляций (если внтури предприятия) я бы давно предложил какую-то автоматизацию. хоть даже через ant, обновляющий через subversion-клиент snapshot зарелизенных jar-файлов. хотя можно и jnlp рассмотреть

X>Я так полагаю что тут решающую роль может играть только периуд таймата на клиенте?


решающую роль может играть отвязка клиента от синхронного ответа. но семантика без фактов — не ко мне
Re[2]: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 15.02.08 21:03
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, xserge, Вы писали:


X>>Имеется 80 тысяч пользователей, каждый в течении 5 минут должен обратиться к Web Service исполняемому на Weblogic 9.2.1 и получить результаты своего запроса. У каждого пользователя запущен агент написанный на VC++ который с периодичностью и обращается к веб сервису.

X>>Проблема в том что сервер вешается в таком режиме работы. По-видимому по-причине большого количества запускающихся параллельных потоков.
C>Похоже на starvation какого-то ресурса: блокировки где-то в коде, пула соединений к базе, какого-нибудь кэша и т.п.

C>Профилируйте и ищите где блокируется.

В коде нет блокировок, такой вариант не рассматривался и никак специально не программировался. Что то есть сомнения на счёт блокировок в базе. Пул соединений вообще никак не настраивался.

Веб сервис полностью синхронный.
асинхронность не реализована (((
Её реализация может как то помочь ?
Re[4]: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 15.02.08 21:07
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>Здравствуйте, xserge, Вы писали:


C0s>>>- перейти на асинхронные методы взаимодействия


X>>Очень интересная идея на счёт ассинхронного взаимодействия. Интересно а не прийдётся ли переписывать для этого клиента?


C0s>я уверен, что придётся — хоть и не знаю текущей логики

C0s>просто там, где нагрузка большая, лучше переосмыслить взаимодействие.
C0s>основной момент — что именно клиент в текущей модели ожидает в ответ на вызов веб-сервиса

X>>Очень дорого обойдётся инсталяция его по рабочим станциям.


C0s>для инсталляций (если внтури предприятия) я бы давно предложил какую-то автоматизацию. хоть даже через ant, обновляющий через subversion-клиент snapshot зарелизенных jar-файлов. хотя можно и jnlp рассмотреть


X>>Я так полагаю что тут решающую роль может играть только периуд таймата на клиенте?


C0s>решающую роль может играть отвязка клиента от синхронного ответа. но семантика без фактов — не ко мне


Спасибо за совет попробую как то реализовать асинхронное взаимодействие. Тем более в Веблоджике даже примеры такого есть.
На счёт развёртывания клиента по клиентам всё там уже автоматизировано и стандартизовано, но каждое развёртывание стоит кучи денег.
Re: Web Service и производительность. Help. Что делать ?
От: denis_krg Казахстан  
Дата: 16.02.08 08:40
Оценка:
Здравствуйте, xserge, Вы писали:

X>Здравствуйте, мне хотелось бы проконсультироваться на счёт возможности поднятия производительности системы.

X>Ситуация такова:
X>Имеется 80 тысяч пользователей, каждый в течении 5 минут должен обратиться к Web Service исполняемому на Weblogic 9.2.1 и получить результаты своего запроса. У каждого пользователя запущен агент написанный на VC++ который с периодичностью и обращается к веб сервису.
X>Проблема в том что сервер вешается в таком режиме работы. По-видимому по-причине большого количества запускающихся параллельных потоков.
X>

X>Подскажите пожалуйста какие варианты решения данной проблемы могут быть ? Приветствуются любые идеи.


Если нужна производительность — нужно избавляться от XML и ВебСервисов. Другого пути нет.
... << RSDN@Home 1.2.0 alpha rev. 787>>
Re[2]: Web Service и производительность. Help. Что делать ?
От: Аноним  
Дата: 16.02.08 12:13
Оценка:
Здравствуйте, denis_krg, Вы писали:

ну насчет xml — это вы погорячились , можно конечно и бинарный протокол (будет быстрее в разы),
но как уже сказали выше , есть и другие способы добиться производительности.
а для xml — легкие парсеры (sax, etc).

_>Если нужна производительность — нужно избавляться от XML и ВебСервисов. Другого пути нет.
Re[3]: Web Service и производительность. Help. Что делать ?
От: denis_krg Казахстан  
Дата: 16.02.08 14:03
Оценка: -1
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, denis_krg, Вы писали:


А>ну насчет xml — это вы погорячились , можно конечно и бинарный протокол (будет быстрее в разы),

А>но как уже сказали выше , есть и другие способы добиться производительности.
А>а для xml — легкие парсеры (sax, etc).

А Вы писали разборщики XML используя SAX? Если ХМЛ более-менее сложный это чрезвычайно трудоемкое занятие. Так что можно с чистой совестью говорить о том, что SAX-а для разработчиков бизнес-систем нет.

_>>Если нужна производительность — нужно избавляться от XML и ВебСервисов. Другого пути нет.
... << RSDN@Home 1.2.0 alpha rev. 787>>
Re[4]: Web Service и производительность. Help. Что делать ?
От: Аноним  
Дата: 16.02.08 15:11
Оценка:
Да писал , иначе не говорил бы , нет смысла делать протокол межу клиентом и сервером слишком сложным (а речь как я понял именно об этом) , хотя
зависит от задачи конешно.


_>А Вы писали разборщики XML используя SAX? Если ХМЛ более-менее сложный это чрезвычайно трудоемкое занятие. Так что можно с чистой совестью говорить о том, что SAX-а для разработчиков бизнес-систем нет.


_>>>Если нужна производительность — нужно избавляться от XML и ВебСервисов. Другого пути нет.
Re[5]: Web Service и производительность. Help. Что делать ?
От: denis_krg Казахстан  
Дата: 16.02.08 15:49
Оценка:
Здравствуйте, <Аноним>, Вы писали:


А> Да писал , иначе не говорил бы , нет смысла делать протокол межу клиентом и сервером слишком сложным (а речь как я понял именно об этом) , хотя

А> зависит от задачи конешно.

Задачи имеют тенденцию к усложнению. Это раз. Во-вторых трудоемкость резко возрастает. К тому же квалификация программиста, который должен писать разбор ХМЛ на САКС должна быть выше средней. В итоге в реальных проектах САКС практически не используют.

Потом. Мы ведь к тому же умолчали о том, что нагрузка на каналы в случае использования ХМЛ в качестве формата данных увеличивается в 3-5 раз. К тому же, если мы используем веб-сервисы это еще одно кратное увеличение требований к каналам.

В итоге по сравнению с бинарными форматами увеличение нагрузки на каналы просто убийственное. Причем особого выигрыша по сравнению с тем же RMI в простоте мы не получаем (я говорю про жаба-жаба).


Потом. У нас кроме разбора ХМЛ в бизнес-приложении будет еще и разбор ХМЛ, который есть вызов веб-сервиса. А там, я почти уверен (поправьте меня если ошибаюсь) — дом-модель со всеми ее тормозами и дикими требованиями к памяти.

_>>А Вы писали разборщики XML используя SAX? Если ХМЛ более-менее сложный это чрезвычайно трудоемкое занятие. Так что можно с чистой совестью говорить о том, что SAX-а для разработчиков бизнес-систем нет.


_>>>>Если нужна производительность — нужно избавляться от XML и ВебСервисов. Другого пути нет.
... << RSDN@Home 1.2.0 alpha rev. 787>>
Re[2]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 18.02.08 09:18
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Профилируйте и ищите где блокируется.

Профилировать можно только под тестовой нагрузкой, а для этого нужно сначала ситуацию повторить на тестах. Проще начать с того чтобы снять дамп потоков и посмотреть, возможно большинство из них как раз застрали в бутылочном горлышке над оптимизацией которого стоит подумать.
Re[4]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 18.02.08 09:21
Оценка:
Здравствуйте, denis_krg, Вы писали:

_>А Вы писали разборщики XML используя SAX? Если ХМЛ более-менее сложный это чрезвычайно трудоемкое занятие. Так что можно с чистой совестью говорить о том, что SAX-а для разработчиков бизнес-систем нет.


Для SAX, как и для DOM, существует ряд достаточно удобных оберток.
Re[5]: Web Service и производительность. Help. Что делать ?
От: denis_krg Казахстан  
Дата: 18.02.08 10:21
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, denis_krg, Вы писали:


_>>А Вы писали разборщики XML используя SAX? Если ХМЛ более-менее сложный это чрезвычайно трудоемкое занятие. Так что можно с чистой совестью говорить о том, что SAX-а для разработчиков бизнес-систем нет.


B>Для SAX, как и для DOM, существует ряд достаточно удобных оберток.


Это никак не отменяет высокой ресурсоемкости обработки ХМЛ (((

Да, для САКСа — какие?
... << RSDN@Home 1.2.0 alpha rev. 787>>
Re[6]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 18.02.08 10:27
Оценка:
Здравствуйте, denis_krg, Вы писали:

_>Это никак не отменяет высокой ресурсоемкости обработки ХМЛ (((

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

_>Да, для САКСа — какие?

Для разбора взять хотя бы Apache Digester.
Re[3]: Web Service и производительность. Help. Что делать ?
От: Cyberax Марс  
Дата: 18.02.08 10:45
Оценка:
Здравствуйте, xserge, Вы писали:

C>>Профилируйте и ищите где блокируется.

X>В коде нет блокировок, такой вариант не рассматривался и никак специально не программировался. Что то есть сомнения на счёт блокировок в базе. Пул соединений вообще никак не настраивался.
Самый тупой вопрос — а пул соединений у вас не заканчивается, случайно?

X>Веб сервис полностью синхронный.

X>асинхронность не реализована (((
X>Её реализация может как то помочь ?
Нет.
Sapienti sat!
Re[4]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 18.02.08 10:49
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Самый тупой вопрос — а пул соединений у вас не заканчивается, случайно?

Почему тупой? Судя по картнике имено пул и заканчивается. Либо потоков, либо соединений. Все потоки активные, ни одного в ожидании.
Re[6]: Web Service и производительность. Help. Что делать ?
От: Polosatiy  
Дата: 18.02.08 10:56
Оценка:
Здравствуйте, denis_krg, Вы писали:

_>Задачи имеют тенденцию к усложнению. Это раз. Во-вторых трудоемкость резко возрастает. К тому же квалификация программиста, который должен писать разбор ХМЛ на САКС должна быть выше средней. В итоге в реальных проектах САКС практически не используют.


_>Потом. Мы ведь к тому же умолчали о том, что нагрузка на каналы в случае использования ХМЛ в качестве формата данных увеличивается в 3-5 раз. К тому же, если мы используем веб-сервисы это еще одно кратное увеличение требований к каналам.


_>В итоге по сравнению с бинарными форматами увеличение нагрузки на каналы просто убийственное. Причем особого выигрыша по сравнению с тем же RMI в простоте мы не получаем (я говорю про жаба-жаба).



_>Потом. У нас кроме разбора ХМЛ в бизнес-приложении будет еще и разбор ХМЛ, который есть вызов веб-сервиса. А там, я почти уверен (поправьте меня если ошибаюсь) — дом-модель со всеми ее тормозами и дикими требованиями к памяти.


Ошибатесь. SAX парсеры наоборот DOM модель не грузят целиком в память, а работают на событийном принципе, поэтому они в разы быстрее и экономней чем DOM-парсеры при разборе большого объема данных. Маленькие объемы проще DOM-ом разобрать: во-первых быстрее, во-вторых проще.

_>>>А Вы писали разборщики XML используя SAX? Если ХМЛ более-менее сложный это чрезвычайно трудоемкое занятие. Так что можно с чистой совестью говорить о том, что SAX-а для разработчиков бизнес-систем нет.


_>>>>>Если нужна производительность — нужно избавляться от XML и ВебСервисов. Другого пути нет.


Мы ж не в каменном веке живём. Есть XStream, котоорый сериализует любой объект вызовом одного метода, toXML(Object obj). Умеет юзать аннотации (свои).
Есть тулза, которая называется JAXB 2.0, построенная на сановской спеке. Она даже с XFire интегрируется путём прописывания одной строчки в конфиге. РАзбирает всё аннтациями. Так что не обязательно писать SAX-парсер, если уж вы не разбираете какой-то мегакривой xml.
Re[4]: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 18.02.08 13:28
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, xserge, Вы писали:


C>>>Профилируйте и ищите где блокируется.

X>>В коде нет блокировок, такой вариант не рассматривался и никак специально не программировался. Что то есть сомнения на счёт блокировок в базе. Пул соединений вообще никак не настраивался.
C>Самый тупой вопрос — а пул соединений у вас не заканчивается, случайно?

X>>Веб сервис полностью синхронный.

X>>асинхронность не реализована (((
X>>Её реализация может как то помочь ?
C>Нет.

Возможно что и закончился, где бы его в веблоджике можно увеличить ?
Re[5]: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 18.02.08 14:43
Оценка:
Здравствуйте, xserge, Вы писали:

Излишнее цитирование удалено модератором. Обратите внимание на правила форума.

X>Возможно что и закончился, где бы его в веблоджике можно увеличить ?

Возможно вы имеете ввиду JDBC Connection pool ?
Re[2]: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 18.02.08 14:45
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, xserge, Вы писали:


X>>Имеется 80 тысяч пользователей, каждый в течении 5 минут должен обратиться к Web Service исполняемому на Weblogic 9.2.1 и получить результаты своего запроса. У каждого пользователя запущен агент написанный на VC++ который с периодичностью и обращается к веб сервису.

X>>Проблема в том что сервер вешается в таком режиме работы. По-видимому по-причине большого количества запускающихся параллельных потоков.
C>Похоже на starvation какого-то ресурса: блокировки где-то в коде, пула соединений к базе, какого-нибудь кэша и т.п.

C>Профилируйте и ищите где блокируется.


Подскажите пожалуйста, а чем можно попрофилировать приложение запущенное под WebLogic-ом ?
Re[6]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 18.02.08 15:09
Оценка:
Здравствуйте, xserge, Вы писали:

X>>Возможно что и закончился, где бы его в веблоджике можно увеличить ?

X>Возможно вы имеете ввиду JDBC Connection pool ?
Блокировка могла произойти на любом из пулов. Но скорее всего именно в Thread pool для HTTP сервлетов.
Re[6]: Web Service и производительность. Help. Что делать ?
От: Cyberax Марс  
Дата: 18.02.08 16:39
Оценка:
Здравствуйте, xserge, Вы писали:

X>>Возможно что и закончился, где бы его в веблоджике можно увеличить ?

X>Возможно вы имеете ввиду JDBC Connection pool ?
Пулов, вообще говоря, в типичном сервере несколько: пул JDBC-соединений, пул потоков для сервлетов/JSP, пул потоков для EJB-бинов, пул самих EJB-бинов.

Кончиться может любой из них, надо смотреть в консоли управления WebLogic'ом. Я точно помню, что там всё это есть.
Sapienti sat!
Re[7]: Web Service и производительность. Help. Что делать ?
От: denis_krg Казахстан  
Дата: 19.02.08 03:53
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, denis_krg, Вы писали:


_>>Это никак не отменяет высокой ресурсоемкости обработки ХМЛ (((

B>Это никак не отменяет того факта что с XML можно построить решение достаточно высокой производительности.
B>Предлагаю словоблудие на этом закрыть.

Ну все, запинали. А что вы будете делать с трафиком? Как от объемов ХМЛ избавиться?

_>>Да, для САКСа — какие?

B>Для разбора взять хотя бы Apache Digester.
... << RSDN@Home 1.2.0 alpha rev. 787>>
Re[8]: Web Service и производительность. Help. Что делать ?
От: Blazkowicz Россия  
Дата: 19.02.08 04:53
Оценка:
Здравствуйте, denis_krg, Вы писали:

_>Ну все, запинали. А что вы будете делать с трафиком? Как от объемов ХМЛ избавиться?

gzip'ом его на уровне HTTP.
Никто не спорит что работа с XML излишне нагружает CPU и сетевой канал. Но это никак не отменяет того факта что достаточная производительность достижима и с XML based протоколами.
Re[2]: Web Service и производительность. Help. Что делать ?
От: xserge  
Дата: 20.02.08 12:43
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, xserge, Вы писали:


X>>Имеется 80 тысяч пользователей, каждый в течении 5 минут должен обратиться к Web Service исполняемому на Weblogic 9.2.1 и получить результаты своего запроса. У каждого пользователя запущен агент написанный на VC++ который с периодичностью и обращается к веб сервису.

X>>Проблема в том что сервер вешается в таком режиме работы. По-видимому по-причине большого количества запускающихся параллельных потоков.
C>Похоже на starvation какого-то ресурса: блокировки где-то в коде, пула соединений к базе, какого-нибудь кэша и т.п.

C>Профилируйте и ищите где блокируется.


Подскажите плиз, чем можно профилировать ? Желательно либо бесплатный профайлер или с креком
Re: Web Service и производительность. Help. Что делать ?
От: _joker Россия  
Дата: 23.02.08 08:19
Оценка:
запустить JProfiler и искать узкие места

причины могут быть вообще не предсказуемые
— включенный debug

— возможно кривой код
повсеместное использование synchronized в коде (возможно перейти на ReadWriteLock, посмотрите на java.util.concurrent)
напишите лоад тесты сначала на тот код который используется сервисами, перед тем как гнать на транспорт...

— тюнинг java машины
мы например у себя нашли наиболее оптимальную конфигурацию своего продукта с опциями
set JVM_OPTS=-ea -XX:MaxPermSize=128m -XX:+UseParNewGC -XX:MaxNewSize=32m -XX:NewSize=32m -Xms256m -Xmx512m -XX:SurvivorRatio=128 -XX:MaxTenuringThreshold=0 -XX:+UseTLAB -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled


удачи

Здравствуйте, xserge, Вы писали:

X>Подскажите пожалуйста какие варианты решения данной проблемы могут быть ? Приветствуются любые идеи.
... << RSDN@Home 1.1.4 @@subversion >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.