View previous topic :: View next topic |
Author |
Message |
x-dd n00b
Joined: 19 Aug 2005 Posts: 68
|
Posted: Sun Sep 17, 2006 4:40 pm Post subject: mysql compilato con icc |
|
|
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 |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Sun Sep 17, 2006 5:16 pm Post subject: |
|
|
Ma non sarebbe meglio fare il test utilizzando le stesse CFLAGS? _________________ Running Fast! |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Sun Sep 17, 2006 6:03 pm Post subject: |
|
|
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 |
|
|
x-dd n00b
Joined: 19 Aug 2005 Posts: 68
|
Posted: Sun Sep 17, 2006 7:16 pm Post subject: |
|
|
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 |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Sun Sep 17, 2006 9:24 pm Post subject: |
|
|
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 |
|
|
x-dd n00b
Joined: 19 Aug 2005 Posts: 68
|
Posted: Mon Sep 18, 2006 7:00 am Post subject: |
|
|
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 |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Mon Sep 18, 2006 9:02 am Post subject: |
|
|
alla faccia della query
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 |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Mon Sep 18, 2006 9:23 am Post subject: |
|
|
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 |
|
|
x-dd n00b
Joined: 19 Aug 2005 Posts: 68
|
Posted: Mon Sep 18, 2006 11:23 am Post subject: |
|
|
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 |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Mon Sep 18, 2006 3:01 pm Post subject: |
|
|
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 |
|
|
x-dd n00b
Joined: 19 Aug 2005 Posts: 68
|
Posted: Mon Sep 18, 2006 5:30 pm Post subject: |
|
|
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 |
|
|
|