Newsgroup: it.comp.hardware.storage
Titolo: RAM Disk per gestire database mysql

Ciao a tutti!
Intanto metto il link altrimenti mi dimentico:
http://www.acard.com/english/fb01-product.jsp?prod_no=ANS-9010&type1_title=%20Solid%20State%20Drive&idno_no=270
Stavo pensando di usare uno scatolotto del genere per velocizzare il
più possibile l'accesso ad un (grosso) database mysql, con eventuale
replica asincrona dello stesso su un altro server "normale".
Cosa ne pensate? Si trova in EU?

 Cosa ne pensate?
Che 'sto coso va su due sata2 3Gb/s, quindi ha la banda di un sata3 6Gb/s.
Inoltre leggo:
# Data transfer rate up to 400MB/sec
# IOPS 20,000 per SATA port 
Mica poi tanto.
Per quel prezzo trovi SSD su schede PCIe più capienti e pure più veloci.
Tipo OCZ Revodrive X2 100GB.
Oppure un normale SSD sata3 di ultima generazione, per server:
OCZ Vertex3 Pro 100GB.
Oppure un normale SSD sata3 di ultima generazione, molto più capiente:
OCZ Vertex3 250GB (il Vertex3 a 120GB è ben più lento).
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
___________ ______________________________________________________
Non sprecare i cicli idle della tua CPU, né quelli della tua GPU.
 
http://www.rnaworld.de/rnaworld/
 
 
http://www.worldcommunitygrid.org/index.jsp
http://boincsimap.org/boincsimap/
 
http://www.gpugrid.net/
 

Nel suo scritto precedente, DarknessBBB ha sostenuto :

Per me non è un granchè... semmai come già detto potresti prendere un 
RevoDrive oppure un Vertex3. Imho saranno sufficienti per velocizzare 
l'accesso ai dati nel DB.

 l'accesso ai dati nel DB.
Ma le SSD non sono controindicate per l'utilizzo con database da
migliaia di query read-write al minuto? Grazie cmq per le risposte! :)

 Ma le SSD non sono controindicate per l'utilizzo con database
Non direi: tant'è che, per esempio per mysql sugli SSD, hanno inventato 
apposta questo: 
http://rethinkdb.com/


DarknessBBB scriveva il 16/04/11 :

Quanti GB al giorno scrivete in media sul DB?


Non è tanto lo spazio quello che mi interessa, ma la velocità, si
parla di un DB server con "almeno" queste caratteristiche complessive:
4x QuadCore Xeon CPU
64 GB Ram
4 x SAS 146GB 15k rpm RAID 10
:(

  :(
Per quanto riguarda il fattore prestazioni (specialmente le operazioni 
I/O come nel tuo caso), un singolo SSD di buona qualità surclassa un 
sistema di storage come quello indicato nelle specifiche...se poi li 
metti pure quelli in configurazione 10 non ne parliamo proprio.


Ti ringrazio, sei stato davvero gentilissimo. Grazie anche a Lem. Già
che ci sono provo anche quell'engine!

 ha scritto nel messaggio 
news:d1f95854-f4bd-4b49...@bl1g2000vbb.googlegroups.com...

ho letto tutte le altre risposte, se opti per la soluzione SSD aggiungo
che devi prendere ottimi prodotti con memorie SLC , almeno due
in RAID-1 per avere un minimo di ridondanza e continuità
non conosco il prodotto acard che hai linkato, personalmente non
userei prodotti SATA quando hai già un sistema con SAS
se non usi già un ramdisk, puoi provare una soluzione software
per analizzare il guadagno in prestazioni che potresti ottenere,
che sistema operativo usa il server ?
specifica anche il modello di controller SAS, ci sono alcuni prodotti
Adaptec ed LSI che sfruttano memorie a stato solido per il
caching delle operazioni
considera anche che una buona ottimizzazione di query e del
motore DB aiuta tantissimo, soprattutto in presenza di
un hardware con 16 core e 64GB di RAM (non mi è chiaro se
è una macchina già in uso o un upgrade)
ciao
luca

 userei prodotti SATA quando hai già un sistema con SAS.
Qui in effetti usare il protocollo SAS aiuterebbe ad avere ottime 
prestazioni  full duplex.

 allora potrebbe anche prendere un unità con celle MLC.
le informazioni in nostro possesso sono minime, si parla di migliaia di
query al minuto, per esempio 1000 query che scrivono 4KB ognuna
equivalgono a circa 5GB/day , escluso log ed altre operazioni tipiche
di un DB e di un server, aumentando a 5000 query e 64KB si arriva a
450GB
Intel, nel datasheet degli X25-M, dichiara 20GB/day per 5 anni
(circa 36TBW) ma nel caso si utilizzino in ambito enterprise
garantisce solo 7,5TBW per l'80GB (circa un anno con lo stesso
utilizzo) e 15TBW per il 160GB (due anni)
dal punto di vista prestazionale il vero problema è la continuità,
il numero di IOPS dichiarato negli SSD consumer è il picco massimo
non sostenuto nel tempo , per questo suggerivo memorie SLC
e ottimi prodotti (enterprise) visto che gli altri componenti non
sono da meno, 64GB (ECC ?) e 4x Xeon Quad core
ho solo una modestissima esperienza con mysql, quindi non so
dare altri suggerimenti, però ricordo che aprendo i rubinetti a
cache e buffer le prestazioni decollavano (e qui la ram non è
un problema) , per esempio leggendo altre esperienze è
buona norma usare un disco separato per il log (anche di tipo
meccanico), vedi suggerimento di Lem su motore DB ottimizzato
per gli SSD
ciao
luca

 sono da meno, 64GB (ECC ?) e 4x Xeon Quad core
Ma poi non ho capito che componentistica ha il server dell'OP...:D


Arigrazie!
Ma, dico, l'accrocchio che ho linkato non è più veloce "a prescindere" 
poiché utilizza RAM? Come velocità intendo quella di accesso in lettura 
e scrittura.
PS: si tratta di un software che gestisce chiamate in ingresso ed uscita 
(predictive dialing). E lavora praticamente in firm real-time. Ogni 
secondo vengono eseguite (a pieno carico) un migliaio di query 
update/insert/delete (logging) e un migliaio x 4 di select. L'engine è 
MyISAM per garantire la "queue integrity", altrimenti va tutto a ramengo.
Per quanto riguarda la componentistica, fin'ora sinceramente mi sono 
trovato bene con Dell e HP :-)

 bene con Dell e HP :-)
