Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
mysql compilato con icc
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
x-dd
n00b
n00b


Joined: 19 Aug 2005
Posts: 68

PostPosted: Sun Sep 17, 2006 4:40 pm    Post subject: mysql compilato con icc Reply with quote

Ciao a tutti,
posto i risultati di un piccolo esperimento che ho effettuato oggi (dato che piove e tutte le mie amiche hanno da fare), ho provato a smanettare un po' l'hardware di un server in azienda per cercare di migliorare le prestazioni di una applicazione che è un mattone, il tutto gira su un server Siemens TX200 con le seguenti caratteristi che iniziali:

CPU PENTIUM4 XEON 2,8 GHz 533 Mhz 512 KB Cache L2
2 GB Ram DDR 266 ECC CL 2,5
Controller Scsi Raid Adaptec 2010S
3 HARD DISK Fujitsu MAN3367NC in raid 5

Sistema operativo Gentoo Linux 2006.1

Il test l'ho fatto con una query su mysql 5.0.24 usando phpmyadmin, mysql è stato compilato con gcc 4.1.1 con le seguenti CFLAGS:
"-O3 -march=pentium4 -pipe -fomit-frame-pointer"

e con le seguenti USE:
USE="berkdb max-idx-128 perl static -big-tables -cluster -debug -embedded -extraengine -latin1 -minimal (-selinux) -srvdir -ssl"

I dati:

Configurazione originale: 127.8410 sec

Montanto uno Xeon 3,0 GHz e 1 MB di cache L2: 116.6397 sec

Montanto un secondo Xeon 3,0 GHz e 1 MB di cache L2 e abilitando il supporto smp del kernel: 115.2131

Compilando Mysql con Icc e le seguenti CFLAGS: "-O3 -Ob2 -mp -xN": 88.6670 sec

A me è sembrato incredibile, non so quanto costi la licenza di icc ma probabilmente converrebbe comprare il compilatore piuttosto che fare un pensante upgrade hardware non credete?
Chi altri ha esperienze simili (o miserabili fallimenti) con icc?
Vi va di parlarne?

Saluti
_________________
Odio gli arroganti.
Moderare un forum non ha senso, le persone adulte sanno governarsi da sole.
Back to top
View user's profile Send private message
Luca89
Advocate
Advocate


Joined: 27 Apr 2005
Posts: 2107
Location: Agrigento (Italy)

PostPosted: Sun Sep 17, 2006 5:16 pm    Post subject: Reply with quote

Ma non sarebbe meglio fare il test utilizzando le stesse CFLAGS? :?:
_________________
Running Fast!
Back to top
View user's profile Send private message
.:chrome:.
Advocate
Advocate


Joined: 19 Feb 2005
Posts: 4588
Location: Brescia, Italy

PostPosted: Sun Sep 17, 2006 6:03 pm    Post subject: Reply with quote

Luca89 wrote:
Ma non sarebbe meglio fare il test utilizzando le stesse CFLAGS? :?:

quoto. così finisci inevitabilmente per falsare i risultati

sarebbe molto interessante capire anche in cosa consiste questo test. trattandosi di mySQL suppongo sia una query abbastanza complessa (e spero che tu non ti sia fatto stampare a video i risultati della query, se più lunghi di uan videata) per davvero se ne può valere la pena
Back to top
View user's profile Send private message
x-dd
n00b
n00b


Joined: 19 Aug 2005
Posts: 68

PostPosted: Sun Sep 17, 2006 7:16 pm    Post subject: Reply with quote

Ma gcc ed icc non usano le stesse cflags.
A video phpmyadmin ha stampanto le prime 29 righe.
_________________
Odio gli arroganti.
Moderare un forum non ha senso, le persone adulte sanno governarsi da sole.
Back to top
View user's profile Send private message
.:chrome:.
Advocate
Advocate


Joined: 19 Feb 2005
Posts: 4588
Location: Brescia, Italy

PostPosted: Sun Sep 17, 2006 9:24 pm    Post subject: Reply with quote

x-dd wrote:
A video phpmyadmin ha stampanto le prime 29 righe.

scusa. mi ero fatto sfuggire che hai usato phpMyAdmin per la query.

potrei chiederti i dettagli della query (e ovviamente del database)?
Back to top
View user's profile Send private message
x-dd
n00b
n00b


Joined: 19 Aug 2005
Posts: 68

PostPosted: Mon Sep 18, 2006 7:00 am    Post subject: Reply with quote

