Wie kann ich meinen Linux-Desktop optimieren, um schneller zu reagieren?


30

Ich habe die Erfahrung gemacht, dass Linux funktioniert, bis der physische Speicher voll ist. Sobald Swap Space verwendet wird, wird die Leistung erheblich beeinträchtigt und die Benutzeroberfläche reagiert nicht mehr.

Dieses Problem ist nicht auf eine bestimmte Distribution oder einen bestimmten Desktop beschränkt, da ich einige ausprobiert habe (und das Problem weiterhin besteht).

Was kann ich dagegen tun?


Dies ist ein bekanntes Problem mit dem Linux-Kernel. Auf der Suche nach einem Hinweis darauf ...
Xenoterracide

1
An diesen und diesen Artikel über Phoronix habe ich gedacht ... denke ich.
Xenoterracide

im Grunde sprechen diese Artikel über Patches , die in 2.6.36 so gehen , wenn das kommt raus , dass (es sei denn Sie es wagen , ein RC oder von Meister zu laufen)
xenoterracide

Wie viel RAM hast du? Welche Programme laufen so hungrig? VMs? JVM?
Tshepang

Ich habe 8 GB RAM und die Schuldigen sind die üblichen Apps (Webbrowser wie Firefox und Chrome, E-Mail-Clients wie Thunderbird und IRC-Clients.
txwikinger

Antworten:


15

Ich empfehle SwapFAQ zu lesen , insbesondere den Swapiness- Parameter.


3
+1, Swap ist ein Pflaster, das wir hoffentlich nicht verwenden ...
Avery Payne

1
Ich habe verschiedene Einstellungen für swappiness ausgiebig ohne Erfolg ausprobiert. Mir ist auch aufgefallen, dass die Meinungen über den Wert von Swappiness überhaupt nicht einheitlich sind. Für Desktops empfehlen einige 10, andere 100, was bedeutet, dass sie den umgekehrten Effekt vorschlagen.
Txwikinger

1
Nach weiteren Tests empfehle ich, weder Swapiness 100 noch 0 zu verwenden. Beide haben Situationen geschaffen, in denen der Desktop in einen Swapping-Wahnsinn geriet, bei dem die Uhr des Panels sogar länger als 20 Minuten stehen blieb.
Txwikinger

11

Einige Hinweise:

  1. Führen Sie nicht so viele GUI-Programme gleichzeitig aus.
  2. Stellen Sie sicher, dass alle Programme, die im Hintergrund ausgeführt werden und zB Apache nicht benötigen, gestoppt sind.
  3. Verwenden Sie eine Distribution für Situationen mit wenig Arbeitsspeicher (z. B. für ein Netbook).
  4. Kaufe mehr Speicher.
  5. Kaufen Sie eine schnellere Festplatte (oder SSD) für Ihre Swap-Partition. :)


2
Bei modernen SSDs dürfte das gesamte System veraltet und ersatzbereit sein, lange bevor die SSD ausfällt. es lohnt sich heutzutage wirklich nicht, sich Sorgen zu machen. Backups sind natürlich weiterhin erforderlich, da eine Festplatte (SSD oder mechanisch) jederzeit ausfallen kann.
cas

4

Mehr Speicher kaufen? :)

Wenn Sie Anwendungen ausführen, die mehr Speicher verwenden, als auf dem System vorhanden sind, kann kein Betriebssystem etwas anderes tun, als auf die Swap-Partition zu wechseln. Wenn dies eine Situation ist, in der Sie sich häufig befinden, beenden Sie die Ausführung einiger der Programme, die Sie nicht benötigen, oder kaufen Sie tatsächlich mehr Speicher. Dies ist heutzutage sehr kostengünstig.


3
Ich habe schon maximales RAM. Ich würde gerne einige Verbesserungen vornehmen, die das Tauschen effizienter machen als es ist.
txwikinger

1
Ich habe festgestellt, dass das Deaktivieren von Swap dazu führt, dass ein System schneller reagiert. Apps werden vom Kernel benachrichtigt, dass sie keinen Speicher haben, und reagieren dementsprechend.
cjac

3
@cjac: Das ist normalerweise nicht der Fall. Sie können den Kernel so konfigurieren, dass er dies ausführt. Standardmäßig wird jedoch ein Overcommit ausgeführt (geben Sie Ihrem App-Speicher an, den Ihr System nicht hat). Sobald eine App den Speicher berührt und der Kernel keinen Speicher mehr findet, beendet der Killer einen oder mehrere Prozesse.
Kristof Provost

