Aggiornamento di fine anno

Stato dei lavori, obiettivi di breve termine e benchmarks.

NewsReportBenchmarks

Sono stato un po' silente nell’ultimo mese per impegni personali, questo sito è un hobby e non posso lavorarci a tempo pieno ma cerco comunque di riversarci un impegno costante.

Al momento lo sviluppo è rallentato da un bug del tool che uso per il disegno db di cui sto aspettando il fix da parte dello sviluppatore a cui si aggiunge che ad oggi non ho ancora trovato un grafico che mi possa dare una mano.

Per comunque guadagnare tempo ho fatto dei test di performance ad un hoster italiano che è economicamente molto vantaggioso per confrontarli con uno americano (con farm in germania) che è, tra quelli internazionali che ho testato, quello con il miglior rapporto prezzo prestazioni (benchmark alla mano).

Ecco il confronto preliminare a quasi parità di spesa mensile (credo che le sigle siano abbastanza esplicative)

Table 1. Caratteristiche
Caratteristica Usa Ita

Prezzo mensile

12,1€ 1

11,5€

VCore

1

2

Ram

2Gb

3Gb

Storage

25Gb

25GB

Bandwidth

1Tb

Unmetered?

1 Il prezzo di quello americano è in $ quindi la valutazione si basa sulla corrente quotazione, quindi la quotazione flottante del dollaro resta una incognita da valutare.

Sulla carta il nuovo host è più conveniente perché a parità di spesa ho 2 core e 3gb grazie a cui riesco a mettere tutte le componenti sulla stessa macchina senza troppi compromessi, sull’host di riferimento avrei dovuto ridurre alcuni parametri oppure prendere la dimensione superiore che costa esattamente il doppio, inoltre l’host italiano permette di creare macchine su misura mentre quello usa prevede template precostituiti fissi cosa scomoda per la scalatura di una singola macchina.

Tuttavia come sempre non è tutto oro quello che luccica. Infatti i Benchmark ovviamente raccontano un’altra storia.

Table 2. Benchmark tests
# Test Tipo 1 Usa Ita

-

Generici

1

7za

2701

4322

2

UNIX Bench System Score

1610.7

1442.0/2530.6 2

3

JMH java Score

2431 mops

4323 mops

-

SYSBench

4

sysbench --test=cpu --cpu-max-prime=60000 --num-threads=4 run

146.7812s

84.4618s

5

sysbench --test=memory --num-threads=4 run

2707.88 MB/sec

1554.36 MB/sec

6

sysbench --test=fileio --file-total-size=5G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

80.353 Mb/sec

18.134 Mb/sec

-

PGBench 3

7

sudo -u postgres /usr/pgsql-9.5/bin/pgbench -c 100 -j 20 -T 60

105.553 ms

81.543 ms

8

sudo -u postgres /usr/pgsql-9.5/bin/pgbench -c 100 -j 20 -T 60 -S

15.591 ms

7.465 ms

9

sudo -u postgres /usr/pgsql-9.5/bin/pgbench -c 100 -j 20 -T 60 -M prepared

75.441 ms

61.925 ms

10

sudo -u postgres /usr/pgsql-9.5/bin/pgbench -c 100 -j 20 -T 60 -M prepared -S

13.432 ms

7.427 ms

1 migliore = valore più alto migliore = valore più basso
2 il primo valore è considerando solo un core il secondo entrambi i core
3 db di test creato con i seguenti parametri 'sudo -u postgres /usr/pgsql-9.5/bin/pgbench -i -s 100 --foreign-keys'

I test sulle cpu sono a favore del nuovo host, perché i vcore sono 2 contro 1 di quello usa, ma va a perdere su ram e storage, che sono in genere molto importanti in un portale. Se guardiamo la ram la perdita di performance è del 42% e su storage la differenza è ancora più grande (più del 77%!)

Devo dire che i risultati mi fanno pensare che l’hoster americano riservi maggiori risorse per macchina e usi cpu di classe superiore (dichiara degli E5, quello italiano non dichiara le cpu ma supponendo siano Xeon direi che sono degli e3), infatti se confrontassimo a parità di core le performance sarebbero tutte superiori. Poi c’è una questione di differenza di affidabilità dell’hoster, a differenza di quello italiano con quello usa non ho mai avuto problemi di alcun tipo e non necessita di "strane modifiche" sugli script di configurazione del kernel. Probabilmente se non avessi un budget "limitato" opterei per quello americano ad occhi chiusi.

Va tenuto conto tuttavia che i risultati dei test db (PGBench) sono invece a favore di quello ita portando una latenza media decisamente minore rispetto alla macchina usa (dal 19% fino al 50%) (sicuramente dovuti ai due core), e anche i test java sono ottimi. Molto probabilmente perché, sebbene le performance disco siano scarse, i benchmark non fanno uso sostenuto del disco (la ram è sufficiente a tenere i dati in cache) e la perdita sulla ram viene compensata dalle migliori performance dovute a due cpu.

E' ovvio che sono comunque test sintetici, che aiutano a valutare ma non sono sufficienti a prevedere la reale differenza di performance, quindi nella fase di alpha avrò un server su entrambi gli host per valutare le performance reali poi a seconda dei risultati deciderò su quale host mettere il server finale.

Saluti

K.