2011-06-19 17 views

Odpowiedz

17

Brzmi jak należy zatrzymać się z domyślnymi ;-)

Poważnie: liczba maksymalnych równoległych połączeń należy ustawić zależy od przewidywanego zużycia tomcat, a także od liczby rdzeni na serwerze. Więcej rdzeni na twoim procesorze => więcej równoległych wątków, które można wykonać.

Zobacz tutaj, jak skonfigurować ...

Tomcat 6: http://tomcat.apache.org/tomcat-6.0-doc/config/executor.html

Tomcat 7: http://tomcat.apache.org/tomcat-7.0-doc/config/executor.html

+0

Witam, używam aplikacji do zdalnej partycjonowania wsadowego i użycia bramy integrującej ze sprężyną.Ustawiłem współbieżność na 10, ale widzę, że zawsze działa max 8 wątków. Czy jest to związane z liczbą rdzeni procesora serwera? Czy istnieje sposób na zwiększenie współbieżności wątków? Wykorzystanie procesora nie jest zbyt wysokie dla uruchomionych procesów. http://stackoverflow.com/questions/24575008/spring-batch-admin-remote-partition-steps-running-maximum-8-threads-even- though – vishal

17

Trzeba by dostosować go zgodnie ze środowiskiem.

Czasami bardziej przydatne jest zwiększenie wielkości zaległości (acceptCount) zamiast maksymalnej liczby wątków.

Say, zamiast

<Connector ... maxThreads="500" acceptCount="50" 

użyć

<Connector ... maxThreads="300" acceptCount="150" 

można uzyskać znacznie lepszą wydajność w niektórych przypadkach przyczyna nie byłoby mniej wątków kwestionując zasoby i kolejki zaległości zostaną spożyte szybciej.

W każdym razie musisz wykonać pewne testy porównawcze, aby naprawdę wiedzieć, co jest najlepsze.

+0

From [link] (http://tomcat.apache.org /tomcat-8.0-doc/config/http.html) –

9

Od Tomcat Documentation

MaxConnections Po osiągnięciu tej liczby, serwer będzie akceptować, ale nie proces, jedno przyłącze. po osiągnięciu limitu system operacyjny może nadal akceptować połączenia na podstawie ustawienia acceptCount. (Maksymalna długość kolejki dla żądań połączeń przychodzących, gdy używane są wszystkie możliwe wątki przetwarzania żądań. Wszelkie żądania odebrane, gdy kolejka jest pełna, zostaną odrzucone, domyślna wartość to 100.) Dla BIO wartość domyślna to wartość maxThreads, chyba że Executor jest używany, w którym to przypadku wartością domyślną będzie wartość maxThreads z executora. W przypadku NIO i NIO2 wartość domyślna to 10000. W przypadku APR/natywna wartość domyślna to 8192. Należy zauważyć, że w przypadku APR/natywnego w systemie Windows skonfigurowana wartość zostanie zmniejszona do najwyższej wielokrotności liczby 1024, która jest mniejsza lub równa wartości maxConnections. Odbywa się to ze względu na wydajność.

maxThreads
Maksymalna liczba wątków przetwarzania żądania mają być utworzone przez to złącze, które w związku z tym określa maksymalną liczbę jednoczesnych żądań, które mogą być obsługiwane. Jeśli nie zostanie określony, ten atrybut zostanie ustawiony na 200. Jeśli executor jest powiązany z tym łącznikiem, ten atrybut jest ignorowany, ponieważ łącznik wykona zadania przy użyciu executora, a nie puli wątków wewnętrznych.

Powiązane problemy