3G RAM + 1G Partition Swap - è abbastanza?

Il VPS che abbiamo appena acquistato è arrivato con 3G di RAM + 1G di swap su partizione: dovrei anche impostare un file di swap, o questo dovrebbe essere sufficiente?

1 Mi Piace

Basta per una piccola istanza di Discourse.

3 Mi Piace

Voglio dire, non in termini di se funzionerà velocemente ecc., ma in termini di se genererà o meno errori come, ad esempio, l’impossibilità di allocare memoria aggiuntiva ecc. La mia domanda ha senso? Inoltre, aggiungere uno swap di file con una priorità ancora più bassa aiuterebbe? Giusto per essere sicuri.

Paga semplicemente per un VPS più potente con almeno 8 GB di RAM. Altrimenti perderai tempo.

Questa non è la risposta alla mia domanda.

Non riesco a immaginare di eseguire Discourse con meno di 8 GB di RAM.

Un membro del team di Discourse dice che va bene, sono sicuro che vada bene.
Buona fortuna.

Discourse-setup segnalerà eventuali problemi di memoria.

Nem isto responde à minha pergunta. Talvez eu tenha formulado mal a minha pergunta?

Ho un forum relativamente tranquillo su un droplet Digital Ocean da 2 GB di memoria/50 GB di disco e funziona bene.

All’epoca, la guida all’installazione di Discourse consigliava un minimo di 1 GB, ma a un certo punto ho effettuato l’aggiornamento.

Se fornisci maggiori informazioni su quanto è grande/frenetico il tuo forum, sono sicuro che otterrai una risposta più dettagliata.

Penso che l’installer di Discourse imposti automaticamente un file di swap (non ho fatto nulla manualmente), quindi questo risponde in parte alla tua domanda, credo.

1 Mi Piace

Penso che crei un file da 2 GB all’installazione se rileva che non ne hai già uno.

Modifica: Penso che questo sia più accurato:

1 Mi Piace

Il minimo ufficialmente supportato è 1G di RAM + 2G di swap - e questo è sufficiente, se hai un forum piuttosto piccolo. Tuttavia, ogni aggiornamento diventa solo un po’ più grande, quindi mi aspetto che arriverà un momento in cui non sarà più sufficiente.

Per far funzionare correttamente il forum e non farlo crashare, la cifra totale di RAM e swap è quella importante.

Per avere un forum reattivo e non troppo lento, è preferibile più RAM. Quindi, se 1G di RAM + 2G di swap sono sufficienti, allora 3G di RAM + 1G di swap saranno sufficienti e potrebbero avere prestazioni migliori.

Ho due forum, entrambi piuttosto piccoli, uno funziona con 1+2 e l’altro con 2+2.

L’anno scorso ho scritto questo:

Modifica: se hai spazio su disco per aggiungere swap, fallo - non c’è motivo valido per non farlo, e potrebbe essere necessario. Il comando free ti dirà quanto è in uso, il comando vmstat può darti un commento in tempo reale. Ma l’uso medio non è interessante - è l’uso di picco che è interessante.

3 Mi Piace

Ok, la mia domanda è più teorica. Al momento non posso prevedere la popolarità del forum. Quello che sto cercando di capire è cosa dovrei fare per mitigare la possibilità teorica di esaurire la RAM in qualche scenario. Non sono a conoscenza di quando Discourse consuma più memoria, sia durante il backup, il ridimensionamento delle immagini, l’aggiornamento tramite la console di amministrazione o altro. Non ho idea.

Quindi la mia idea era quale file di swap creare per assicurarmi che Discourse non muoia ma diventi solo molto lento nel caso in cui non ci sia abbastanza memoria. Allo stesso tempo, ho scoperto che esiste già una partizione di swap da 1G, quindi ho pensato: cosa succede se 3G di RAM reale + 1G di swap su partizione non bastano… dovrei anche creare un file di swap di qualche gigabyte con una priorità ancora inferiore (rispetto al gigabyte della partizione). Spero che la mia domanda abbia ora più senso.

Se lo fa, allora sì. Sarebbe utile aggiornare il file readme dell’installazione. Venendo dai vecchi tempi in cui si diceva ufficialmente di creare un file di swap proprio nel readme dell’installazione, ora sono un po’ confuso sul fatto che venga fatto automaticamente, o non sia più necessario, o per qualsiasi altro motivo per cui sia stato rimosso dalla guida ufficiale.