Ciao,
l'incasinatissima query è questa:
Code:
(select Chiamata.Codice Chiamata,
Chiamata.Sito,Concat(Chiamata.Indirizzo , ' - ', Chiamata.Comune),
Intervento.Data_inizio,Sli.Codice Stato,TipoInt.Codice Tipo,
Tecnico.Codice,Intervento.Note

from GC_Tab_Intervento Intervento,GC_Tab_Chiamata Chiamata,GC_Tab_Cliente Cliente,
GC_Tab_StatoLavorazioneIntervento Sli,GC_Tab_TipoIntervento TipoInt,GC_Tab_InterventoTecnico IntTec ,
GC_Tab_Tecnico Tecnico where Intervento.Id_Chiamata = Chiamata.Id_Chiamata
 and Chiamata.Codice not in (select Chiamata.Codice Chiamata from GC_Tab_Intervento Intervento, GC_Tab_Chiamata Chiamata
where Intervento.Id_Chiamata = Chiamata.Id_Chiamata and
(Intervento.Id_StatoLavorazione = 1 or Intervento.Id_StatoLavorazione = 3))
and Intervento.Progressivo in ( select max(Progressivo) from GC_Tab_Intervento
where Id_Chiamata=Intervento.Id_Chiamata group by Id_Chiamata ) and
Chiamata.Id_Cliente = Cliente.Id_Cliente and Intervento.Id_StatoLavorazione = Sli.ID_StatoLavorazioneIntervento
and Intervento.Id_TipoIntervento = TipoInt.Id_TipoIntervento and Intervento.Id_Intervento = IntTec.Id_Intervento
and Tecnico.Id_Tecnico = IntTec.Id_Tecnico and Cliente.Id_Cliente='"+id_cliente+"' group by Intervento.Id_Chiamata) union ( select Chiamata.Codice Chiamata, Chiamata.Sito,Concat(Chiamata.Indirizzo , ' - ', Chiamata.Comune),Intervento.Data_inizio,Sli.Codice Stato,TipoInt.Codice Tipo,null,Intervento.Note from GC_Tab_Intervento Intervento, GC_Tab_Chiamata Chiamata,GC_Tab_Cliente Cliente,GC_Tab_StatoLavorazioneIntervento Sli,GC_Tab_TipoIntervento TipoInt,GC_Tab_InterventoTecnico IntTec where Intervento.Id_Chiamata = Chiamata.Id_Chiamata and Chiamata.Codice not in (select Chiamata.Codice Chiamata from GC_Tab_Intervento Intervento, GC_Tab_Chiamata Chiamata where Intervento.Id_Chiamata = Chiamata.Id_Chiamata and (Intervento.Id_StatoLavorazione = 1 or Intervento.Id_StatoLavorazione = 3)) and Intervento.Progressivo in (select max(Progressivo) from GC_Tab_Intervento where Id_Chiamata=Intervento.Id_Chiamata group by Id_Chiamata ) and Chiamata.Id_Cliente = Cliente.Id_Cliente and Intervento.Id_StatoLavorazione = Sli.ID_StatoLavorazioneIntervento and Intervento.Id_TipoIntervento = TipoInt.Id_TipoIntervento and Intervento.Id_Intervento not in (select Id_Intervento from GC_Tab_InterventoTecnico where Id_Intervento is not null) and Cliente.Id_Cliente='18' group by Intervento.Id_Chiamata) order by Data_inizio asc


Sul DB cosa vuoi sapere?
C'è qualche comando che posso dare e postarti il risultato?
_________________
Odio gli arroganti.
Moderare un forum non ha senso, le persone adulte sanno governarsi da sole.
Back to top
View user's profile Send private message
.:chrome:.
Advocate
Advocate


Joined: 19 Feb 2005
Posts: 4588
Location: Brescia, Italy

PostPosted: Mon Sep 18, 2006 9:02 am    Post subject: Reply with quote

alla faccia della query :lol:

letta molto in fretta sembra si tratti solo di alcune queries nidificate, quindi niente da dire.
ero solo curioso di capire che tipo di query fosse.

più che altro mi era sorto il dubbio, se magari ICC potessi favorire certe operazioni e penalizzarne altre, ma con una query di questo tipo penso sia difficile trarre qualche conclusione utile
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Mon Sep 18, 2006 9:23 am    Post subject: Reply with quote

Beh che icc sia più veloce di gcc é cosa nota.

Sul singolo processore la differenza evidenziata dai test é nell'ordine del 25% e anche questo é più o meno in linea (io ricordavo che si parlava di un 20% circa).
Mettere due processori quando la query viene comunque eseguita da un unico processo non dovrebbe essere particolarmente significativo (infatti i tempi sono vicinissimi)... x-dd, riesci a provare con due o più query complesse (ma differenti, per evitare eventuali meccanismi di caching di mysql)?

Riguardo icc, in questo thread ci sono un pò di informazioni e link.
_________________
Ciao da me!
Back to top
View user's profile Send private message
x-dd
n00b
n00b


Joined: 19 Aug 2005
Posts: 68

PostPosted: Mon Sep 18, 2006 11:23 am    Post subject: Reply with quote

Devo imparare a fare le query da riga di comando altrimenti con phpmyadmin temo di falsare i risultati, ora sto provando con altri parametri passati al compilatore, credo che si possa migliorare ulteriormente.
Saluti

Marco
_________________
Odio gli arroganti.
Moderare un forum non ha senso, le persone adulte sanno governarsi da sole.
Back to top
View user's profile Send private message
.:chrome:.
Advocate
Advocate


Joined: 19 Feb 2005
Posts: 4588
Location: Brescia, Italy

PostPosted: Mon Sep 18, 2006 3:01 pm    Post subject: Reply with quote

x-dd wrote:
Devo imparare a fare le query da riga di comando altrimenti con phpmyadmin temo di falsare i risultati, ora sto provando con altri parametri passati al compilatore, credo che si possa migliorare ulteriormente.

ma no. secondo me falsa di più la query a linea di comando.
in consolle hai lo scroll dell'output che carica moltissimo il processore e porta via un sacco di tempo
ovviamente phpMyAdmin falsa un pochino i tempi, ma secondo me sempre meno della consolle
Back to top
View user's profile Send private message
x-dd
n00b
n00b


Joined: 19 Aug 2005
Posts: 68

PostPosted: Mon Sep 18, 2006 5:30 pm    Post subject: Reply with quote

Mi dispiace ma ho chiesto alle persone che usano questo software e l'unica query veramente impegnativa è quella che ho postato io.
_________________
Odio gli arroganti.
Moderare un forum non ha senso, le persone adulte sanno governarsi da sole.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum