Come posso modificare il mio desktop Linux per essere più reattivo?


30

Ho l'esperienza che Linux funziona bene fino a quando la memoria fisica è esaurita. Non appena viene utilizzato lo spazio di scambio, le prestazioni vengono notevolmente ridotte e la GUI non risponde.

Questo problema non si limita a una distro o desktop specifici, perché ne ho provati alcuni (e il problema persiste).

Cosa posso fare al riguardo?


Questo è un problema noto con il kernel Linux ... Credo di aver letto che recentemente è stata impegnata una patch per risolverlo. Alla ricerca di un riferimento a quello ...
xenoterracide,

1
Questo articolo e questo su Phoronix sono ciò a cui stavo pensando ... Penso.
xenoterracide,

fondamentalmente quegli articoli parlano di patch che entreranno in 2.6.36, quindi quando ne uscirà ottenerlo (a meno che non abbiate il coraggio di eseguire un RC o dal master)
xenoterracide

Quanta RAM hai? Quali programmi esegui che sono così affamati? VM? JVM?
Tshepang,

Ho 8 GB di RAM e i colpevoli sono le solite app (browser web come Firefox e Chrome, client di posta elettronica come thunderbird e client IRC.
txwikinger

Risposte:


15

Suggerisco di leggere SwapFAQ , in particolare il parametro swapiness .


3
+1, lo swap è un cerotto che speriamo di non usare ...
Avery Payne,

1
Ho ampiamente provato diverse impostazioni per lo swappiness senza successo. Ho anche notato che le opinioni sul valore della swappiness non sono affatto unificate. Per i desktop alcuni raccomandano 10, altri 100, nel senso che suggeriscono che suggeriscono l'effetto opposto totale.
txwikinger,

1
Dopo ulteriori test, consiglio di non usare né swapiness 100 né 0. Entrambi hanno creato situazioni in cui il desktop è entrato in una mania di scambio che ha anche fatto fermare l'orologio del pannello per più di 20 minuti.
txwikinger,

11

Alcuni suggerimenti:

  1. Non eseguire così tanti programmi GUI contemporaneamente.
  2. Assicurati che tutti i programmi in esecuzione in background che non ti servono, ad esempio Apache, siano arrestati.
  3. Utilizzare una distribuzione destinata a situazioni di memoria insufficiente (ad esempio per un netbook)
  4. Acquista più memoria.
  5. Acquista un HD (o SSD) più veloce per la tua partizione di swap. :)


2
con i moderni SSD è probabile che l'intero sistema sia obsoleto e pronto per la sostituzione molto prima della morte dell'SSD. non vale davvero la pena preoccuparsi di questi giorni. i backup sono ovviamente ancora necessari perché un disco - SSD o meccanico - può morire in qualsiasi momento.
Cas

4

Acquista più memoria? :)

Se si eseguono applicazioni che utilizzano più memoria di quella presente nel sistema, non c'è nulla che qualsiasi sistema operativo possa fare al riguardo, quindi passare alla partizione di swap. Se questa è una situazione in cui ti trovi spesso, smetti di eseguire alcuni dei programmi che non ti servono o, in realtà, acquista più memoria, è molto economico in questi giorni.


3
Ho già la RAM massima. Vorrei sapere alcune modifiche che rendono lo scambio più efficiente di quello che è.
txwikinger,

1
Ho scoperto che disabilitare lo swap tende completamente a rendere più veloce la risposta di un sistema. Le app vengono informate dal kernel che non hanno memoria e rispondono di conseguenza.
cjac,

3
@cjac: Di solito non è così. Puoi configurare il kernel per farlo, ma per impostazione predefinita verrà eseguito il sovraccarico (dai alla tua memoria dell'app che il tuo sistema non ha). Non appena un'app tocca la memoria e il kernel non riesce più a trovare, il killer di memoria insufficiente interromperà uno o più processi.
Kristof Provost,

@txwikinger il motivo per cui lo scambio è lento è perché le velocità della RAM sono molto più veloci dei dischi rigidi. Il tempo di ricerca della RAM viene misurato in nanosecondi (10 ^ -9). I tempi di ricerca dell'HDD sono misurati in millisecondi (10 ^ -3). Sono sei ordini di grandezza, in altre parole la RAM è un milione di volte più veloce dello swap. La tua domanda è come chiedere come far andare una bicicletta più veloce di un jet Concorde. Non puoi.
Bahamat,

1
@bahamat. Stai affermando l'ovvio, ma non è questo il problema. Il problema è che lo scambio è fatto in modo molto inefficace, e quindi crea qualcosa nella direzione del problema del filosofo.
txwikinger,

2

Prova a cambiare i valori delle variabili del kernel 'vm.swappiness' e 'vm.page-cluster' in valori più appropriati.

  1. Avvia un emulatore di terminale.
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. Reboot.

Verifica se i nuovi valori sono in uso con:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster

1

Lo scambio ridurrà notevolmente le prestazioni, qualunque cosa accada, quindi è meglio evitarlo del tutto. Questo può sembrare stupido, ma un'opzione è quella di non configurare una partizione di swap. Da qualche tempo eseguo swap-free su tutti i miei sistemi:

  • 1 GB sul netbook è sufficiente per navigare sul Web, ascoltare musica e altre cose leggere.
  • 4 GB sul mio desktop sono sufficienti per tutte le cose sopra, oltre allo sviluppo (anche in Eclipse) e alla modifica delle immagini di base.

Se fai qualcosa che richiede molta memoria (Gimp con immagini di grandi dimensioni, modellazione 3D, CAD) di quanto probabilmente dovresti acquistare un po 'di RAM.


Sì. Arrivo lentamente alla stessa conclusione. Mi sembra che il modo in cui il kernel Linux si scambia non sia molto efficiente per i desktop (sui server tutto questo funziona bene). Quindi, forse la raccomandazione dovrebbe essere quella di disabilitare tutto lo spazio di scambio sui desktop. Btw. Uso 8 GB di RAM :)
txwikinger il