… e se rileva quello da 1G ma quello basato su partizione?

Quindi, la continuazione della mia domanda sarebbe: è una buona idea avere due aree di swap, una basata su partizione e l’altra basata su file.

Nessun problema ad avere aree di swap multiple (o infatti file di swap multipli)

Credo che il picco di memoria più elevato si verifichi durante un aggiornamento, e il rischio è che il forum sia inattivo finché non si potrà ricevere aiuto.

Vale la pena anche impostare l’overcommit sull’impostazione più generosa: lo troverai già annotato nel tuo registro di aggiornamento, se non l’hai già modificato

ATTENZIONE: overcommit_memory è impostato su 0! Il salvataggio in background potrebbe fallire in condizioni di memoria insufficiente. Per risolvere questo problema, aggiungi ‘vm.overcommit_memory = 1’ a /etc/sysctl.conf e poi riavvia o esegui il comando ‘sysctl vm.overcommit_memory=1’ affinché abbia effetto.

Questo è stato menzionato molte volte in precedenza, ma c’è resistenza ad aggiungerlo alla ricetta di installazione standard di Discourse. È il tipo di impostazione che non può essere fatta all’interno dell’immagine docker ma deve essere fatta sull’host.

2 Mi Piace

Tutto ciò che puoi fare è ridurre il rischio e, se hai più fondi, puoi ridurre il rischio in misura maggiore. Questa domanda rientra nel campo dei compromessi!

Se avessi disco illimitato, certamente aggiungerei fino a 4G di swap prima ancora di pensarci: non farebbe male. Se avessi fondi illimitati, avrei la massima RAM che potrei ottenere. Ma nel mio caso, non è così.

Se ti aspetti che il tuo forum possa crescere, dovresti aspettarti di aumentare le risorse necessarie per gestirlo, nel tempo, piuttosto che aspettarti di dimensionare la macchina una sola volta all’inizio.

Non ho ancora aumentato le dimensioni delle macchine che uso per i miei forum, ma mi aspetto di farlo, forse quest’anno o forse il prossimo.

3 Mi Piace

Dovrebbe esserlo. Configuro regolarmente droplet da 1 e 2 GB con 2 GB di swap e funzionano. Attualmente una ricostruzione richiede molta RAM, ma dovrebbe funzionare.

Hai bisogno di una migliore immaginazione.

Gestisco quella quantità solo su siti con circa un milione di visualizzazioni di pagine al mese e database abbastanza grandi.

4 Mi Piace

L’ho menzionato non appena ho installato Discourse per la prima volta (Warnings: overcommit_memory and Transparent Huge Pages). Perché vale la pena farlo e qual è il motivo della resistenza? Non ho modificato l’impostazione predefinita.

Ecco qualcosa che ho scritto in precedenza:

In particolare

Così com’è, il kernel rifiuterà le allocazioni che non può soddisfare. Con questa modifica, accetterà tali allocazioni e il fallimento potrebbe essere evitato, o potrebbe verificarsi in seguito, quando l’allocazione diventa utilizzo.

Se la somma di RAM e swap è sufficientemente grande, non sarà mai necessario modificare questa impostazione. Se la somma non è grande, modificarla potrebbe aiutare.

Anche

È aumentare la quantità di memoria virtuale disponibile. (Cioè, la somma di RAM e swap.) Se esaurisci la RAM, inizi ad avere problemi di prestazioni. Ma se esaurisci la memoria virtuale, i processi non si avvieranno o moriranno o verranno terminati. Diventa brutale.

Coloro che hanno poca RAM e poco disco potrebbero non essere liberi di aggiungere molta swap, ma 2G sembra essere un buon minimo. (Se avessi 16G di RAM potresti non aver bisogno di alcuna swap, ma questa è un’altra storia. È la somma delle due che conta, quando il problema è che le cose falliscono.)

Per quanto riguarda la resistenza, penso che sia dovuta alla percezione che questa modifica vada a beneficio di redis e la maggior parte delle persone non ne avrà bisogno.

Modifica: questo thread recente è forse un caso emblematico, in cui un’istanza di piccole dimensioni ha esaurito la memoria e non aveva l’overcommit impostato. Ma non sappiamo se l’impostazione dell’overcommit avrebbe risolto questo problema: la persona è passata a 8G di RAM.

2 Mi Piace