programma lento su freebsd

Luigi Rizzo rizzo a icir.org
Gio 4 Gen 2007 18:04:30 CET


On Thu, Jan 04, 2007 at 05:31:59PM +0100, davide cittaro wrote:
> Ciao a tutti e scusate fin d'ora per le "ingenuita'" che seguiranno.
> Ho questo programma, hgTracks (che fa parte della suite UCSC Genome
> Browser), che mi sono compilato sotto freebsd (5.4) per girare su un
> nostro server che fa da mirror a quello californiano. Compila,
> funziona ed e' tutto bello.

ma per curiosita`, che fa questo programma, comunica con fuori ?
perche' dai dati che alleghi sembra che anche sotto linux passi
la maggioranza del tempo ad aspettare (solo 4% cpu usage) mentre
su FreeBSD si mangia il 60% della cpu...
non e` che il codice e` scritto male (es. si aspetta che la select()
funzioni come su linux, modificando il valore del timeout))
e quindi su freebsd finisce in qualche loop di attesa attiva o simili ?

ciao
luigi

> Purtroppo ci siamo accorti, soprattutto quando ci sono grosse moli di
> dati da analizzare, che va dannatamente lento. Ho pensato fosse a
> causa dell'hardware (singolo Xeon 2.4 e 4 Gb RAM) o del fatto che gira
> in una jail su una macchina con altre 4 jail mediamente cariche. Me lo
> sono installato sotto un piu' recente freebsd 6.1 su macchina
> pressoche' vuota ma non ho dei miglioramenti.
> Il sito originale fa girare tutto in linux allora mi sono messo tutto
> su una macchina linux e, accidenti, tutto va una scheggia. Per
> intenderci, 3 minuti contro 50...
> Da quasi profano di programmazione ho chiesto ad un collega scafato
> che mi ha consigliato di sostituire tutte le chiamate getc/putc con le
> versioni _unlocked, la cosa e' sicura dal momento che hgTracks non e'
> multithread.
> *Ovviamente* non ho avuto nessun miglioramento. In questo momento lo
> sto testando sotto OS X e mi pare proprio di stare in una situazione
> uguale (lento...).
> Ora, qualcuno ha qualche idea su come/cosa controllare (oltre ai getc
> e simili...) per sperare di migliorare le performance?
> Giusto per la cronaca questi sono i time sotto linux e freebsd:
> 
> Linux
>         Command being timed: "./hgTracks db=hg18 position=chr22"
>         User time (seconds): 4.89
>         System time (seconds): 1.54
>         Percent of CPU this job got: 4%
>         Elapsed (wall clock) time (h:mm:ss or m:ss): 2:13.23
>         Average shared text size (kbytes): 0
>         Average unshared data size (kbytes): 0
>         Average stack size (kbytes): 0
>         Average total size (kbytes): 0
>         Maximum resident set size (kbytes): 0
>         Average resident set size (kbytes): 0
>         Major (requiring I/O) page faults: 0
>         Minor (reclaiming a frame) page faults: 36704
>         Voluntary context switches: 44332
>         Involuntary context switches: 7
>         Swaps: 0
>         File system inputs: 0
>         File system outputs: 0
>         Socket messages sent: 0
>         Socket messages received: 0
>         Signals delivered: 0
>         Page size (bytes): 4096
>         Exit status: 0
> 
> FreeBSD
> 2923.84 real      1988.24 user         8.18 sys
>     157364  maximum resident set size
>       1279  average shared memory size
>      16163  average unshared data size
>        127  average unshared stack size
>      39606  page reclaims
>          0  page faults
>          0  swaps
>        362  block input operations
>          1  block output operations
>      40625  messages sent
>      47244  messages received
>          0  signals received
>      46067  voluntary context switches
>     265372  involuntary context switches
> 
> Non so se significhi qualcosa e se possa essere un buon punto di
> partenza, ma sotto FreeBSD c'e' un numero spaventosamente alto di
> icsw.
> Grazie a chi vorra' aiutare questo povero ricercatore un po' tapino.
> 
> d
> -- 
> Regole e consigli per l'uso della lista: http://www.gufi.org/GUFI/mailing_list


Maggiori informazioni sulla lista devel