# Strana latenza nel sistema da un po' di tempo a questa parte

## dark_knight

Ciao a tutti

Recentemente (da circa un mesetto) ho cominciato a notare degli strani segni di latenza sul mio portatile. I sintomi di questa latenza sono i seguenti:

* Quando comincio a compilare qualcosa, il sistema ne risente pesantemente ed ogni altra operazione viene rallentata considerevolmente (nonostante io abbia impostato la PORTAGE_NICENESS da sempre): prima, invece, l'overhead della compilazione sulle prestazioni globali era molto meno pesante.

* Inoltre, i tempi di compilazione di qualsiasi pacchetto (ed anche del kernel, che compilo con niceness 0) sono quasi raddoppiati: anche lasciando la macchina soltanto a compilare, l'allungamento dei tempi di compilazione si fa notare.

* La latenza si fa sentire non soltanto quando compilo, ma anche quando eseguo anche altri programmi "pesanti". Ad esempio, se sto usando Firefox, e passo da un desktop virtuale su quello in cui FF è in esecuzione, il sistema ci mette qualche decimo di secondo in più a ridisegnarne l'interfaccia. Oppure, gli FPS di Enemy Territory (tipico benchmark  :Razz: ) sono drasticamente scesi da "giocabile" a "scatta".

* Tutti questi problemi non si verificano da subito, ma dopo qualche ora che il computer è acceso.

Una parziale soluzione che ho trovato al problema, molto "alla Windows", è quella di riavviare... <_< Riavviando, infatti, i sintomi diminuiscono, ma non scompaiono del tutto. Inutile dire che qualche mese fa ho anche raggiunto uptime di settimane, quindi non credo sia un problema di configurazione  :Smile: 

A questo punto ho cercato di trovare una soluzione:

* sono tornato ad usare un kernel "vecchio" (2.6.22), ma il problema persiste. Pertanto ho provato con l'ultimo vanilla (2.6.24-rc8).

* leggendo in giro sul forum dei problemi simili con i driver della scheda video (Intel) ho mascherato completamente la versione 2 e sono rimasto con la 1.7.4 (che mi dà anche meno glitch in altre cose). Ho pensato che sia un problema di driver perché quando lavoro su console il problema è meno marcato. Esempio, compilando pinentry (aggiornamento recente, già in ccache), ma non so quanto sia valido questo test:

```
Compilazione su terminale:

     Thu Jan 24 12:34:14 2008 >>> app-crypt/pinentry-0.7.4-r1

       merge time: 1 minute and 7 seconds.

Compilazione su console, restando sulla console:

     Thu Jan 24 12:36:08 2008 >>> app-crypt/pinentry-0.7.4-r1

       merge time: 42 seconds.

Compilazione su console, utilizzando X nel frattempo:

     Thu Jan 24 12:37:20 2008 >>> app-crypt/pinentry-0.7.4-r1

       merge time: 39 seconds.

Compilazione in screen:

     Thu Jan 24 12:38:36 2008 >>> app-crypt/pinentry-0.7.4-r1

       merge time: 46 seconds.

Compilazione nuovamente su terminale:

     Thu Jan 24 12:41:23 2008 >>> app-crypt/pinentry-0.7.4-r1

       merge time: 54 seconds.
```

* ho cercato di capire quale azione io potrei aver eseguito, e mi sono ricordato che forse (ma non sono sicuro) i problemi hanno cominciato a verificarsi dopo che ho smontato il portatile per una pulizia di routine... ma avendolo rifatto un'altra volta qualche settimana fa escludo di aver collegato male qualcosa  :Wink: .

