Dialy CheckIn
This commit is contained in:
parent
2ec3b84090
commit
849c179910
4 changed files with 81 additions and 7 deletions
|
@ -4,6 +4,7 @@
|
|||
# Activate Bash Strict Mode
|
||||
set -euo pipefail
|
||||
|
||||
|
||||
main() {
|
||||
{
|
||||
echo -e "URL\tRuns\tStDev\tMin (ms)\tAvg (ms)\tMax (ms)"
|
||||
|
@ -19,9 +20,15 @@ get_statistics() {
|
|||
local max=0
|
||||
local dur=0
|
||||
local durQ=0
|
||||
local spin=0
|
||||
local spiner=('-' '\' '|' '/')
|
||||
|
||||
echo -ne "$1\t "
|
||||
|
||||
# repeat for the defined counts the url calling
|
||||
for i in $(seq 1 $2); do
|
||||
echo -ne "\b${spiner[$spin]}"
|
||||
spin=$(( (spin+1) % 4 ))
|
||||
local gp=$(($(get_posts $1)/1000000)) # from ns to ms
|
||||
if [[ $gp -gt $max ]]
|
||||
then max=$gp
|
||||
|
@ -38,7 +45,7 @@ get_statistics() {
|
|||
local stdev=$( echo "sqrt(($durQ / $2) - $avgPow)" | bc )
|
||||
|
||||
# output the statistic values
|
||||
echo -e "$1\t$2\t$stdev\t$min\t$avg\t$max"
|
||||
echo -e "\b$2\t$stdev\t$min\t$avg\t$max"
|
||||
}
|
||||
|
||||
get_posts() {
|
||||
|
@ -50,16 +57,29 @@ get_posts() {
|
|||
echo $dur
|
||||
}
|
||||
|
||||
print_process() {
|
||||
ps -C java --no-headers --format "pid %cpu %mem rss pss cmd" |\
|
||||
awk 'BEGIN { printf "%6s %5s %4s %13s %13s %-50s\n", "pid", "%cpu", "%mem", "rss Mb", "pss Mb", "cmd"}
|
||||
{hr=$4/1024; hp=$5/1024; printf("%6i %5.1f %4.1f %13.2f %13.2f %s\n", $1, $2, $3,hr, hp, $6) }'
|
||||
}
|
||||
|
||||
# the main domain
|
||||
hostname="https://briefedition.wedekind.h-da.de"
|
||||
#hostname="https://briefedition.wedekind.h-da.de"
|
||||
hostname="http://localhost:8080/WedekindJSF-1.0.0"
|
||||
|
||||
# the Array of the Urls
|
||||
url_arr=(
|
||||
"$hostname/index.xhtml"
|
||||
"$hostname/view/document/list.xhtml"
|
||||
"$hostname/view/correspondent/list.xhtml"
|
||||
"$hostname/view/person/list.xhtml"
|
||||
#"$hostname/view/correspondent/list.xhtml"
|
||||
#"$hostname/view/person/list.xhtml"
|
||||
)
|
||||
|
||||
print_process
|
||||
echo ""
|
||||
|
||||
# Execute all the URLs for 10 rounds
|
||||
main 10 ${url_arr[@]}
|
||||
|
||||
echo ""
|
||||
print_process
|
||||
|
|
|
@ -29,9 +29,38 @@ prüfen, die den Cache von OpenJPE auswerten}
|
|||
Nun werden die unterschiedlichen Schichten betrachtet und möglichen Performance-Verbesserungen untersucht und deren
|
||||
Vor"= und Nachteile herausgearbeitet.
|
||||
|
||||
\mytodos{Bei deaktivierten Daten und Query-Cache hat der 3te Aufruf im Durchschnitt schon doppelt so lange gedauert wie
|
||||
die 2 vorherigen und beim 4ten Aufruf ist der Payara-Server mit einer OutOfMemoryError-Exception im Java-Heapspeicher
|
||||
ausgestiegen und musste per Kill-Befehl abgeschossen werden.
|
||||
Angeblich liegt es am der Speicher-Option, in der domain1/config/dommain.xml die Einstellung <jvm-options>-Xmx512m</jvm-options>
|
||||
gesucht und den Inhalt durch -Xmx4096m ersetzt.
|
||||
Nach dem ändern der Konfiguration ist der absturz auch nach dem 30 Aufruf des Skriptes nicht reproduzierbar gewesen.
|
||||
Nach dem zurückstellen auf 512 konnte man den Absturz nach relativ kurze Zeit erneute erzwingen (6ter Aufruf). Der
|
||||
Arbeitspeicher-Verbraucht der Anwendung lag aber bei ca. 1500MB PSS}
|
||||
|
||||
Unterschied RSS und PSS erklären? PSS: non-swapped physical memory + anteiliger shared memory, RSS: non-swapped physical memory + shared memory, siehe man ps: https://man7.org/linux/man-pages/man1/ps.1.html
|
||||
|
||||
Bei 10 Aufrufen waren es ca. 50 MB mehr und bei 20 Aufrufen waren es ca. 100 MB mehr Arbeitspeichernutzung.
|
||||
Nach umstellung auf 4096 ist der Server nach bei ca. 4700 MB RSS ausgestiegen. Aber ohne OutOfMemoryError und der Arbeitspeicher im ganzen war zur Hälfte benutzt.
|
||||
|
||||
\subsection{Caching im OpenJPA}
|
||||
\label{sec:performance-checking:investigation-application:caching-openjpa}
|
||||
|
||||
Die Cache-Einstellung von OpenJPA werden über die zwei Einstellungen \texttt{openjpa.DataCache} und
|
||||
\texttt{openjpa.QueryCache} konfiguriert. Bei beiden Einstellungen kann zuerst einmal über ein einfaches Flag
|
||||
\textit{true} und \textit{false} entschieden werden ob der Cache aktiv ist. Zusätzlich kann über das Schlüsselwort
|
||||
\textit{CacheSize} die Anzahl der Elementen im Cache gesteuert werden. Wird diese Anzahl erreicht, dann werden zufällige
|
||||
Objekte aus dem Cache entfernt und in eine SoftReferenceMap übertragen. Dort
|
||||
|
||||
|
||||
Bei aktivierten Caching benötigt der erste Aufruf ca. 1500 msec, die nachfolgenden liegen um die 250 msec.
|
||||
|
||||
\mytodos{pin und unpin noch mit einbringen? SoftReferenceMap nochmal genau durchleuchte, laut doku entfällt dort nichts
|
||||
wenn kein Timeout auf der Klasse definiert ist}
|
||||
|
||||
Kein unterschied feststellbar, nachgeprüft ob die Einstellung richtig deaktiviert sind in der Datei:
|
||||
domain1/applications/WedekindJSF-1.0.0/WEB-INF/lib/classes/META-INF/persistence.xml
|
||||
|
||||
\subsection{Caching im \ac{JPA}}
|
||||
\label{sec:performance-checking:investigation-application:caching-jpa}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue