VUFIND – TUTORIAL 10 – PERFORMANCE

Al crescere dell’indice da gestire possiamo notare in Vufind un decadime nto delle prestazioni fino al suo completo blocco. La piattaforma presenta più componenti pertanto gli interventi di tuning coinvolgono sia la componente php/apache che gestisce il livello di presentazione che la componente java che gestisce l’indice della nostra biblioteca. Per poter monitorare le performance è buona norma mettere in piedi una procedura di stress test che simuli il carico di produzione, per questo vufind consiglia di usare jmeter o WCAT( Web Capacity Analysis Tool) di Microsoft. Per esigenze ho usato WCAT che, configurato correttamente, permette di simulare n accessi concorrenti con le query più disparati al fine di valutare il comportamento della nostra piattoforma sotto carico. A questo punto scarichiamo WCAT versione 32 bit o 64 bit e configuriamo il nostro client definendo lo scenario tramite un apposito file e il numero di utenti da simulare.

Esempio di file scenario.txt che simula una ricerca libera

E’ possibile aggiungere altre transazioni per simulare altre ricerche.

Esempio di file settings.txt che simula 30 utenti

A questo punto potete aprire 2 shell cmd per avviare il testing e ipotizzando che il nostro vufind giri sul nostro localhost scriveremo

A questo punto il client incomincia ad avviare un utente dopo l’altro e a simulare le chiamate configurate. A fine esecuzione sarà possibile consultare il report che indicherà quante richieste sono state effettuate e quante di esse hanno avuto esito positivo. A questo punto per aumentare le prestazioni, se i tempi di risposta non sono soddisfacenti, occorre agire sulla RAM del solr, sul numero di CORE e il tipo di Garbage Collection del nostro server. A questo punto ci viene in soccorso la doc ufficiale di vufind che riporta questo schema di prestazioni per un indice da 8,8 milioni di record:

CPU Cores (2.7GHz)Memory (GB)Garbage CollectionFresh (Req/s)Cached (Req/s)
2430ConcMarkSweepGC327.9705.9
2430G1GC93.3167.5
2430ParallelGC320.6701.2
248ConcMarkSweepGC205.5780.0
248G1GC64.0147.2
248ParallelGC250.7788.3
230ConcMarkSweepGC81.1161.4
230G1GC65.6123.9
230ParallelGC75.6220.9

Il report evidenzia la differenza di prestazione tra le ricerche nuove e le ricerche mantenute in cache.