@txwikinger der Grund, warum das Austauschen langsam ist, ist, dass die RAM-Geschwindigkeiten so viel schneller sind als die von Festplatten. Die RAM-Suchzeit wird in Nanosekunden (10 ^ -9) gemessen. Die Festplatten-Suchzeiten werden in Millisekunden (10 ^ -3) gemessen. Das sind sechs Größenordnungen, mit anderen Worten, RAM ist eine Million Mal schneller als Swap. Ihre Frage ist, wie man ein Fahrrad so schnell wie einen Concorde-Jet fahren lässt. Das kannst du nicht.
Bahamat

1
@bahamat. Sie geben das Offensichtliche an, aber es ist nicht das Problem. Das Problem ist, dass das Tauschen sehr ineffektiv durchgeführt wird und daher etwas in Richtung des Problems des Philosophen schafft.
txwikinger

2

Versuchen Sie, die Werte der Kernelvariablen 'vm.swappiness' und 'vm.page-cluster' in passendere Werte zu ändern.

  1. Starten Sie einen Terminalemulator.
  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. Starten Sie neu.

Überprüfen Sie, ob die neuen Werte verwendet werden mit:

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

1

Durch das Tauschen wird die Leistung erheblich beeinträchtigt, was auch immer der Fall sein mag. Vermeiden Sie dies also unbedingt. Das hört sich vielleicht blöd an, aber eine Option ist, keine Swap-Partition zu konfigurieren. Ich habe seit einiger Zeit auf allen meinen Systemen Swap-frei ausgeführt:

  • 1 GB auf dem Netbook reicht aus, um im Internet zu surfen, Musik und andere leichte Dinge zu hören.
  • 4 GB auf meinem Desktop reichen für alles, plus Entwicklung (auch in Eclipse) und grundlegende Bildbearbeitung.

Wenn Sie etwas sehr speicherintensives tun (Gimp mit großen Bildern, 3D-Modellierung, CAD), sollten Sie wahrscheinlich etwas RAM kaufen.


Ja. Ich komme langsam zu dem gleichen Schluss. Mir scheint, dass die Art und Weise, wie der Linux-Kernel ausgetauscht wird, für Desktops nicht sehr effizient ist (auf Servern funktioniert das alles einwandfrei). Daher sollte möglicherweise die Empfehlung lauten, den gesamten Auslagerungsspeicher auf den Desktops zu deaktivieren. Btw. Ich benutze 8 GB RAM :)
txwikinger

1
@txwikinger: darf ich fragen, warum es auf Servern in Ordnung ist?
Phunehehe

1

Sie können compcache ausprobieren , um herauszufinden, wie es in Ihrer Distribution eingerichtet wird. Unter Ubuntu können Sie es beispielsweise aktivieren, indem Sie /etc/initramfs-tools/initramfs.conf bearbeiten und die Zeile "COMPCACHE_SIZE" bearbeiten.

Ich glaube nicht, dass mein On-Disk-Swap einmal berührt wurde, seit ich den Compcache aktiviert habe. Hier sind meine aktuellen Swap-Statistiken:

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

Beachten Sie, dass das Compcache-Gerät (ramzswap0) verwendet wird und das Festplattengerät (sda5) nicht.


0

Kaufen Sie schnelleren Arbeitsspeicher und stellen Sie sicher, dass Ihr System den gesamten Arbeitsspeicher verwendet. Welche CPU und Architektur verwenden Sie?


Wie verändert das das Linux-System? Hardwareänderung oder -verbesserung ist hier nicht das Problem.
txwikinger 10.08.10

Es ist möglich, dass Ihre Linux-Installation nicht die gesamte verfügbare Hardware verwendet. Dies ist ein Leistungsproblem, und Sie haben in einem vorherigen Kommentar angegeben, dass Sie Ihr maximales RAM-Limit erreicht haben. Ohne mehr Details über Ihre Konfiguration zu wissen, ist eine bessere Hardware ein einfacher Weg.
Mike H

1
Das "Linux-System" besteht aus Hardware und Software. Durch Hinzufügen von Speicher wird das System "optimiert".
cjac

Linux ist Software, die auf Hardware läuft. Hardware ist in Linux nicht enthalten: p
txwikinger 16.08.10

