# Continui rallentamenti...

## ReDirEct__

Salve a tutti... è un pò di tempo a questa parte che durante l'accesso al disco (in generale quando il sistema swappa) gentoo rallenta di brutto: il mouse si muove a rallentatore, la dockbar lo stesso, le applicazioni rispondono dopo qualche secondo, se ascolto musica pulse comincia a dare i numeri e rythmnbox si ferma nella riproduzione e salta le tracce dandomi come errore pa_stream_qualcosa : connessione terminata... ho letto sul forum inglese di problemi con i processori amd64 (guarda caso io ho proprio quello) e di sistemi che non rispondono durante l'accesso al disco... la situazione sembra migliorata (pare strano) dopo che ho levato da mezzo l'autogrouping (anche se non ho mai capito se ha mai davvero funzionato dato che seguendo le istruzioni sul wiki ho avuto dei problemi che non sono riuscito a risolvere e ho lasciato perdere)... in ogni caso, quando la memoria arriva al 90% di utilizzo e il pc comincia ad accedere alla partizione di swap il pc diventa quasi inutilizzabile... pensavo che ormai questi problemi fossero stati risolti, ma a quanto pare non è così... e mi chiedevo se ci fosse qualcosa che si potesse fare per migliorare un pò le prestazioni (avevo pensato anche di abbandonare gentoo-sources e passare a ck-sources e su questo si accettano consigli)... vi posto emerge --info e la configurazione del kernel... spero che qualcuno possa darmi una man:

Emerge --info

.config

----------

## ChemMir

Quanta RAM hai? quando comincia lo swap è normale che rallenti tutto. Dovresti evitarlo assolutamente.

----------

## ReDirEct__

 *ChemMir wrote:*   

> Quanta RAM hai? quando comincia lo swap è normale che rallenti tutto. Dovresti evitarlo assolutamente.

  Ho 2 GB di Ram... ma vorrei almeno che pulseaudio non desse i numeri quando swappa...

edit: comunque il problema è circoscritto a pulseaudio... è lui in particolare che fa le bizze quando si accede al disco... ad esempio ho fatto una prova copiando un film sul disco dove ho i file musicali mentre li riproducevo su rhytmnbox e arrivato all'80% circa della copia la canzone si è fermata ed è uscito il solito errore: "pa_stream_writable_size() : connessione terminata"...

----------

## djinnZ

Ho dato solo uno sguardo ma inizia con il mettere a posto cose come memory compaction, compat vdso, numero cpu e bada che hai un bel pò di roba inutile configurata.

Non credo che ti serva fare debugging sul kernel e verifica la conf di pulseaudio e di alsa, in particolare hai lasciato il supporto di base modulare e la compatibilità oss attiva.

----------

## ReDirEct__

il numero di cpu intendi il numero massimo di cpu? se è quello l'ho appena aggiustato... per quanto riguarda il supporto di base modulare cosa intendi? oss è cmq disattivato... sono attivati solo "oss mixer api","oss pcm api" "oss sequancer api" solo perchè le info del kernel dicono che alcuni programmi utilizzano ancora queste api e quindi le ho lasciate attive...

----------

## djinnZ

Intendevo i vari numeri legati alle cpu numa noeds, max cpu, rcu fanout etc. E ripulire il kernel dalle varie opzioni di debug che non servono per pnp, kernel debugging etc.

Da uno sguardo veloce mi pare che hai ancora qualcosa da ripulire (per esempio i transport scsi li puoi disattivare solo aver disabilitato del tutto i corrispondenti driver, quindi devi tornare indietro mentre scorri i menu).

Il supporto pcmcia non so a cosa possa servirti (se proprio vuoi quella è una cosa da lasciare modulare, o il supporto stampante usb se sai che lo usi solo occasionalmente e via dicendo).

In generale si mette builtin tutto quello che è sottoposto ad uso continuo o che non si vuole possa andare in swap e modulare quello che si usa occasionalmente od è solo per eventuale necessità.

