incrementare le prestazioni di un server NFS

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun mar 15, 2004 0:00
Contatta:

incrementare le prestazioni di un server NFS

Messaggioda nik600 » lun gen 04, 2010 18:44

Ciao a tutti

sto mettendo in piedi una infrastruttura con diversi servizi (mail,web,dns,db).
L'infrastruttura è composta da 3 server fisici (Dl380G6).

1 server particolarmente carozzato, con 8GB di RAM e 2 processori 4core viene usato come host ESXi4 su cui vengono virtualizzati 4 server:

mail
dns
storage
web2

Le altre 2 macchine con 6GB di RAM e 2 processori 2core vengono usate per

web1
db (mysql)

Attualmente sto facendo dei test con tutte le macchine sull'host ESXi, (vmware tools installati su tutte le macchine virutali - slackware 13)

Tutte le configurazioni e i dati dei vari servizi (apache,bind,postfix,mysql) sono montate tramite nfs sui vari server.

L'host ESXi monta due dischi SAS da 300 GB in raid 1 (il raid è fatto a livello di controller) su un HP Dl380G6. (doppia alimentazione,schede di rete ecc ecc)

Noto un grosso collo di bottiglia sull'nfs, in particolare la macchina nfs ha dei picchi di load alti, quello che mi preoccupa è che attualmente le macchine non stanno facendo quasi nulla, sto solo facendo dei test di importazione dei database sulla macchina mysql.
Noto che le query di delete massivo e import (su database che sono comunque di diverse centinaia di MB, alcuni milioni di righe) portano il load del server nfs a 3,4,5 con un evidente calo di prestazioni su tutti i servizi ad esso collegato.

Qualcuno di voi ha esperienza con configurazioni simili?
In particolare, vorrei capire se devo cambiare strada, ed eventualmente in che punto (non virtualizzare il server NFS, non usare proprio NFS, etc)

Vi ringrazio

ciao

Avatar utente
andy-x
Linux 1.x
Linux 1.x
Messaggi: 139
Iscritto il: lun lug 13, 2009 11:19
Slackware: 12.2
Kernel: 2.6.27.7
Desktop: kde

Re: incrementare le prestazioni di un server NFS

Messaggioda andy-x » lun gen 04, 2010 23:01

Non vorrei fare un OT ma stai facendo un ottimo lavoro con quelle "bestioline". 8-)
Non posso risolvere i tuoi problemi ma vorrei domandarti come monitorizzi i tuoi server con Slackware 13? E poi hai usato Ext4?
Scusa le domande ma ho recentemente installato un ML350 G6 al lavoro e tutti mi dicevano che Slackware non era adatta...... a me funziona benissimo anche in produzione. :-) e tutti sono contenti.... speriamo mi aumentino lo stipendio 8-)

Avatar utente
daniele50
Linux 3.x
Linux 3.x
Messaggi: 964
Iscritto il: mar apr 10, 2007 13:58
Nome Cognome: Daniele Cinquanta
Slackware: Slackware64 14.1
Kernel: 3.10.17
Desktop: Xfce 4.10
Località: San Zenone al Lambro (MI)
Contatta:

Re: incrementare le prestazioni di un server NFS

Messaggioda daniele50 » mar gen 05, 2010 0:18

Non virtualizzare l'NFS potrebbe essere una soluzione, ti riporto i casi (diversi ma paragonabili) che affronto durante il mio lavoro:

installo applicazioni web e normalmente le infrastrutture (dei clienti) sono così:
- application server: servlet container (apache tomcat) e web server (apache o iis);
- database server: mssql o oracle;

fatta questa premessa ti dico che virtualizzando l'application server va tutto bene, virtualizzando il database server invece il 90% delle volte ottengo dei colli di bottiglia sulla coda del disco del database server, anche se il disco della macchina virtuale e su una NAS collegato in fibra.

Paragono il mio caso al tuo perché virtualizzi la macchina che ospita mysql.

E se la macchina dedicata a 'web1' la usassi per mysql (migrando 'web1' su virtuale)?