Ma adesso che sottosistema di storage usi per fare ciò?


Niuno, servirà nel caso si dovesse davvero andare a regime. Ad oggi, per 
un carico di 1/5 circa, una 3ware 9750 con 4 HD 15k SAS in raid 1+0 
fanno il loro sporco lavoro. MySQL è in replica master+slave con heartbeat.

 MyISAM per garantire la "queue integrity", altrimenti va tutto a ramengo.
un migliaio al secondo è molto di più di un migliaio al minuto :)
quindi stiamo nell'ordine di 5000-10000 transazioni al secondo,
escluso log ed altre operazioni gestite dal server
non ho capito se il sistema attuale riesce a gestire bene il carico
pari ad un quinto , "sporco lavoro" è molto ottimistico :)
ad ogni modo, occorrono prodotti di fascia enterprise,
per esempio se il controller 9750 ha 8 porte, puoi aggiungere
un RAID-10 di 4 SSD 32GB SLC per il DB e dirottare il LOG
sui 4 SAS (o solo su due in mirror ed usare gli altri due per il
SO e software, opzione da valutare in seguito)
suggerimento a monte, usa più unità , una per ogni compito,
ti aiuterà a distribuire meglio il carico di lavoro, accertati che
ci sia la batteria tampone sul controller e che la cache sia
configurata di conseguenza, nel caso utilizzi hard disk meccanici
se le dimensioni del DB e del LOG sono minime rispetto alla loro
capacità, usa partizioni piccole per migliorare il tempo d'accesso
e di conseguenza gli IOPS , con un partizionamento di un quarto
guadagni circa il 25% di IOPS , con un decimo guadagni il 35%
(tecnica di short stroking)
due domande, su quale piattaforma gira l'applicativo e qual'è il tuo ruolo,
analista/programmatore o amministratore di sistema , o entrambi :)
ciao
luca

 64 GB Ram
Curiosità mia: perché, se volete avere la max velocità possibile, non 
aumentate la ram sulla MB, e fate un ramdisk? Parliamo di mb per server 
di un certo livello, non dovrebbe essere un problema... 


DarknessBBB ha spiegato il 19/04/11 :

In questo caso considerando le elevate richieste per unità di tempo o 
ti prendi degli SSD con celle SLC (4 in RAID10 e lasci i log nei dischi 
da 15k) oppure come ha già detto Lem perchè non aumenti la RAM e ci 
schiaffi direttamente un RAM DISK li? :) MB del server permettendo 
ovviamente.

 heartbeat.
Ma se siamo a questo livello, anzi x5, dobbiamo essere disposti a 
spendere bene. Per $7000 c'è anche 'sta roba (160GB, entry level per 
imprese, poi si sale): 
http://www.fusionio.com/products/iodrive?tab=specs