* infine, ho cercato di far funzionare latencytop, ma non ci sono riuscito (ma questo è l'argomento di un altro topic  :Wink:  ).

Avete qualche idea sul tipo di test che potrei eseguire?

Grazie a tutti

----------

## Peach

non l'ho mai usato, ma ho trovato recentemente in portage questo tool:

```
[N]   >> sys-process/latencytop (~0.1): tool for identifying where in the system latency is happening
```

vediamo se funziona?  :Wink: 

EDIT: non avevo visto l'altro post... pardonne moi.

tra l'altro non conosco altri tool del genere.

----------

## dark_knight

Dopo aver risolto il problema con latencytop, mi sono messo ad analizzare di nuovo la situazione. Durante una compilazione tipica, latencytop mi mostra output simili a questo:

```
Cause                                               Maximum          Average

Deleting an inode                                 3477.3 msec        260.1 msec

Writing buffer to disk (synchronous)              719.3 msec         87.3 msec

EXT3: Waiting for journal access                  620.8 msec        620.8 msec

EXT3 Creating a file                              415.6 msec        220.8 msec

EXT3: Looking for file                            411.2 msec        411.2 msec

Creating block layer request                      204.7 msec        185.5 msec

Reading directory content                         123.8 msec        123.8 msec

Writing a page to disk                             78.6 msec         27.4 msec

Writing data to TTY                                29.5 msec         29.5 msec

```

Il problema di tutto questo sembra essere l'HD... può essere un problema hardware o magari c'è qualche configurazione software che può causare problemi del genere?  :Sad: 

Grazie ciao!

----------

## jordan83

 *dark_knight wrote:*   

> 
> 
> Il problema di tutto questo sembra essere l'HD... può essere un problema hardware o magari c'è qualche configurazione software che può causare problemi del genere? 
> 
> Grazie ciao!

 

Se il tuo disco supporta S.M.A.R.T. potresti fare un controllo sulla sua salute con sys-apps/smartmontools  :Wink: 

----------

## dark_knight

Ho appena finito di eseguire tutti i test SMART: sono tutti passati con successo.

Anche l'elenco dei parametri del disco disponibile con -A mostra che tutti i valori sono abbondantemente sopra gli indici di failure.

----------

## lavish

posta un 

```
df -h
```

----------

## dark_knight

```
dark@darkplace ~ $ df -h

Filesystem         Dimens. Usati Disp. Uso% Montato su

/dev/hda2              28G   22G  5,4G  81% /

udev                   10M  228K  9,8M   3% /dev

/dev/hda5              16G   14G  1,9G  89% /mnt/stuff

shm                   490M     0  490M   0% /dev/shm
```

Considerando che in passato (1 anno fa circa) utilizzavo costantemente il computer con <1GB libero sulla partizione di root, direi che di spazio ne ho in abbondanza  :Wink: .

Grazie per l'interessamento

----------

## lavish

Gli fs "rallentano" enormemente quando sono quasi-pieni. L'ideale sarebbe avere sempre almeno la meta' dello spazio sulla partizione libero.

Prova a fare un bel po' di pulizia  :Wink: 

----------

## xveilsidex

 *lavish wrote:*   

> Gli fs "rallentano" enormemente quando sono quasi-pieni. L'ideale sarebbe avere sempre almeno la meta' dello spazio sulla partizione libero.
> 
> Prova a fare un bel po' di pulizia 

 

bisogna anche vedere a che livello di frammentazione è arrivato l'fs!   :Wink: 

----------

## !equilibrium

questi problemi in genere sono dovuti all'assenza di swap, e quando saturi tutta la ram (parli di uptime di settimane, quindi è facile che la dirty cache della VM sia eccessiva) il kernel fa i salti mortali per cercare di spostare le pagine della VM; controlla che lo swap venga inizializzato ed usato correttamente da baselayout.

----------

## dark_knight

Grazie dei suggerimenti, cercherò di fare con ordine...

 *lavish wrote:*   

> Gli fs "rallentano" enormemente quando sono quasi-pieni. L'ideale sarebbe avere sempre almeno la meta' dello spazio sulla partizione libero.

 

Metà? Mi sembra un po' eccessivo  :Confused:  Considerando che, come ho detto prima, ho sempre vissuto (con pochi problemi) con l'HD quasi pieno... In ogni caso, proverò a liberare un po' di spazio...

 *xveilsidex wrote:*   

> bisogna anche vedere a che livello di frammentazione è arrivato l'fs!  

 

Evviva l'ext3  :Razz:  A proposito di questo, qualche giorno fa ho controllato la consistenza del fs di root e tutto è filato liscio...

 *!equilibrium wrote:*   

> questo genere di problemi in genere sono dovuti all'assenza di swap

 

Ottima pensata...

```
dark@darkplace ~ $ cat /proc/swaps 

Filename            Type      Size   Used   Priority

/dev/hda6                               partition   522072   0   -1
```

Ma mi sembra tutto a posto ... (computer appena riavviato, ecco perché used = 0  :Wink:  )

----------

## lavish

 *dark_knight wrote:*   

>  *lavish wrote:*   Gli fs "rallentano" enormemente quando sono quasi-pieni. L'ideale sarebbe avere sempre almeno la meta' dello spazio sulla partizione libero. 
> 
> Metà? Mi sembra un po' eccessivo 

 

No non e' eccessivo  :Wink: 

----------

## lordalbert

scusate se mi intrometto... ma anche io noto una leggera latenza... soprattutto quando magari scorro una pagina del browser....

L'unica modifica rilevante, è stata ricompilare il kernel patchandolo per far funzionare latencytop e sostituire la ventola della cpu... ma non mi sembra una operazione che possa turbare il sistema... eheh  :Very Happy:   (anche ora, quando scrivo... a volte le parole non compaiono subito, ma un secondo dopo, a blocchi)

Provo a postare l'output di LatencyTop...

```

Cause                                               Maximum          Average

Userspace lock contention                         18446744072676504.0 msec        39262927280.5 msec

Opening file                                      391.3 msec        196.6 msec

EXT3 Creating a file                              246.6 msec         10.6 msec

Writing a page to disk                            222.1 msec          5.4 msec

EXT3: Looking for file                            202.6 msec         22.7 msec

fsync() on a file                                 190.9 msec         26.0 msec

Unlinking file                                    157.5 msec        157.5 msec

Page fault                                        141.9 msec          5.5 msec

Walking directory tree                            134.0 msec          8.4 msec

```

mmm bah...  un paio d'ore fa i valori erano decisamente più bassi, al di sotto di 100...  

ecco, ora che ho finito di scrivere, ho ricontrollato... e sono valori decisamente diversi...

```

Cause                                               Maximum          Average

Page fault                                         27.5 msec          7.0 msec

Writing a page to disk                             24.3 msec         13.9 msec

Pagecache sync readahead                           20.4 msec         16.8 msec

Reading EXT3 inode                                 14.6 msec         14.6 msec

Walking directory tree                             10.9 msec          5.9 msec

Reading EXT3 indirect blocks                       10.8 msec         10.8 msec

do_select core_sys_select sys_select sysenter_past  5.0 msec          0.9 msec

Userspace lock contention                           5.0 msec          2.1 msec

Waiting for event (poll)                            4.9 msec          1.3 msec

```

Ma non ho cambiato nulla...

----------

## mrfree

Anche io ho notato insoliti rallentamenti sotto carico da un po' di tempo a questa parte. Il tutto è iniziato dopo l'upgrade a 2.6.23 e qualche aggiornamento di xorg puoi dare uno sguardo a questo mio post sul forum internazionale non siamo gli unici pare. Più che altro nel mio caso sembra un rallentamento di xorg (lentezza nel minimizzare/ripristinare le finestre, etc) che sparisce alle sparisce il carico della cpu

----------

## lordalbert

mmm si, forse anche a me coincide con l'upgrade al kernel... credevo fosse colpa di kde 3.5.8, perchè col 3.5.7 non avevo questi problemi... però in effetti se non ricordo male, in quel periodo ho anche aggiornato il kernel... Poi ora per provare latencytop ho messo il 2.6.24... ed è aumentata la latenza (sotto carico, avevo boinc in funzione come sempre....) ora l'ho spento e sembra tutto nella norma....

EDIT:

Quindi secondo te è meglio downgradare il kernel o i driver i810 ?

 *Quote:*   

> 
> 
>  I know something is wrong when Debian Testing was faster...
> 
> 

 

Bah.... quindi è un problema esclusivo di gentoo?  :Sad: 

----------

## lordalbert

Mentre guardo un video l'audio "salta" ad intervalli regolari, ed ecco l'output di latencytop, assai stupefacente  :Very Happy: 

```

Cause                                               Maximum          Average

Waiting for event (poll)                          18446744073612156.0 msec          0.1 msec

Reading keyboard/mouse input                      18446744073507348.0 msec        4261.7 msec

Waiting for TTY input                             18446744073335672.0 msec        6148914690705949.0 msec

do_select core_sys_select sys_select sysenter_past18446744073281492.0 msec          2.5 msec

Waiting for a process to die                      18446744073123128.0 msec        32940614414321.9 msec

Userspace lock contention                         18446744072307288.0 msec          0.1 msec

Reading from a pipe                               18446744071858208.0 msec        39500522637812.5 msec

Opening file                                      543.1 msec        118.5 msec

Writing buffer to disk (synchronous)              495.1 msec          9.6 msec

```

----------

## table

Anche a me succede che il sistema si pianti per qualche secondo, ma non solo mentre compilo, a volte anche solo se ho aperto firefox o opera.

Sto pensando di formattare tutto e reinstallare tutto d'accapo.

Con firefox ad esempio,apro una tab nuova e si pianta x 5 secondi o più, boh   :Shocked: 

----------

## die-hard

ragazzi mi date na dritta su come patchare il kernel per usare latencytop? Ho provato ma non riesco, ho il kernel 2.6.22-r9

----------

## lordalbert

 *die-hard wrote:*   

> ragazzi mi date na dritta su come patchare il kernel per usare latencytop? Ho provato ma non riesco, ho il kernel 2.6.22-r9

 

Come c'è scritto qua https://forums.gentoo.org/viewtopic-p-4835423.html#4835423 sembra sia supportato solo il 2.6.24 (devi smascherarlo da portage).

Poi dopo vai nella dir dei sorgenti kernel, e dai

```
cat /path/della/patch | patch -p1
```

Alla fine lo ricompili abilitando Latency nella sezione Kernel Hacking..

Ma... hai problemi di latenza anche tu? E usi il kernel 2.6.22 ? :S

----------

## die-hard

 *lordalbert wrote:*   

> 
> 
> Ma... hai problemi di latenza anche tu? E usi il kernel 2.6.22 ? :S

 

Bhè a dir la verità il sistema non è più reattivo come una volta, forse sarà compiz o awn che mi da rogne, ma volevo verificare

----------

## xveilsidex

 *die-hard wrote:*   

>  *lordalbert wrote:*   
> 
> Ma... hai problemi di latenza anche tu? E usi il kernel 2.6.22 ? :S 
> 
> Bhè a dir la verità il sistema non è più reattivo come una volta, forse sarà compiz o awn che mi da rogne, ma volevo verificare

 

compiz a mio avviso è una zavorra che si può benissimo far a meno!

----------

## lordalbert

ho fatto un paio di prove e sembra (è ancora un po' presto per dirlo, vorrei provarlo ancora per 2-3 giorni) però il vanilla-sources sembra non diano problemi, che invece danno i gentoo-sources.

----------

## Scen

 *lordalbert wrote:*   

> ho fatto un paio di prove e sembra (è ancora un po' presto per dirlo, vorrei provarlo ancora per 2-3 giorni) però il vanilla-sources sembra non diano problemi, che invece danno i gentoo-sources.

 

Essendo gentoo-sources un kernel "modificato" rispetto al vanilla, non è da escludere che qualche patch dia delle noie.

Verifica qui che patch sono applicate, casomai potresti fare degli esperimenti e applicare una ad una le patch, e vedere quale di queste ti dà problemi (esperimento da fare in una grigia giornata piovosa  :Rolling Eyes:  )

----------

## lordalbert

 *Scen wrote:*   

>  *lordalbert wrote:*   ho fatto un paio di prove e sembra (è ancora un po' presto per dirlo, vorrei provarlo ancora per 2-3 giorni) però il vanilla-sources sembra non diano problemi, che invece danno i gentoo-sources. 
> 
> Essendo gentoo-sources un kernel "modificato" rispetto al vanilla, non è da escludere che qualche patch dia delle noie.
> 
> Verifica qui che patch sono applicate, casomai potresti fare degli esperimenti e applicare una ad una le patch, e vedere quale di queste ti dà problemi (esperimento da fare in una grigia giornata piovosa  )

 

eheh ok, appena ho un po' di tempo provo a guardare quale patch da problemi...

----------

## .:deadhead:.

puoi anche guardare sysstat http://pagesperso-orange.fr/sebastien.godard/

----------

## lordalbert

bah.. ci sono troppe cose strane...

allora, i gentoo-sources hanno latenza quando utilizzo boinc (la cui priorità è bassa)....

questo problema non si verifica (parlo della mia esperienza, magari capita solo a me...) con i vanilla-sources... però con quest'ultimo kernel quando uso emerge il sistema diventa inusabile, non riesco neanche a spostare il mouse... si blocca tutto... (e il processore lavora al max per il 50%, con 500MB di swap usata)

----------

## richard77

 *lordalbert wrote:*   

> bah.. ci sono troppe cose strane...
> 
> allora, i gentoo-sources hanno latenza quando utilizzo boinc (la cui priorità è bassa)....
> 
> questo problema non si verifica (parlo della mia esperienza, magari capita solo a me...) con i vanilla-sources... però con quest'ultimo kernel quando uso emerge il sistema diventa inusabile, non riesco neanche a spostare il mouse... si blocca tutto... (e il processore lavora al max per il 50%, con 500MB di swap usata)

 

Con lo stesso config? 

Cosa hai impostato su CONFIG_PREEMPT? (prova a postare il risultato di zcat < /proc/config.gz | grep PREEMPT )

----------

## lordalbert

si, con lo stesso config

```
 $ zcat < /proc/config.gz | grep PREEMPT

# CONFIG_PREEMPT_NONE is not set

CONFIG_PREEMPT_VOLUNTARY=y

# CONFIG_PREEMPT is not set

CONFIG_PREEMPT_BKL=y

```

----------

## riverdragon

Potresti provare ad impostare il sistema a "Low Latency desktop", sotto a Processor...->Preemption model...

----------

## lordalbert

 *riverdragon wrote:*   

> Potresti provare ad impostare il sistema a "Low Latency desktop", sotto a Processor...->Preemption model...

 

immagino che oltre ai pro ci siano dei contro  :Smile:  ma... quali sarebbero?

----------

## !equilibrium

 *lordalbert wrote:*   

> questo problema non si verifica (parlo della mia esperienza, magari capita solo a me...) con i vanilla-sources... però con quest'ultimo kernel quando uso emerge il sistema diventa inusabile, non riesco neanche a spostare il mouse... si blocca tutto... (e il processore lavora al max per il 50%, con 500MB di swap usata)

 

in MAKEOPTS che valori hai messo per "-j" ?

----------

## lordalbert

MAKEOPTS="-j3"

----------

## djinnZ

 *lordalbert wrote:*   

>  *riverdragon wrote:*   impostare il sistema a "Low Latency desktop" immagino che oltre ai pro ci siano dei contro

 degrado di prestazioni. la schedulazione è più pesante, il sistema privilegia l'interfaccia utente.

Nel senso che se l'emerge di firefox ti porta via un'ora o un'ora e mezza sotto forte carico, su un sistema normale, su un sistema low latency (impostando anche il timer a 1000 invece che a 100, ovviamente) ci mette un'ora e cinque minuti o tre ore se pretendi anche di usare il tuo sparatutto preferito nel frattempo. Non è una misura precisa, ovviamente, ed è esagerata.

Se poi metti il sistema solo a compilare senza fare altro dovresti perdere almeno tre secondi.

Già che mi trovo "Tickless system" dovrebbe comportare una lieve latenza a lume di naso. Qualcuno ha dati più precisi?

----------

## Peach

 *djinnZ wrote:*   

> Già che mi trovo "Tickless system" dovrebbe comportare una lieve latenza a lume di naso. Qualcuno ha dati più precisi?

 

no però sarebbe sicuramente interessante a livello generico sapere come funzionano le combinazioni Tickless System, Low-latency e Timer Freq

----------

## djinnZ

 :Shocked:  ed io cosa ho detto?

A naso sempre, dico al kernel di schedulare i processi privilegiando le periferiche, gli dico di controllarle continuamente ma gli dico anche di controllarle solo se non ha altro da fare; per me sarebbe contraddittorio.

----------

## mrfree

Porcaccia la miseriaccia!! Ho scoperto di aver abilitato in tempi non sospetti CONFIG_FAIR_GROUP_SCHED e relativo FAIR_USER_SCHED probabilmente durante un make oldconfig  *Quote:*   

> This option will choose userid as the basis for grouping tasks, thus providing equal CPU bandwidth to each user.

  In questo modo quindi stavo dividendo la CPU con una decina di "utenti" sul mio portatile considerando root per emerge, il mio utente desktop e una manciata di demoni con il loro uid in una maniera assolutamente non consona per una macchina single-human-user  :Smile: 

Disabilitando CONFIG_FAIR_GROUP_SCHED i rallentamenti sono spariti ed ascoltare la dolce melodia della ventolina della CPU è di nuovo l'unico modo per capire che c'è una compilazione in corso  :Wink: 

----------

## djinnZ

per la serie meglio tardi che mai...  :Twisted Evil: 

----------