In ogni caso virtualizzare l'NFS prestazionalmente parlando non è un'ottima scelta. ;)

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun mar 15, 2004 0:00
Contatta:

Re: incrementare le prestazioni di un server NFS

Messaggioda nik600 » mar gen 05, 2010 9:17

Ok grazie per il feedback.

Era un pò quello che mi aspettavo.

Il monitoraggio dei server lo faccio con SNMP (cacti).

Una macchina dedicata a mysql c'è già, il problema è il server nfs che è virtualizzato, e forse non mi sono spiegato ma per poter essere indipendente dalla macchina che gestisce il servizio, tutti i dati sono sull'NFS quindi una query su mysql comporta anche una lettura sull'NFS.

Potrei quindi provare a girare le carte in questo modo:

VIRTUALI:
web1
web2
mail
dns

FISICHE:
mysql
storage

Avatar utente
twister
Staff
Staff
Messaggi: 1598
Iscritto il: mar nov 11, 2003 0:00
Slackware: current
Località: Roma
Contatta:

Re: incrementare le prestazioni di un server NFS

Messaggioda twister » mar gen 05, 2010 10:58

VIRTUALI:
web1
web2
mail
dns

FISICHE:
mysql
storage


Mi sembra la scelta più saggia, come sono collegate le varie macchine? Fibra o gigabit?
Comunque confermo le tue perplessità, nfs (come anche un iscsi) virtualizzato ha delle prestazioni molto basse, anche perché ESXi alla fine utilizza una sola scheda di rete per tutti i guest e fa una sorta di qos (ho abusato del termine, ma è tanto per rendere un po l'idea del modus operandi) dividendo le risorse hw per tutti i guest presenti, e tra queste anche le risorse della rete, la rete è l'unica cosa sulla quale non puoi fare tuning ad esempio assegnando un pool (almeno non con vSphere client).

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun mar 15, 2004 0:00
Contatta:

Re: incrementare le prestazioni di un server NFS

Messaggioda nik600 » mar gen 05, 2010 11:15

Gigabit.

No a dire la verità sulla macchina ESXi ci sono 4 schede di rete e sono configurate in load-balancing-fault tolerance (così è in ESXi 4), non ti risulta?

Sto continuando a fare dei test, il problema comunque è proprio sull'NFS con la rete si migliora qualcosa (ho provato a cambiare i chunk read/write dell'NFS) ma se provo a scrivere 2 file da 1GB da 2 macchine diverse le prestazioni crollano.

In ogni caso, creodo che anche senza macchina virutalizzata, pur avendo dischi sas da 10k rpm se scrivo 2 file da 1GB le prestazioni crollano, o sbaglio?

Voglio dire, saranno sicuramente migliori di virtualizzare l'NFS, ma una architettura di questo tipo può tenere con l'NFS o il rischio è che sia comunque un collo di bottiglia?

Grazie

Avatar utente
twister
Staff
Staff
Messaggi: 1598
Iscritto il: mar nov 11, 2003 0:00
Slackware: current
Località: Roma
Contatta:

Re: incrementare le prestazioni di un server NFS

Messaggioda twister » mar gen 05, 2010 11:30

Noon avevo capito che eri in load balancing.
Guarda io ho una situazione un po diversa, nel senso che ho un server di sharing fisico su nfs e trasferisco contemporaneamente file di grandi dimensioni senza problemi, su server dell con 8Gb di ram e dischi sas da 10k rpm, la stessa macchina fa da storage nfs per un po di macchine virtuali (web server, mysql, ftp ecc...) su ESXi4.

nik600
Linux 2.x
Linux 2.x
Messaggi: 450
Iscritto il: lun mar 15, 2004 0:00
Contatta:

Re: incrementare le prestazioni di un server NFS

Messaggioda nik600 » mar gen 05, 2010 11:41

In load balancing è ESXi.

Ok buono a sapersi, allora provo a "fisicizzare" l'NFS :-).

PS ma l'nfs non dovrebbe richiedere molta RAM o sbaglio? sto pensando di lasciare 2 GB all'NFS e spostare gli altri 4 su ESXi o sul DB, giusto per non lasciarla inutilizzata.