Disattivale pure le oss ma non disattivare il supporto legacy di alsa (quello invece dovrebbe servire ancora), piuttosto metti il sequencer ed il timer builtin e disattiva il supporto generic (l'ac 97 powersave potrebbe dar fastidio).

Ovviamente qualche applicazione, rimosso il supporto oss (e USE="-oss" ovviamente), che richiede di esser ricompilata dovrebbe esserci. Tra l'altro

 *euses -s oss wrote:*   

> media-sound/pulseaudio:oss - Enable OSS sink/source (output/input). Deprecated, upstream does not support this on systems where other sink/source systems are available (i.e.: Linux). The padsp wrapper is now always build if the system supports OSS at all.

 Cerca meglio la prossima volta.*

Una volta rifino ben bene il kernel potresti orientarti al caro buon vecchio verynice ed iniziare a vedere cosa combina pulse. Ma secondo me risolvi prima.

*in ragione dell'attuale depravazione ed involuzione della civiltà umana (beh non esageriamo... se gente come questa, o questa o questa è considerata umana siamo sempre stati senza speranza), primo indizio il prendersi e prender gli altri troppo sul serio, presupponendo sempre irragionevoli attacchi personali, decontestualizzando ed interpretando capziosamente ogni singola parola, mi vedo costretto a dichiarare preventivamente che tale espressione non intende rimarcare un eventuale, presunto, scarso impegno nella ricerca di soluzioni ma l'aver con ogni probabilità tentato vie (google in vece della verifica delle use flag) errate ottenendone informazioni fuorvianti. Ovviamente, in ragione della diffusa tendenza, sempre in ragione dell'involuzione di specie di cui sopra, a trovare valida una soluzione solo in quanto presentata in alone mistico di unica ed incontrovertibile verità negando la possibilità di qualsivoglia convergenza di fattori determinanti e la conseguente possibilità di soluzioni articolate su diversi elementi concorrenti, voglio sempre chiarire, che l'osservazione sulle "USE flag" non inficia quanto già asserito in relazione all'efficienza del kernel ed all'uso eccessivo dello swap.

E voglio ammettere che, in quanto essere umano, sebbene incline all'arroganza (peraltro umana anch'essa) del non riconoscermi la necessità di apporre il prefisso "sub" alla mia indicazione di specie, sono fallibile ed avevo riposto in un angolo remoto del mio cervello l'informazione sull'incompatibilità presunta di pulse con oss, verificata solo in occasione di una prima impostazione delle use flag.

Per concludere si potrebbe indurre una riflessione su come la pratica di attivare tutte le flag e le funzioni del kernel indiscriminatamente e non ridurre le dipendenze al minimo possa rivelarsi deprecabile in quanto foriera di incompatibilità come quella ivi riscontrata.  :Mr. Green: 

----------

## bandreabis

Ho sempre cercato di capire quali moduli potessero essere scaricati dal kernel per renderlo più snello.

Magari è la volta buona.

----------

## ReDirEct__

 *djinnZ wrote:*   

> *[corsivo] 

 

Pensavo che su questo ci fossimo già chiariti in un precedente post... non mi sono mai sentito attaccato da parte tua o da altre persone del forum, e se mi dicono di aver cercato nel posto sbagliato non ho mai avuto nulla da ridire dato che, come dici anche tu, siamo umani, tutti possono sbagliare e non possiamo sapere tutto di ogni cosa... si impara, si prende quello che c'è da imparare da queste cose e se lo si tiene a disposizione per riuscire a risolvere in futuro problemi simili... non parto mai sparato pensando che qualcuno mi accusi, anche perchè far trasparire i toni tramite la parola scritta e roba per pochi. Infatti non ho la tendenza a giustificarmi quando succedono queste cose, se uno non capisce non è colpa mia, tua o di pincopallino, e per questo non alimento discussioni a riguardo quando capita. Avere reazioni spropositate a frasi del tipo "cerca meglio" oppure "non prendere per oro colato quello che ti ho detto" (riassunto) significa non saper aver a che fare con le persone e non sapere come utilizzare il forum: l'unico motivo per cui rispondo a questo ot è il fatto che non c'è bisogno di sottolinearlo ogni volta  :Smile: . Sono consapevole sempre di quello che faccio anche quando do comandi a cazzo... e ti ripeto che non mi sono sentito attaccato ne nel post precedente ne in questo... se senti il bisogno di incazzarti perchè effettivamente ho fatto o detto qualche put***ata non farti problemi e dillo pure apertamente... io mi fido semplicemente delle persone che hanno più esperienza di me e che sappiano dirmi con criterio dove andare a mettere le mani... altrimenti ti avrei detto io stesso che quello che stavi dicendo e che mi stavi consigliando di fare era errato... detto ciò spero non ci siano più postille su cui confrontarci  :Smile: ... [/OT]