1
Ich denke, dass mehr RAM angemessener ist als schneller ... RAM-Geschwindigkeit wird von der Mobo in der Regel auch begrenzt ...
Xenoterracide

0

Ich führe das System Monitor-Applet in einem Dock auf der rechten Seite meines Bildschirms aus. Immer wenn sich das System träge anfühlt, schaue ich auf die Anzeigen. Wenn etwas mit einer Kapazität von mehr als 10% läuft, ist dies ein Hinweis darauf, dass ein Prozess außer Kontrolle gerät.

Wenn Sie auf den Systemmonitor klicken, können Sie sich mit den Prozessen befassen, die Ressourcen auf Ihrem System verbrauchen.

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


1
Die meisten Systemmonitore ziehen nur ein langsames System herunter, mehr ist es die Katze von Schrödinger. Ohne Speichererweiterung muss er Speicherlecks beheben oder unnötige Programme entfernen, die ausgeführt werden.
jjclarkson

0

Vor ein paar Jahren war es üblich, ein dediziertes Laufwerk zum Austauschen zu verwenden, während es an einen eigenen IDE / ATA-Bus angeschlossen war. Das Austauschen von Daten auf demselben Laufwerk ergab hinsichtlich der Leistung keinen Sinn.

Dieser Trick hat vor zehn Jahren funktioniert, aber bei den heutigen Laufwerksgeschwindigkeiten sollten Sie wirklich keine so hektischen Leistungseinbußen feststellen, es sei denn, Sie tauschen die Kongressbibliothek aus, da ich sonst über den Zustand Ihres Laufwerks besorgt wäre. Haben Sie das in letzter Zeit überprüft?

Sie können es immer versuchen, Sie haben nicht viele Alternativen, wenn Ihr RAM bereits voll ist. Ich hoffe, dass Ihre Benutzeroberfläche dadurch schneller reagiert.


Viele Desktop-Anwendungen bieten diese Option nicht an, da es sich um Lapbooks oder Netbooks handelt, die kein zweites Laufwerk zulassen.
Txwikinger

@txwikinger natürlich wahr, aber ich dachte über den Titel der Frage nach, der "desktop" lautet, sonst hätte ich dies nicht vorgeschlagen, wenn ein Laptop speziell erwähnt worden wäre :-)
18.08.10

Naja .. ich meinte Desktop, um mich von Servern zu unterscheiden, bei denen das Tauschen meiner Meinung nach einigermaßen gut funktioniert. :)
txwikinger

0

Installieren Sie ein zweites Linux-System in Ihrem Netzwerk mit ausreichend RAM, hängen Sie es über NFS in Ihr Hauptsystem ein und legen Sie die Auslagerungsdatei darauf.


1
Mit Gigabit-Ethernet ist dies viel langsamer als mit einer SSD der mittleren Preisklasse, und ich bin mir nicht sicher, ob Sie überhaupt die Geschwindigkeit einer Festplatte mit 7200 U / min erreichen können. Vielleicht kannst du mit Firewire die Geschwindigkeit des lokalen Austauschs erreichen. Es wäre jedoch effektiver, einfach RAM hinzuzufügen.
Gilles 'SO - hör auf böse zu sein'

0

Eine Möglichkeit ist die Verwendung eines optimierten Kernels .


Bitte posten Sie nicht nur Links. Fügen Sie einen Kontext hinzu, damit für den Fall, dass die Website, auf die Sie verlinken, nicht mehr funktioniert, hier genügend Informationen zur Verfügung stehen, damit die Antwort aussagekräftig wird.
Jasonwryan

0

Seit vielen Jahren kann ich Ihnen sagen, dass es nicht so viel zu optimieren gibt

Aber was ich kürzlich getan habe, hat mir sehr geholfen.

1

Ich bin von Ubuntu zu Arch Linux gewechselt, von Unity / Gnome zu xfce desktop.

Ubuntu ist von überall her tödlich langsam. booten / Grafik .. langsam.

2

Ich kaufte eine Intel SSD (80 g) und pflanzte mein Root-System darauf.

Mein Arch Linux + XFCE4 + Docky + Conky, bootet in 10 Sekunden (automatische Anmeldung mit lxdm), alle Anwendungen, die auf der SSD installiert sind, zB Matlab, starten viel schneller.

Das Geld ist es wert.

3

Machen Sie Ihr / tmp woanders, ich benutze dafür eine begrenzte Größe der RAM-Disk, um zu verhindern, dass das Root-Dateisystem verschlüsselt wird

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.