Serwer Tomcat 7 doświadcza nagłego (o rząd wielkości) wzrostu częstotliwości Young GC po aktualizacji Ubuntu i OpenJDK



Jaki jest problem?

Po uaktualnieniu instancji do Ubuntu 16.04 LTS i OpenJDK 8, współczynnik zbierania śmieci może nagle wzrosnąć o rzędy wielkości po kilku godzinach normalnej pracy, powodując użycie mniej niż 10% HEAP.
Przeanalizowaliśmy dzienniki GC i nie znaleźliśmy nic dziwnego, z wyjątkiem wzrostu częstotliwości. Nawet gceasy.io mówi, że wszystko jest w porządku.
Nie wydaje się, aby miało to negatywny wpływ na wydajność, ale nadal jest problemem, a Nagios/OP5 jest niezadowolony. Szybkość alokacji wynosi tylko 50 MB/s, a przepustowość i opóźnienia są nominalne.
Próbowaliśmy zrzucić cały klaster, odbudować wszystko od nowa, kilka opcji dla różnych ustawień GC i pamięci, ale problem nadal występuje.

Czy to działało wcześniej?

Tak. W innych przypadkach korzystających z tych samych wersji aplikacji w systemie Ubuntu 14.04 LTS, OpenJDK 7u151 działa zgodnie z oczekiwaniami z normalną częstotliwością i przy użyciu HEAP.

pytania

  • Czy tak zachowuje się OpenJDK 8
  • Czy to problem Ubuntu lub OpenJDK
  • Czy przypinanie HEAP za pomocą Xms jest naszą jedyną opcją
  • (Co tu się naprawdę dzieje)


Instancje

VM: AWS (4GB, 2 cores)
Ubuntu: Ubuntu 16.04.4 LTS
Kernel: 4.4.0-1060-aws
Java:
- OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11)
- OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
Tomcat 7.0.8x running with NIO connector and 150 threads


Linia poleceń (ostatnia iteracja)

export CATALINA_OPTS="$CATALINA_OPTS -Xmx2048m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:NewRatio=1"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseParallelOldGC"
export CATALINA_OPTS="$CATALINA_OPTS -XX:ThreadStackSize=256k"
export CATALINA_OPTS="$CATALINA_OPTS -server"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Xloggc:/var/log/tomcat7/gc.log"


Po 48 godzinach testów wydajności

$ free
total used free shared buff/cache available
Mem: 3801048 1248348 1959488 5280 593212 2291640
Swap: 0 0 0

To jest migawka z ostatnich 24 godzin testów porównawczych: - o 05:30 nagły spadek użycia HEAP i wzrost GC - 10:00 podwojenie obciążenia
wykresy testów wydajności
https://i.stack.imgur.com/jrJyk.png
Zaproszony:

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się