confronto performance

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.
Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

confronto performance

Messaggio da ZeroUno »

Ho un pc e un portatile su entrambi ho lanciato un programma, stessa versione per entrambi. Questo programma è in php e deve popolare un database mysql abbastanza pesantemente. Le tabelle sono ben indicizzate, credo, ma questo è relativo perchè le stesse tabelle con gli stessi indici è su entrambe le macchine.

Il pc è un Intel(R) Pentium(R) 4 CPU 3.20GHz (singolo core), 1G di ram, 80 G di disco sata con slackware 13.37 32bit
Il portatile è un Intel(R) Core(TM)2 Duo CPU T5550 @ 1.83GHz (dual core), 4G di ram, 250 G di disco sata con slackware current 64bit

E' normale secondo voi che il programma è più veloce sul pc piuttosto che sul portatile?


Non so bene le date dei due sistemi, ma considera che il primo è un "windows xp inside", il portatile è un "vista inside"
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
slux
Linux 3.x
Linux 3.x
Messaggi: 789
Iscritto il: dom 20 mar 2005, 0:00
Nome Cognome: Andrea Amerini
Slackware: 14.1 x86
Kernel: 3.12.0-smp
Desktop: xfce 4.10
Località: Prato
Contatta:

Re: confronto performance

Messaggio da slux »

Credo che il fattore disco + filesystem siano cruciali in questo caso.Stai facendo delle scritture e se la coda del disco non è veloce abbastanza a "digerire" i tuoi dati,la macchina si deve fermare ed attendere.Il disco di un portatile generalmente ha un troughput di 50-60 Mb/s quando va bene.Un disco da 3,5 ,anche se vecchiotto come quello che hai,dovebbe fare qualcosa in più.La velocità di rotazione dei piattelli è diversa,5400 per un notebook e 7200 per un fisso.I tempi di seek sono nettamente a favore di quest'ultimo.Inoltre il filesystem incide molto.Per esempio ext4 ha ancora qualche problemino con i database,e poi ci possono essere sempre bug nascosti dietro l'angolo.Stai utilizzando 2 versioni di Slack diverse...Insomma di variabili da considerare ce ne sono.

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: confronto performance

Messaggio da conraid »

non dovrebbe, a meno che non sia una cosa dove c'entrano accessi al disco, etc... come dice slux, io ho due pc simili, un p4 a 3ghz con 1gb di ram ed un notebook coredue a 1.8ghz con 2gb, il secondo è notevolmente più veloce.

Offtopic: Con il p4 a volte con questi siti tutto javascript di adesso ho anche problemi con i browser, dopo un po' devo chiudere tutto, chiudere kde e riavviare l'ambiente grafico, altrimenti il pc diventa inutilizzato. Tempo fa qui di discuteva di come per le persone "normali" un p4 sia abbondante, secondo me è vero il contrario visto le nuove tendenze. Chi usa il pc in un certo modo è sempre più che valido, se apri firefox o chrome, e vai in qualche social network, in siti con flash, etc... addio :-(

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: confronto performance

Messaggio da targzeta »

Anche io come Corrado ho due PC simili e il mio portatile è notevolmente più potente. Spesso mi compilo i programmi da me e quando compilo le wxGTK, ad esempio, non c'è paragone. Però considera che il mio notebook ha un disco che gira a 7200.

Emanuele

Offtopic: Corrado, prova l'estensione noscript di firefox. I siti con javascript e flash video li vedi in maniera molto più fluida, tutto viene bloccato!!!
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: confronto performance

Messaggio da conraid »

Offtopic: la uso da "sempre" quell'estensione, ma se blocchi i javascript con facebook, google+, etc... allora non li usi :-)

ilmich
Master
Master
Messaggi: 1646
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: confronto performance

Messaggio da ilmich »

Non vorrei dire una castroneria, ma mi sa tanto che ogni singolo script php usa un solo processore.
Stesso discorso per mysql (non ci metto la mano sul fuoco, ma conoscendo il modello di molti server in giro penso sia molto probabile).
Infatti di solito le connessioni sono gestite in multithreading, ma la singola connessione(quindi comunque l'elaborazione) e' demandata ad un solo core.
Quindi nel tuo caso sarebbe anormale il contrario.

La compilazione e' un altro discorso.. perche' li' con -j3 per esempio lanci 3 thread in parallelo e quindi sfrutti tutti i core che hai a disposizione (se come me hai un trial core per esempio)
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: confronto performance

Messaggio da ZeroUno »

Indubbiamente uso un solo core per mysql, ma tale core non è appesantito dal resto del sistema. E poi dual core non significa doppio processore. Per quel che ne so io, se hai due processori e una sola connessione sfrutti un processore e basta; se hai un dual core e una sola connessione sfrutti un core e basta, ma il processore lo sfrutti comunque tutto.

Okkio che make -j3 se devi compilare un solo file non ti giova alle performance


Come si fa a scoprire a quanto gira un disco?

Ho provato con hdparm ma non me lo dice.

Comunque la misurazione dei tempi è "empirica", nel senso che non c'è niente (per ora) che mi mostra il tempo dell'operazione, ma c'è un contatore che mi mostra lo stato di avanzamento. Da quello vedo, ad occhio, i tempi. Ad occhio nel senso che sul pc non facevo quasi in tempo a vedere i numeri scorrere (un secondo per 1000 numeri) mentre sul portatile riuscivo a vederli (2-3 secondi forse). A breve inserirò una riga che mi mostra anche i tempi.
Il confronto completo però non è ben fattibile perchè il programma fa diverse operazioni di diversa natura
1) scarica un file text/plain (minimo pochi KB, max 1 MB)
2) elabora sequenzialmente e metti nel db
3) scarica un'altro file (text/bzip2) di dimensione proporzionale al primo che, decompresso, è c.a. 60 volte il primo
4) dezippa il secondo file
5) inserisci il secondo nel db
6) elimina i file
Il tutto per un centinaio di volte.

