Title: Diapositiva 1
1Stage di Informatica
Studenti
Karen Jomayra Montes Rua Gabriele Scolastri
Tutor Giuseppe Fabio Fortugno
2Stage di Informatica
- Introduzione sistema operativo Unix (nascita,
sviluppo, utilizzo) - Funzionamento dei file system, compact disc,
disco rigido. - Il sistema operativo, fase di bootstrap, ram...
- Network, LAN, connessione ethernet (fase
analogica e digitale), protocolli tcp/ip - Linguaggio C, programmazione
- Misura della velocita di NFS v3
3Linguaggio C
E un linguaggio di programmazione di medio
livello. Ciò significa che il linguaggio C è
articolato e potente quasi come il linguaggio
della macchina (assembler), ma meno complesso.
Può essere scritto con programmi di scrittura
come vi, Emacs e Pico, per poi essere compilato
da Unix attraverso il compilatore. La sua
potenza permette sia di modificare parti del
sistema operativo che di crearne uno ex novo!!
4Test di Velocita di NFS
- Lobbiettivo è calcolare la velocità con cui
uno o più client riescono a lavorare in
contemporanea su un server quale sia il
blocksize (pacchetto di dati) migliore per
ottenere maggiori velocità. - 5 blocksize 512, 1024, 2048, 4096, 8192 byte
- max 4 Client
- Tipo connessione NFS su TCP/IP
5Elenco componenti usati nel test di velocita
HARDWARE 1 Switch Cisco 4500 con porte Gigabit
Ethernet 1 IBM xSeries 340 Processore Intel
Xeon a 2 GHz 1024 Mbyte Ram Due dischi SCSI FW
da 36 Gbyte Gigabit Ethernet Card in fibra
ottica 4 IBM xSeries 330 Processore Intel Xeon
2 Ghz 512 Mbyte RAM Un disco SCSI da 9
Gbyte Gigabit Ethernet Card in rame
SOFTWARE Server Linux Suse Enterprise Server
9.2 Kernel ver. 2.6.5 NFS Server
V3 Client Linux Suse Enterprise Server
9.2 Kernel ver. 2.6.5 NFS Client V3 Gnu C
Compiler ver.3.3.3
6Struttura del cluster linux su cui sono state
fatte le prove di scrittura e lettura
lxmaster01
NFS server
Switch Cisco 4500
lxmaster02
lxmaster05
lxmaster03
lxmaster04
Gigabit-Ethernet
SCSI Fast Wide 160MB/s
7Struttura logica del cluster
lxmaster01
/work
/
work
NFS server
stage
cl01 cl02 cl03 cl04
NFS Client
NFS Client
lxmaster02
lxmaster05
NFS Client
NFS Client
lxmaster03
lxmaster04
Gigabit-Ethernet
SCSI Fast Wide 160MB/s
8 katoi(argv1) switch(k) case
1 n512 break case 2 n1024
break case 3 n2048 break
case 4 n4096 break case 5
n8192 break default n512
do virandom() i
while(iltn) fdcreat("misura",
S_IRUSRS_IWUSRS_IRGRP) pnv0 printf("\n
Inizio scrittura del file \n") t1time(NULL)
for(k0 klt(m/n) k)
rcwrite(fd, pn, n)
t2time(NULL) tdifftime(t2,t1)
printf("\n Fine scrittura del file \n")
printf("\n Il tempo che il computer ha )
printf( impiegato per scrivere il file e 7.3f
s\n",t) close(fd)
Programma C di scrittura
includeltstdio.hgt includeltstdlib.hgt includeltfcnt
l.hgt includeltsys/types.hgt includeltsys/stat.hgt i
ncludelttime.hgt includeltbits/time.hgt main(int
argc,char argv) int n, v8192, i, k,
m512000000, rc0 time_t t1,t2,t3 double t
int fd int pn i0 if(argc1)
printf("\n Inserisci una delle seguenti opzioni
\n") printf("\n 1 -gt 512 Byte Block ")
printf("\n 2 -gt 1024 Byte Block ") printf("\n
3 -gt 2048 Byte Block ") printf("\n 4 -gt 4096
Byte Block ") printf("\n 5 -gt 8192 Byte Block
\n\n ") exit(1)
9 katoi(argv1) switch(k) case 1
n512 break case 2 n1024
break case 3 n2048 break
case 4 n4096 break case 5
n8192 break default n512
do virandom() i
while(iltn) fdopen("misura", O_RDONLY)
pnv0 printf("\n Inizio lettura del file
\n") t1time(NULL) for(k0 klt(m/n) k)
rcread(fd, pn, n)
t2time(NULL)
tdifftime(t2,t1) printf("\n Fine lettura del
file \n") printf("\n Il tempo che il computer
ha ) printf( impiegato per leggere il file e
7.3f s\n",t) close(fd)
Programma C di lettura
includeltstdio.hgt includeltstdlib.hgt includeltfcnt
l.hgt includeltsys/types.hgt includeltsys/stat.hgt i
ncludelttime.hgt includeltbits/time.hgt main(int
argc,char argv) int n, v8192, i, k,
m512000000, rc0 time_t t1,t2,t3 double t
int fd int pn i0 if(argc1)
printf("\n Inserisci una delle seguenti opzioni
\n") printf("\n 1 -gt 512 Byte Block ")
printf("\n 2 -gt 1024 Byte Block ") printf("\n
3 -gt 2048 Byte Block ") printf("\n 4 -gt 4096
Byte Block ") printf("\n 5 -gt 8192 Byte Block
\n\n ") exit(1)
10Misure effettuate sul cluster linux
Scrittura
Blocksize (Byte) Velocita con 1 client (Mbyte/s) Velocita con 2 client (Mbyte/s) Velocita con 3 client (Mbyte/s) Velocita con 4 client (Mbyte/s)
512 13,84 5,38 4,10 5,20
1024 13,80 8,25 5,41 5,30
2048 12,80 7,10 4,10 3,60
4096 9,25 3,90 3,60 3,60
8192 8,80 3,70 3,56 3,40
Lettura
Blocksize (Byte) Velocita con 1 client (Mbyte/s) Velocita con 2 client (Mbyte/s) Velocita con 3 client (Mbyte/s) Velocita con 4 client (Mbyte/s)
512 9,07 4,91 3,26 2,58
1024 10,01 5,63 3,85 2,93
2048 9,61 5,69 3,76 2,92
4096 9,65 5,62 3,76 3,12
8192 9,54 5,61 3,77 2,90
11Scrittura
12Lettura
13- Conclusioni
- Se un filesystem NFS esporta dati in
lettura/scrittura tra piu di un client sara
meglio usare un blcksize pari a 1024 - Se invece il filesystem servira per dati
readonly avremo il massimo throughput con un
blocksize pari a 4096 Byte.
14Avendo piu tempo
client
server
Client NFS
Tcp/ip buffer
Client NFS
Server NFS
Tcp/ip buffer
Tcp/ip buffer
Client NFS
Tcp/ip buffer
Client NFS
Tcp/ip buffer
e
15Stage di Informatica
Grazie per lattenzione!