Stanotte mi faccio un giro nella configurazione e vedo cosa posso togliere a partire da quello che mi hai consigliato... per quando riguarda la use flag non ne avevo idea... mi sono lasciato fuoriviare dal fatto che le api servissero ancora a qualche a qualche programma... ho la tendenza a configurare kernel monolitici (mi propongo sempre di mudularizzare la roba che non uso spesso dopo le installazioni ma per un motivo o per un altro non lo faccio mai)... domanda: che roba è "il caro buon vecchio verynice"?Last edited by ReDirEct__ on Sat Oct 15, 2011 12:26 am; edited 1 time in total

----------

## djinnZ

 :Shocked: 

 :Question: 

 :Laughing: 

 *djinnZ wrote:*   

> [corsivo] 

 ovvero "sto facendo un poco (tanto) il cretino ..." (fondamentale la faccia da scemo verde e sorridente oltre al corsivo prescritto dalla lingua italiana per capire che il tono è alterato)

scrivere "non è un rimbrotto ma la prossima volta invece di usare google per il singolo errore (come suppongo che avrai fatto) prova a vedere quali use sono attive per prima cosa (tra l'altro me ne ero dimenticato anche io perché la cosa la ho verificata almeno due anni fa, l'ultima volta che mi sono occupato di impostare da zero il sistema).

Consiglio per un migliore approccio nello spirito di spiegarti il metodo e non solo fornirti la soluzione" mi pareva troppo arido e ci ho giocato un poco sopra.

Non sono assolutamente contrariato o astioso. Mi sono solo concesso una licenza poetica. Rileggi quello che ho scritto figurandoti un tono di voce scherzoso e ti sarà tutto più chiaro.

e meno male che lo avevo detto di evitare di prendersi troppo sul serio...  :Cool:  e che c***o ...   :Twisted Evil:   ora sul serio mi viene da incazzarmi   :Confused:   ... ma dico io ...  :Laughing: 

guardate meno televisione ... jat'a femmene ... fate qualcosa ...

tornando (quasi, non esageriamo) seri: gli ebuild in relazione ad use come oss non fanno altro che lanciare il make con un --with-oss o simili. Tuttavia ci sono diversi automake, make o quant'altro che se ne fregano se gli dici di non usare od usare una determinata libreria e si basano su quello che trovano sul sistema anche verificando solo se un determinato file è in una determinata posizione.

Pulse ha questo problema e i devel se lo hanno indicato così vuol dire che c'è solo da riscrivere il makefile on config per intero per risolvere (o eventuali proposte di correzione saranno state rifiutate da qualche alto sacerdote del piffero).

E non prendere mai le cose per oro colato. Nel kernel è giusto indicare una cosa del genere ma devi verificare se la distribuzioni prevede software legacy (mi pare che un paio di emulatori ne abbiano bisogno per forza) e se il software di cui hai bisogno, nell'asseto che hai stabilito lo richiede, questo è il bello di gentoo. Su altre disrtibuzioni potresti dover agire diversamente e tenertelo lo stesso.

Compresa la logica?

Ti ripeto che la scalta modulo vs builtin va fatta in base all'uso del device corrispondente. Se l'audio lo usi solo per avere un beep di avviso è chiaro che modulare va benissimo, se lo usi con un player bastardo che blocca il device quando esce modulare è una scelta obbligata etc.

 *app-admin/verynice wrote:*   

> A tool for dynamically adjusting the nice-level of processes

 serve a dare automaticamente priorità a quei processi che ritieni più importanti. Dacci uno sguardo.

e vedi di avere a disposizione euse (gentoolkit), euses ed ufed.  :Wink: 

 *bandreabis wrote:*   