Per eliminare in parte l'I/O del disco ho appena messo questi file in tmpfs.

comunque non posso più fare i confronti ora perchè sul portatile, me lo posso permettere, ho messo anche mysql in tmpfs.
i/o wait=0%
in fase di decompressione php=99% cpu
in fase di insert mysql=80%

A fine elaborazione ho 1G di database.

Sul pc andrei a finire in swap :-(
in fase di insert mysql prende al massimo 40% cpu mentre l'I/O wait arriva anche a 70%... si, il disco conta parecchio :-D
qundo avrò messo i tempi farò il confronto almeno dei tempi di decompressione (forse però per pura misurazione dei tempi posso limitarmi ad una decina di file anzichè 100 e mettere anche sul pc mysql in tmpfs, ma solo dopo che avrò implementato il conteggio dei tempi)
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

ilmich
Master
Master
Messaggi: 1646
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: confronto performance

Messaggio da ilmich »

ZeroUno ha scritto:Indubbiamente uso un solo core per mysql, ma tale core non è appesantito dal resto del sistema. E poi dual core non significa doppio processore. Per quel che ne so io, se hai due processori e una sola connessione sfrutti un processore e basta; se hai un dual core e una sola connessione sfrutti un core e basta, ma il processore lo sfrutti comunque tutto.
appunto.. quindi chi e' piu' veloce.. un singolo core da 3.2ghz?
oppure uno da 1.8ghz? :)

comunque le variabili sono davvero tante... e sicuramente i test di performance vanno ripetuti 'maniacalmente' piu' e piu' volte.
Buon lavoro :D

p.s: make -j3 non giova tantissimo pure se hai un singolo processore(anzi a me spesso rallenta)
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: confronto performance

Messaggio da ZeroUno »

miklos ha scritto:appunto.. quindi chi e' piu' veloce.. un singolo core da 3.2ghz?
oppure uno da 1.8ghz? :)
mm, non saprei. Dipende da come viene gestito internalmente. Considera pure che il primo è a 32bit e il secondo a 64bit
comunque le variabili sono davvero tante... e sicuramente i test di performance vanno ripetuti 'maniacalmente' piu' e piu' volte.
si, ma difficile sarà anche elaborare le statistiche e decidere cosa eliminare da questi. Per esempio devo eliminare i tempi di download del file, che non fanno testo. Inoltre c'è il tipo di ottimizzazione del codice (all'inizio per il del secondo file facevo una insert per riga.. era lentissimo, poi ho ottimizzato con le insert multiple)
p.s: make -j3 non giova tantissimo pure se hai un singolo processore(anzi a me spesso rallenta)
make -j2 è un compromesso. se hai un solo processore giova e non appesantisce troppo. L'ottimale dovrebbe essere:
make -j${numerocore+1}

