niedziela, listopada 20, 2011

BW WS crash test

Tworzymy jeden WebService z operacjami 'a', 'b', 'c'. Operacja 'a' woła na tym samym komponencie dwa razy pod rząd operację 'b', operacja 'b' 4 razy operację 'c'. Operacja 'c' na wyjściu zwraca wejście. Teraz z SOAPUI 20 wątkami przez 60 sekund wywołujemy operację 'a' (z jednego zewnętrznego requestu robi się 10 wewnętrznych). Poniżej przepisana kontrolka SOAP Request Reply wykorzystująca JBoss Netty, wytrzymuje większą liczbę równoległych wywołań.



MaxJobs.x.serviceagent=250
FlowLimit.x.serviceagent=250
ActivationLimit.x.serviceagent=true
EnableOnStartup.x.serviceagent=true
bw.plugin.http.server.maxProcessors=250
bw.plugin.http.server.acceptCount=250
bw.plugin.http.server.httpcomponents.workerThread=40

25 transakcji na sekundę w SOAPUI oznacza 250 wywołań wewnątrz BW. Na dwurdzeniowym energooszczędnym Intelu SU4100 1,3GHz 10W TDP na Windows 7 można dojść z Netty do 35tps.

Po włączeniu persystentnych połączeń BW jest w stanie przy 20 wątkach w SOAPUI dostarczyć 45tps. Limit jest ściśle związany z liczbą równoległych połączeń na wejściu i wątków ResponseThreadPool.

bw.plugin.http.client.usePersistentConnectionManager=true
bw.plugin.http.client.usePersistentConnectionManagerForSSL=true (BW 5.12+)
bw.plugin.http.client.checkForStaleConnections=false
bw.plugin.http.client.maxConnectionsPerHost=500
bw.plugin.http.client.maxTotalConnections=500
bw.plugin.http.client.ResponseThreadPool=40
bw.plugin.http.client.ResponseThreadPool.type=single

0 komentarze: