Molti core CPU o core veloci?

La nostra community registra picchi di traffico elevati in base a eventi del mondo reale. Nello specifico, le partite di hockey su ghiaccio che generano circa 1000 messaggi in un topic dedicato in circa 2,5..3 ore. Come discusso in un altro topic, abbiamo difficoltà a gestire questi picchi.

Ciò mi ha spinto a esplorare altre opzioni di hosting, con un budget limitato. L’obiettivo è intorno ai 50€ al mese. Il mercato si è evoluto dall’ultima volta che ho analizzato le offerte.

  • Per soli 42€ è possibile ottenere un server dedicato da Hetzner, con CPU Ryzen 5 3600. Si tratta di una CPU piuttosto potente con 6 core. Per la cronaca, ho una CPU simile su questo laptop e riesce a eseguire elaborazioni single-thread circa il 40..50% più velocemente di un VPS tipico dalle buone prestazioni.
  • Ma nella stessa fascia di prezzo è possibile acquistare un VPS con un numero elevato di core, con prestazioni leggermente inferiori. Contabo offre 10 core per soli 27$ e Hetzner arriva fino a 16 core a 62€. Questi sono solo esempi; esistono molti altri fornitori.

Queste offerte mi hanno fatto sorgere un dubbio: quale configurazione di core è ideale per Discourse, in termini di massimizzazione dell’output di picco? Meno core ma più performanti, o molti core?

Ho provato a cercare informazioni a riguardo, trovando principalmente i miei vecchi post :slight_smile: . Ricordo che questo era un argomento che emergeva di tanto in tanto nei primi tempi, ma non è stato discusso approfonditamente di recente. Molto codice è cambiato nel corso degli anni, quindi forse anche il comportamento del software o le raccomandazioni generali sono cambiati?

Hai ragione, sono vecchi post, ma la tendenza sembra coerente :thinking:

Che ne dici di un’istanza scalabile per le serate di gioco? Con un breve periodo di inattività è facile eseguire il backup e ridimensionarla verso l’alto o verso il basso. Ho avuto un problema simile con un’istanza Jitsi (ottimo componente a proposito :smile): per la maggior parte del tempo restava inattiva, ma alcune volte a settimana…

È difficile fornire indicazioni senza sapere esattamente quale sia l’attuale collo di bottiglia che stai riscontrando.

L’utilizzo del plugin Prometheus exporter per Discourse può mostrare esattamente quale dei numerosi componenti sia il problema.

Anche se ho introdotto il nostro caso nell’OP, l’intenzione era discuterne a un livello generico. Potrei entrare nel mercato dell’hosting in un futuro di medio termine, indipendentemente dal fatto che abbia o meno identificato il nostro caso radice.

Per Discourse, dovresti privilegiare core veloci rispetto a un maggior numero di core. Se riesci ad avere entrambi, è ancora meglio (per scenari di carico). Ma nel caso tipico, 2 core veloci offrono prestazioni complessive migliori rispetto a 4 core lenti.

Tendiamo a misurare questo in termini di tempo di build; ecco alcuni esempi. Ma qualsiasi benchmark single-thread funziona ugualmente.

Idealmente, vorresti un tempo di build inferiore a 4 minuti (240 secondi).

Non sono un esperto dell’argomento, ma non sono sicuro che i core virtuali di un VPS siano affatto paragonabili ai core fisici di una CPU. Immagino che, per avere una stima approssimativa, si possa guardare alla quantità di RAM offerta e supporre che questi VPS vengano eseguiti su un computer da 256 MB. Contabo, con i suoi “10 (virtuali) core”, offre 60 MB di RAM. Probabilmente ne eseguono 4 su qualcosa di approssimativamente equivalente al server dedicato Hetzner che menzioni (un server con 256 MB). Quindi, ipotizzerei che i “10 (virtuali) core” siano circa un quarto delle prestazioni dei “6 (fisici) core”. Diciamo al massimo la metà se ne eseguono 2 su un computer da 128 MB (che potrebbe avere una CPU migliore o più lenta rispetto alla macchina Hetzner, chissà).

(È possibile confrontare i “core virtuali” solo tra le diverse offerte VPS dello stesso provider. Non sono nemmeno sicuro che abbia senso fare confronti tra VPS di provider diversi).

Se vuoi esserne certo, devi abbonarti per un mese ed eseguire un benchmark. Oppure convincerli a eseguirlo per te, o offrire una prova gratuita per un breve periodo. Se ciò che cerchi è davvero la prestazione, questo è l’unico modo reale per saperlo con i VPS. Oppure opta per un server dedicato, dove hai informazioni più precise.

AGGIORNAMENTO: I provider VPS come Contabo usano solitamente KVM per la virtualizzazione e, dopo una ricerca, sembra effettivamente possibile mostrare più “core virtuali” di quanti core fisici si abbiano realmente. Esempio:

Sì, è possibile configurare ed eseguire più CPU virtuali rispetto ai core fisici disponibili. Questo è un guest KVM Windows Server 2008 (x86, tedesco) inattivo che mostra 10 CPU su una macchina Intel X3210 con 4 core e un singolo processore
(fonte: https://serverfault.com/questions/435231/can-kvm-cpu-assignment-count-differ-from-physical-hosts-cpu-count)

Ha senso che lo facciano, visto quanta RAM offrono rispetto al numero di “core”.

Mentre stavo valutando questa offerta e pensavo :face_with_monocle: “mhm, un buon affare”, ho notato che la RAM non era ECC. Ho fatto una rapida ricerca sul web e cosa è apparso? questo articolo del blog di Jeff :sweat_smile:
Il video sulle CPU mi ha fatto la giornata…

Wow, sto già ospitando con Hetzner, ma a un prezzo più alto con una CPU più lenta e meno storage rispetto alle loro attuali scatole Ryzen. Questo rende molto interessante il passaggio… grazie per la nota!

Grazie per il link al blog. È una lettura interessante.

Sono d’accordo anche sul fatto che un’immagine valga più di mille parole e, beh… è anche molto divertente.

Qualcuno ha eseguito dei test con diverse CPU riguardo alle dimensioni della cache L3?

Ho visto alcune menzioni secondo cui Ruby è molto esigente in termini di memoria. Questo potrebbe dare un’indicazione sul possibile impatto delle dimensioni della cache della CPU, dato che Discourse lavora con grandi set di dati.

Sto decidendo per un nuovo server e sto scegliendo la CPU giusta. Mi chiedo se optare per la frequenza più alta o tenere conto anche delle dimensioni della cache L3.

Attualmente sto valutando la Intel® Xeon® E-2174G con 4 core a 3,8 GHz e 8 MB di cache. Ma ci sono opzioni più costose con 12 MB o 16 MB di cache. Ne vale la pena?

Grazie!

Nella mia esperienza, ciò non farà una differenza significativa.