1
@txwikinger: posso chiedere perché va bene sui server?
phunehehe,

1

Puoi provare compcache , se riesci a capire come configurarlo nella tua distribuzione. Ad esempio, su Ubuntu è possibile abilitarlo modificando /etc/initramfs-tools/initramfs.conf e modificando la riga "COMPCACHE_SIZE".

Non credo che il mio scambio su disco sia stato toccato una volta da quando ho abilitato compcache. Ecco le mie attuali statistiche di scambio:

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

Si noti che viene utilizzato il dispositivo compcache (ramzswap0) e non il dispositivo su disco (sda5).


0

Acquista RAM più veloce e assicurati che il tuo sistema lo stia utilizzando tutto. Quale CPU e architettura stai usando?


In che modo questo modifica il sistema Linux? La modifica o il miglioramento dell'hardware non è il problema qui.
txwikinger,

È possibile che l'installazione di Linux non stia utilizzando tutto l'hardware disponibile. Questo è un problema di prestazioni e in un commento precedente hai dichiarato che hai raggiunto il limite massimo di RAM. Senza conoscere maggiori dettagli sulla configurazione, un percorso facile da percorrere è l'hardware migliore.
Mike H,

1
il "sistema Linux" è composto da hardware e software. L'aggiunta di memoria "modifica" il sistema.
cjac,

Linux è un software che funziona su hardware. L'hardware non è incluso in Linux: p
txwikinger,

1
Penso che più ram sia più appropriato che più veloce ... Di solito anche la velocità della RAM è limitata dal Mobo ...
xenoterracide

0

Eseguo l'applet di Monitor di sistema in un dock sul lato destro dello schermo. Ogni volta che il sistema sembra lento, guardo i contatori. Se qualcosa funziona con una capacità superiore al 10%, ciò indica che un processo sta sfuggendo di mano.

Se fai clic sul monitor di sistema, puoi approfondire i processi che stanno consumando risorse sul tuo sistema.

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png


1
La maggior parte dei monitor di sistemi trascina semplicemente verso il basso un sistema lento più è il gatto di Schrödinger. Senza aumentare la memoria, deve correggere le perdite di memoria o tagliare i programmi non necessari in esecuzione.
jjclarkson,

0

Qualche anno fa era solito usare un'unità dedicata per lo scambio, mentre era collegato al proprio bus IDE / ATA - lo scambio di dati sulla stessa unità non aveva senso in termini di prestazioni.

Quel trucco ha funzionato dieci anni fa, ma con le velocità delle unità ora non dovresti davvero vedere un tale degrado delle prestazioni frenetico, a meno che tu non stia scambiando la biblioteca del congresso, altrimenti sarei preoccupato per la salute del tuo disco - hai verificato di recente?

Puoi sempre provarlo, non hai molte alternative se la tua RAM è già al massimo. Semmai spero che renda la tua GUI più reattiva.


Molti utilizzi per desktop non offrono questa opzione poiché sono lapbook o netbook che non consentono una seconda unità.
txwikinger,

@txwikinger ovviamente è vero, ma ho considerato il titolo della domanda che dice "desktop", altrimenti non lo avrei suggerito se un laptop fosse stato specificamente menzionato :-)
inverti il

Bene ... intendevo desktop per distinguere dai server, dove credo che lo scambio funzioni abbastanza bene. :)
txwikinger,

0

Installa un secondo sistema Linux sulla tua rete con una buona quantità di RAM, NFS lo monta sul tuo sistema principale e metti il ​​file di swap su quello.


1
Con Gigabit Ethernet, questo sarà molto più lento di un SSD di fascia media e non sono sicuro che potresti raggiungere la velocità di un disco rigido a 7200 rpm. Forse con Firewire puoi raggiungere la velocità di scambio locale. Ma sarebbe più efficace aggiungere semplicemente RAM.
Gilles 'SO- smetti di essere cattivo' il

0

Un modo è usare un kernel ottimizzato .


Si prega di non pubblicare solo collegamenti; includere un contesto in modo che, nel caso in cui il sito che si sta collegando per andare verso il basso, ci siano informazioni sufficienti qui per rendere significativa la risposta.
Jasonwryan,

0

Per molti anni di esperienza, posso dirti che non c'è molto da modificare

Ma quello che ho fatto di recente ha aiutato molto.

1

Mi sono trasferito da Ubuntu ad Arch Linux, da Unity / Gnome al desktop xfce.

Ubuntu è mortalmente lento, da ogni parte. avvio / grafica .. lento.

2

Ho comprato un SSD Intel (80g) e vi ho installato il mio sistema di root.

Il mio arco Linux + XFCE4 + docky + conky, si avvia in 10 secondi (accesso automatico con lxdm), tutte le applicazioni installate su SSD, ad esempio Matlab, si avviano molto più velocemente.

Ne vale la pena.

3

Crea il tuo / tmp altrove, per questo uso una dimensione limitata di ramdisk, per evitare che il filesystem di root venga confuso

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.