> Ho sempre cercato di capire

 ... e sarebbe ora... siamo al secondo lustro ormai che rompi le tasche...   :Laughing:  (almeno ammettilo che sei masochista e lo ha fatto apposta per darmi l'occasione di sbeffeggiarti)   :Twisted Evil: 

e sfido chiunque a resistere ad una simile tentazione ...

----------

## ReDirEct__

Se può essere d'aiuto a qualcuno (almeno per risolvere il problema che riguarda i player che all'improvviso non riproducono e danno come errore stream_writable_size failed connessione terminata) ho trovato qualcosa QUI.. pare che cambiando qualcosa nei file /etc/pulse/default.pa e /etc/pulse/daemon.conf possa aiutare... non ancora ho visto se funza (sono le 2.30  di notte... mi sparano se sentono che ascolto musica a quest'ora)... per ora mi sto limitando a sistemare un pò il kernel. Appena ho qualche riscontro effettivo vi faccio sapere.

----------

## djinnZ

Mi pare eccessivo andarsi a complicare la vita mettendo jack di mezzo (ma in certi ambiti è normale caricare anche l'impossibile), forse aumentare la priorità è l'unico suggerimento valido (non ho modo di verificare ma se non erro realtime e fragment dovrebbero essere il default).

Tra le varie licenze poetiche ti spiegavo che simili comportamenti vanno sempre analizzati presupponendo più fattori concorrenti e procedendo ad eliminarli uno alla volta.

Non ti scordare -oss e ricompilare altrimenti ti si dovrebbe bloccare alsa-utils ed il mixer.

----------

## ReDirEct__

sisi infatti... mi sono dimenticato di dire che non mi riferivo alla soluzione con jack... ma al 2° punto (quella da provare se non funziona la soluzione con jack)... poi jack penso serva per altri scopi (produzione musicale e/o multimediale che ha bisogno del supporto in realtime)... cmq sto ricompilando tutto togliendo da mezzo la flag use "oss"... appena ho finito faccio un giro di prova e vi do i riscontri... in ogni caso, adottando le modifiche ai file che dice nel link postato sopra pare che sono riuscito a risolvere il problema di pulse audio... sono anche andato un pò in giro a reperire informazioni sulle opzioni del kernel che mi hai sengalato (nr_cpu rcu etc etc, memory compaction e via dicendo) e ho cercato di modificarle a dovere... pare che il sistema sia già più reattivo (o forse è solo una mia impressione  :Razz:  )...

----------

## djinnZ

realtime-scheduling (solo per il demone) è una soluzione (continuo a preferire il ricorso a high-priority/nicelevel od impostare il nicelevel esternamamente) ma puoi anche guardare a resample-method e shm-size-bytes (per limitare l'uso della ram e lo swapping).

Dato che ho modo di confrontare direttamente sulla stessa macchina un sistema con kernel ad hoc e gentoo contro una certa immondizia semicommerciale con tutto caricato alla buona la differenza salta all'occhio ed è paurosa.  :Twisted Evil: 

Bada che numa nudes mi pare che deve essere uguale al doppio delle cpu sugli intel o non riesci ad eseguire due thread per core (in ogni caso una cosa è averlo a 3=2^3=8 o 4 altro a 6)

----------

## ReDirEct__

sono su amd64... sempre due core... però non ho capito: avendo solo due core dovrei scegliere 2 o 4? (2^2=4) Io l'ho impostato a 2 (perchè dice "as a power of 2")...

----------

## djinnZ

quel valore è quello della potenza a cui elevare due (2^n), nel tuo caso potresti anche lasciarlo a 1 (il minimo, create due aree) ma anche a 3 o persino 4 non è un problema, certo a 10 (il massimo per 1024 aree) non va assolutamente bene anche se su un sistema con 2 cup solo due aree dovrebbero essere create; Il numero cpu supportate andrebbe a 2 ma 4 la differenza sono due KB (di ram impegnata, non di dimensione del kernel) quindi non fai male a lasciare nel dubbio un valore leggermente più alto; ricorda che 2^4 = 16 che va in RCU fanout (è al contrario n^4 ti serve per verificare che tutto vada bene) etc.

Dopo che hai sistemato e ripulito dalla configurazione tutte le opzioni inutili relative a supporti intel che non ti servono e via dicendo ti puoi concentrare sull'ottimizzazione vera e propria: quale scheduler usare (per il tcp/ip ti consiglio il westwood in vece del reno se lavori prevalentemente in wifi) etc.

Se devi passare parametri ai moduli alsa e/o per impostare la risoluzione ti conviene usare la linea di comando del kernel nella configurazione piuttosto che farla passare dal bootloader.

bada, nel caso che ti giri di usare altri metodi di compressione che per l'immagine genkernel supporta solo gzip (per il kernel invece ti consiglio di usare xz o lzo) e, cosa che mi ero dimenticato, tanto per cambiare, che reatime-scheduling & c richiedono che il demone di pulseaudio venga eseguito con i privilegi di root.

e quando fai prove non dimenticare un kernel di scorta per far ripartire la macchina.

----------

## ReDirEct__

Ho quasi sistemato tutto (piano piano... poi posto il .config appena ho ultimato tutto e mi dite se secondo voi può andare)... volevo ulteriori informazioni sulla riga di comando del kernel: in sostanza gli devo passare tutti i comandi che passo al bootloader. La parte che riguarda il kernel 3.0.6 (ho fatto ieri l'aggiornamento quindi me lo sono riconfigurato) in grub.conf è questa:

```
title Gentoo Linux 3.0.6

root (hd0,0)

kernel /boot/linux-3.0.6-gentoo root=/dev/sda4 rootfstype=ext4 quiet video=uvesafb:ywrap,mtrr:3,1280x1024-32@75 splash=silent,theme:powered_by_gentoo console=tty1

initrd /boot/fbslpash
```

La parte che devo passare alla riga di comando del kernel è questa: 

```
kernel /boot/linux-3.0.6-gentoo root=/dev/sda4 rootfstype=ext4 quiet video=uvesafb:ywrap,mtrr:3,1280x1024-32@75 splash=silent,theme:powered_by_gentoo console=tty1
```

Giusto?

----------

## djinnZ

Vedo che nonostante sei alle prime armi hai scelto di non usare genkernel...  :Confused: 

Se intendi l'opzione riga di comando da includere staticamente nella configurazione ci si mettono quelle cose che sicuramente serviranno e si lasciano in grub quelle che si può voler disabilitare, comunque:

kernel

parola chiave di grub non è un paramentro del kernel/boot/linux-3.0.6-gentoo

nome del file del kernel, ovviamente non è un parametro, quello che segue lo è.Parametri del kernel:

root=/dev/sda4

partizione di root, facilmente potresti volerla cambiare (sposti il connettore del disco e diventa sda4 o sdc4 per dirne una), meglio che stia nella conf di grubrootfstype=ext4

a meno che non cambi filesystem non la devi cambiare, statica potrebbe andar benevideo=uvesafb:ywrap,mtrr:3,1280x1024-32@75

Impostazione della risoluzione video, probabilmente sarà sempre quella, va bene nella conf del kernelquietsplash=silent,theme:powered_by_gentoo console=tty1

potresti voler vedere i messaggi e disabilitare lo splash, personalmente non la metterei statica ma è una mia opinione (e non uso lo splash, "non mi garba" fa troppo ... quell'altro)quindi si potrebbe pensare a qualcosa del genre:

```
...

CONFIG_CMDLINE_BOOL=y

CONFIG_CMDLINE="rootfstype=ext4 video=uvesafb:ywrap,mtrr:3,1280x1024-32@75"

# CONFIG_CMDLINE_OVERRIDE is not set

...
```

```
title Normale

root (hd0,0)

kernel /boot/linux-3.0.6-gentoo root=/dev/sda4 quiet  splash=silent,theme:powered_by_gentoo console=tty1

initrd /boot/fbslpash

title NoSplash

root (hd0,0)

kernel /boot/linux-3.0.6-gentoo root=/dev/sda4
```

Domanda forse sciocca ma non lo uso e non mi ricordo come si imposta ma: dato che lo splash usa l'initrd non dovrebbe essere aggiuto il parametro real_root=/dev/sd4 e root= dovrebbe diventare /dev/ram0 od essere omesso?

Tanto per curiosità. L'ultima volta che mi ci sono cimentato openrc non era neppure in cantiere.

In ogni caso la logica è questa. Il resto è questione di preferenze personali e necessità, ti potrei facilmente riportare mille ragioni per fare diversamente ed altrettante a riprova.

Nessuno può essere depositario di una verità assoluta, persino la religione ammette il libero arbitrio etc. Lo so che sono concetti desueti e poco trendy ma preferisco affermarli rimandando alla mia signature (soprattutto al mala tempora)  :Twisted Evil: 

----------

