2015-01-26 12 views
5

Poszedłem z Tomcat 7.0.54 do 8.0.15, zaktualizowałem openSSL do wersji 1.0.1k i zaktualizowałem do najnowszej wersji 1.1.32 z APR 1.5.1.Tomcat 8 Wolne uruchamianie z wdrożeniemWAR

Jednak Tomcat zaczyna teraz od 2 do 3 razy wolniej niż wcześniej. Najwyraźniej wdrożenie plików WAR zajmuje dużo więcej czasu.

Tomcat 7

Jan 20, 2015 3:39:36 PM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deployment of web application archive <PATH>\file.war has finished in 433 ms 

Tomcat 8

Jan 21, 2015 2:27:01 PM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deployment of web application archive <PATH>\file.war has finished in 4,310 ms 

Dzieje się tak do wszystkich plików wojnie, wszystko poszło od milisekund do około 5 sekund.

Usunąłem plik JasperListener z pliku server.xml, ponieważ wygląda na to, że został usunięty.

unpackWARs="false" 
autoDeploy="true" 

unpackWars nie ma znaczenia, jeśli jest ustawione na true (co najmniej nie jest zauważalne). Pomyślałem, że mógł to być problem z skanowaniem adnotacji ustawiony w wersji 8.0.17, ale bez powodzenia.

zauważyłem, że jarsToSkip w catalina.properties zmieniło od

tomcat.util.scan.DefaultJarScanner.jarsToSkip to 
tomcat.util.scan.StandardJarScanFilter.jarsToSkip 

i że org.apache.catalina.startup.TldConfig.jarsToSkip usunięto i udał się do context.xml

<JarScanner> 
    <JarScanFilter tldSkip="websocket-api.jar,tomcat-websocket.jar"/> 
</JarScanner> 

Jednak żadna z nich nie wydaje się przywracać mnie do wydajności tomcat 7. Jedynym działaniem, które to zrobiło, było usunięcie słoików websocket. Jednak potrzebujemy ich. Prowadzi to do wniosku, że nadal są one skanowane, mimo że powinny zostać pominięte.

Czy brakuje mi czegoś? Czy plik context.xml nie działa tak samo, jak jarsToSkip catalina.properties?

+0

nazwy plików słoików chcesz pominąć mogły ulec zmianie .. Prawdopodobnie warto sprawdzić, czy faktycznie pomijasz to, co myślisz, że pomijasz. – Edd

Odpowiedz

1

Mam podobne problemy tutaj.

Jedną z opcji, które poprawiły czas uruchamiania był dodać:

metadata-complete="true" 

do web.xml (element webapp), zgodnie z zaleceniami w http://wiki.apache.org/tomcat/HowTo/FasterStartUp. Zakłada to, że twój web.xml jest wszystkim, czego potrzebuje twoja aplikacja internetowa.

To nie całkowicie rozwiązało problem, ale poprawa szybkości uruchamiania była znaczna.

+0

Niestety, dla mnie nie robi to wielkiej różnicy. Widzę może 2-sekundową poprawę w sumie. To niewiele, ponieważ wciąż trwa około 40 sekund wolniej niż wcześniej. Najwięcej zyskałem przy równoległym uruchomieniu, ale chciałbym przywrócić czasy wdrożenia do około 250 ms. – RavenLiquid

0

Jesteś pewien, że niepakowaneWARs = "true" nie ma dla ciebie znaczenia?

Tam trwa dyskusja na ten temat w Bugzilli:

https://issues.apache.org/bugzilla/show_bug.cgi?id=57251

Nie zostało wykazane, że zachowanie Tomcat 8, gdy unpackWARs = „false” będzie zauważalnie wolniej ze względu na uproszczenie implementacji wykonywanej w kod.

+0

Jestem. Teraz mam tylko rozpakowane WAR, ale nie ma widocznej różnicy. Myślę, że cokolwiek złego zajmuje tyle czasu, efekt innych poprawek nie jest zauważalny. – RavenLiquid

0

można spróbować równoległość na starcie zmieniając w conf/server.xml elementu gospodarza przypisują <Host ... startStopThreads="0"/>

Powiązane problemy