Jump to content

Recommended Posts

Salve,

 

Volevo un parere da chi ne sà più di me.

Supponendo di avere un server con discrete quantità di traffico, dove come sempre il collo di bottiglia è l'harddisk 7200rpm e il mysql che schizza alle stelle.

L'idea di utilizzare parte della ram come disco ram facendoci girare li il mysql, per ottenere dei tempi più ridotti è assurda?

Ovviamente ci sono tutti i problemi derivati da ciò se riavvio perdo tutto, ma per ciò avevo pensato di copiarmi i file ogni 30 minuti con uno script in cron.

E' una cosa che ha senso oppure sto lavorando di immaginazione?

 

Grazie in anticipo a chi vorrà rispondermi. :lode:

Share this post


Link to post
Share on other sites
Salve,

 

Volevo un parere da chi ne sà più di me.

Supponendo di avere un server con discrete quantità di traffico, dove come sempre il collo di bottiglia è l'harddisk 7200rpm e il mysql che schizza alle stelle.

L'idea di utilizzare parte della ram come disco ram facendoci girare li il mysql, per ottenere dei tempi più ridotti è assurda?

Ovviamente ci sono tutti i problemi derivati da ciò se riavvio perdo tutto, ma per ciò avevo pensato di copiarmi i file ogni 30 minuti con uno script in cron.

E' una cosa che ha senso oppure sto lavorando di immaginazione?

 

Grazie in anticipo a chi vorrà rispondermi. :lode:

 

MySql prevede un tipo di tabella che risiede in ram invece che su disco, se non sbaglio è una tabella MEMORY (non ricordo bene, non tocco MySQL da anni :D)

Il rischio però è quello che hai detto tu: se riavvii il demone o ti crasha perdi tutto. Se si tratta di dati che puoi rischiare di perdere, puoi copiarti la tabella ogni n minuti e stare tranquillo.

Se il collo di bottiglia è l'hd non puoi cambiarlo? Potresti anche pensare ad un SSD.

 

In ogni caso consiglio di controllare che MySql sia ottimizzato al massimo sia per quanto riguarda la configurazione del demone sia per quanto riguarda il database con cui hai problemi: gli indici sono utilizzati correttamente? Sono evitati sprechi di dati?

Share this post


Link to post
Share on other sites

Non credo abbia senso piazzare tutto mysql in ram.

Per prima cosa, dovresti gestire comunque un flush dei dati su disco altrimenti la prima volta che ti si spegne il server perdi tutti i database.

 

Inoltre, mysql usa già le tabelle in ram per conto suo, l'importante è tarare bene i valori delle varie cache. Se questi son ben tarati e se il server ha tonnellate di ram (pari a tenere in cache l'intero database o l'intera tabella), gli accessi al disco sono fatti quasi esclusivamente in fase di scrittura.

 

L'importante è avere ram, tanta, tantissima ram. (svariati e svariati GB)

Share this post


Link to post
Share on other sites

Le tabelle memory hanno alcune limitazioni, non è possibile utilizzare alcuni tipi di campo, quindi non sono utilizzabili per tutto.

Era per trovare una soluzione più economica di un SSD, avendo a disposizione un bel pò di GB di ram e un database di piccole dimensioni.

 

Quindi, è una cosa inutile, devo solo ottimizzare i valori cache del mysql.

 

Grazie mille. :D

Share this post


Link to post
Share on other sites
Le tabelle memory hanno alcune limitazioni, non è possibile utilizzare alcuni tipi di campo, quindi non sono utilizzabili per tutto.

Era per trovare una soluzione più economica di un SSD, avendo a disposizione un bel pò di GB di ram e un database di piccole dimensioni.

 

Quindi, è una cosa inutile, devo solo ottimizzare i valori cache del mysql.

 

Grazie mille. :D

 

Se hai un bel po' di GB e un DB piccolo c'è qualche problema di ottimizzazione...

Il db e la ram quanto sono grandi?

Share this post


Link to post
Share on other sites

Adesso ho un server entry-level quindi ho questo problema, anche perchè la ram è pochina.

Dovendo passare ad una soluzione un pò migliore (Avevo in mente gli EQ di Hetzner, dove la ram è 8GB ma c'è il problema degli harddisk), i database che dovrei metterci su avranno dimensioni complessiva di 1GB.

Visto che entra tutto il database in ram non dovrei avere problemi, era per cercare di sfruttarlo al meglio evitando cambiamenti dopo con il server in produzione.

Share this post


Link to post
Share on other sites

se proprio vuoi fare un boost di prestazioni considera un disco a stato solido almeno non rischi come a lavorare solo in RAM

con 80/100€ ti prendi un disco da 2.5" da 32GB

Edited by WizOfOz

Share this post


Link to post
Share on other sites
se proprio vuoi fare un boost di prestazioni considera un disco a stato solido almeno non rischi come a lavorare solo in RAM

 

Aspetta Wiz, non si parlava di lavorare solo in ram, ma di usare le cache di mysql.

Lavorare solo in ram tramite ramdisk è un suicidio anche perchè prima o poi dovrai comunque fare il flush dei dati su disco...

 

Non ha senso, o si usano le cache o si usano dischi veloci, oppure entrambi. Ma solo su ram è un massacro.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×