Matteo
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

ilmich
Master
Master
Messaggi: 1646
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: confronto performance

Messaggio da ilmich »

ZeroUno ha scritto:mm, non saprei. Dipende da come viene gestito internalmente. Considera pure che il primo è a 32bit e il secondo a 64bit
infatti come vedi apparentemente e' piu' veloce il primo, e ci sono dei casi (ora non mi ricordo dove l'ho letto) dove il 64bit e' equivalente se non persino meno performante(col php per esempio.. mi sa che gli interi sono ancora a 32bit quindi non hai nessun guadagno ad usare il 64bit)

comunque alla fine della fiera credo che tu stia andando nella giusta direzione, il resto dei discorsi sono un po "filosofici" nel senso che come vedi non e' troppo indicato fare dei test di performance con due macchine cosi' diverse.
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: confronto performance

Messaggio da ZeroUno »

Ecco i test di performance:

tenendo entrambi i db in ram, i file temporanei in ram.
lanciando il programma con il primo file di 500K

lanciando due istanze in parallelo (chiaramente su file diversi, ma entrambi di 500K)

nel pc le due hanno terminato contemporaneamente in 2'00"

stesse condizioni nel portatile, le due istanze hanno terminato una in 1'16" e l'altra in 1'00"

Decisamente il doppio core si fa sentire... quando viene usato (è bello vedere mysql che usa il 150% della cpu).

ora farò il test rimettendo il db su disco per vedere quanto incide l'I/O



edit: la dimensione finale del database è di 152M
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: confronto performance

Messaggio da ZeroUno »

Diciamo che l'I/O si fa sentire quando rimetto il db su disco.

Stesse condizioni di cui sopra, ma db su disco:

le due istanze lanciate in parallelo hanno impiegato una 2'54" e l'altra 3'05"

sul portatile le hanno impiegato 2'38" l'una e 2'43" l'altra


Il doppio core ha sortito un basso effetto.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: confronto performance

Messaggio da ZeroUno »

Nota: i tempi di cui sopra includono anche il download dei file e la decompressione.
sono misurati con il comando 'time'

con questo comando si nota perfettamente che i 64bit sortiscono il loro effetto.
Il comando time da un dato utile, e cioè il tempo di esecuzione USER, cioè non il totale ma quanto si è preso il solo processo php, quindi esclude i tempi di download e il tempo usato da mysql per inserire i dati nel db, rimanendo i dati della pura elaborazione (decompressione inclusa).
Nel pc questo tempo è fisso di 22 sec in tutte le condizioni (db su disco o su ram, lancio di istanze in parallelo o meno), indipendentemente dal tempo totale impiegato per completare il tutto.
Nel portatile questo tempo è fissato a 17 secondi in tutte le condizioni (la singola elaborazione non è suddivisa su più core).
Dal momento che è elaborazione pura e che i GHz del pc sono quasi il doppio di quelli del portatile, l'unico motivo per cui quest'ultimo è stato più rapido risiede non sul numero di core ma sui 64bit.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

ilmich
Master
Master
Messaggi: 1646
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: confronto performance

Messaggio da ilmich »

la domanda sorge spontanea(e sicuramente mi sono perso qualche pezzo io).. ma allora il primo test come lo hai fatto?!?!?!
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: confronto performance

Messaggio da ZeroUno »

Ti riferisci al primissimo, quello per il quale ho aperto il topic?
ZeroUno ha scritto:Comunque la misurazione dei tempi è "empirica", nel senso che non c'è niente (per ora) che mi mostra il tempo dell'operazione, ma c'è un contatore che mi mostra lo stato di avanzamento. Da quello vedo, ad occhio, i tempi. Ad occhio nel senso che sul pc non facevo quasi in tempo a vedere i numeri scorrere (un secondo per 1000 numeri) mentre sul portatile riuscivo a vederli (2-3 secondi forse).

Il test effettuato con misurazione come si deve dei tempi, ripetuto nelle stesse identiche condizioni, non l'ho ripetuto.
Quelli che ho misurato hanno tutti i file temporanei in tmpfs, alcuni test hanno il db in tmpfs, alcuni test sono lanciati in parallelo, e TUTTI hanno un database pulito (rm -r /var/lib/mysql prima di ogni lancio)
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Rispondi