Wie wirkt sich eine Swap-Partition / -Datei auf das System aus?

20

Einige Freunde sagten mir, dass auf ihren Android-Handys nur sehr wenig (<100 MB) Speicher für reguläre Apps verfügbar ist, da das Betriebssystem und einige nicht tötbare Dienste den größten Teil des Arbeitsspeichers beanspruchen. Beispielsweise zeigt ein Telefon mit 512 MB nur 90 MB verfügbaren Speicher an, sodass nur 2-3 Apps gleichzeitig ausgeführt werden können.

Ich frage mich, ob das Erstellen einer Swap-Partition / -Datei hilfreich sein wird, aber ich habe im gesamten Web gemischte Meinungen gesehen und bin mir nicht sicher, was ich tun soll. Hier sind meine Fragen:

(1) Wird es viele nicht oft genutzte Speicherseiten geben, die ausgetauscht werden müssen, insbesondere im Betriebssystem und bei diesen nicht tötbaren Diensten?

(2) Wie wirkt sich das Auslagern kleiner Speicherseiten auf die Lebensdauer des Flash-Speichers aus? Führt der Flash-Speicher (oder die SD-Karte?) Automatisch einen Verschleißausgleich durch?

(3) Hilft der Austausch wirklich bei der Leistung, wenn mehrere Apps ausgeführt werden? Ich gehe davon aus, dass die Antwort auf (1) ja ist.

(4) Ist das Schreiben zum Flash zu langsam und beeinträchtigt dies die Reaktionsfähigkeit beim Austauschen?

(5) Stimmt es, dass Android den Auslagerungsmechanismus vom Linux-Kernel fernhält, so lange es eine Auslagerungspartition / -datei gibt, wird das Auslagern ohne zusätzliche Konfiguration durchgeführt?

Danke fürs Lesen.

immergrün
quelle

Antworten:

8

Ich denke nicht, dass das Austauschen für Android von großem Nutzen sein wird, da der Android-Anwendungslebenszyklus eine viel fortgeschrittenere Form des Austauschs ist.

(1) Wird es viele nicht oft genutzte Speicherseiten geben, die ausgetauscht werden müssen, insbesondere im Betriebssystem und bei diesen nicht tötbaren Diensten?

Sie können den Betriebssystemkernel auch in Desktop Linux nicht austauschen, und Android beendet Dienste bereits, wenn mehr RAM benötigt wird. Wenn der Hersteller Ihres Geräts weiterhin feststellt, dass ständig unbrauchbare Dienste ausgeführt werden müssen, rooten Sie Ihr Gerät.

(2) Wie wirkt sich das Auslagern kleiner Speicherseiten auf die Lebensdauer des Flash-Speichers aus? Führt der Flash-Speicher (oder die SD-Karte?) Automatisch einen Verschleißausgleich durch?

Selbst wenn die SD-Karte einen Abnutzungsgrad ausgleicht, wird das Austauschen ziemlich weh tun.

(3) Hilft der Austausch wirklich bei der Leistung, wenn mehrere Apps ausgeführt werden? Ich gehe davon aus, dass die Antwort auf (1) ja ist.

Nicht im Zusammenhang mit Android. Im Gegensatz zu herkömmlichen Betriebssystemen, die weiterhin versuchen, Prozesse wie gewünscht einzudämmen, erzwingt Android das Beenden älterer, nicht verwendeter Prozesse und gewinnt ihren Speicher zurück. Dieses Beenden ist schnell, da Anwendungen ihren Status bereits beim Taskwechsel speichern.

(4) Ist das Schreiben zum Flash zu langsam und beeinträchtigt dies die Reaktionsfähigkeit beim Austauschen?

Wahrscheinlich wahrscheinlich nicht. Benötige Benchmarks dafür.

(5) Stimmt es, dass Android den Auslagerungsmechanismus vom Linux-Kernel fernhält, so lange es eine Auslagerungspartition / -datei gibt, wird das Auslagern ohne zusätzliche Konfiguration durchgeführt?

Ich weiß nicht, ob Android den Austauschmechanismus beibehält, aber selbst wenn dies der Fall ist (oder wenn Sie Ihren eigenen Kernel kompilieren), werden Sie noch einige Konfigurationen benötigen. Normalerweise ist es nur eine fstabDatei, die auf die Auslagerungsdatei verweist swapon -a.

Tatsächlich habe ich Gründe, warum das Austauschen die Leistung tatsächlich beeinträchtigen kann: Es verhindert, dass der Anwendungslebenszyklus, das Speicherverwaltungsschema von Android, ordnungsgemäß funktioniert.

Lüge Ryan
quelle
Danke für die Antwort. Ich habe aber noch Fragen. Auf einem Samsung Fascinate belegen 10 nicht tötbare Dienste etwa 110 MB Speicher. Es werden 22 andere tötbare Dienste ausgeführt, aber "Running Application" zeigt, dass keine Anwendung ausgeführt wird. Es ist das Telefon meiner Freundin, und ich wusste vorher nicht genau, was sie getan hat, aber es ist gut möglich, dass viele Dienste / Apps gleichzeitig ausgeführt werden. Ich glaube nicht, dass all diese Hintergrunddienste / Apps alle Seiten verwenden, die sie beim Start benötigt haben. Außerdem ist das Speichern des App-Status + das Neuladen und Neustarten der App + das Wiederherstellen des Status ebenfalls langsam.
Immergrün
Eine andere Möglichkeit, dieses Problem zu betrachten, ist die folgende: Nehmen wir an, die Flash-Lebensdauer ist kein Problem. Sollte Android das Tauschen übernehmen? Wenn nicht, was ist der Hauptunterschied zwischen Android-Apps und Desktop-Apps, der das Austauschen unter Android nicht sinnvoll macht? Ich glaube nicht, dass Android Life Cycle für Desktop- / Serveranwendungen funktioniert.
Immergrün
@evergreen: Der Anwendungsstatus wird gespeichert, wenn die Anwendung in den Hintergrund wechselt (z. B. wenn der Benutzer die Home-Taste drückt, um die Aufgabe zu wechseln). Wenn eine andere Anwendung später Speicher benötigt, werden ältere Anwendungen oder Hintergrunddienste zwangsweise beendet (FK nimmt praktisch keine Zeit in Anspruch). Das bedeutet, dass das Beenden von Aufgaben sofort erfolgt, da der Anwendungsstatus bereits vor langer Zeit gespeichert wurde. Wenn Sie eine Anwendung neu laden, die sich bereits im Speicher befindet, erhalten Sie die schnellste Nachladezeit. Wenn die Anwendung jedoch bereits entladen ist, muss sie erneut vollständig geladen werden (wie beim Austauschen)
Lie Ryan,
@evergreen: Wenn Sie einen Task-Killer verwenden, werden Sie das Entladen von Anwendungen erzwingen und müssen immer das vollständige Neuladen durchführen, anstatt das schnelle Neuladen, wenn die Anwendung im Speicher bleibt. Wenn Sie eine Auslagerungsdatei / -partition verwenden, werden (ältere) Anwendungen ausgelagert, und das Wiederherstellen erfordert fast den gleichen Arbeitsaufwand wie das vollständige Neuladen. Ausnahme: Beim vollständigen Neuladen hat der Anwendungsentwickler persistente Daten durch temporäre Daten getrennt und kann optimieren, was gespeichert und was nicht verbessert werden soll. Während Sie Swap wiederherstellen, lassen Sie dem Anwendungsentwickler keine Wahl und tauschen alles aus.
Lie Ryan
@evergreen: Auch wenn angenommen wird, dass die Flash-Lebensdauer kein Problem ist, sollte Android nicht tauschen, da der Anwendungslebenszyklus eine bessere Arbeit leistet. Android Life Cycle wurde für speicherbeschränkte Umgebungen entwickelt. In Desktop- und Serverumgebungen verfügen Sie über eine gigantische Menge an Speicher. Benutzer führen viel mehr Multitasking durch und erwarten nicht, dass Hintergrundprogramme vom Betriebssystem beendet werden. Die Schwäche von Android Life Cycle besteht darin, dass Anwendungsunterstützung erforderlich ist. Die Anwendung muss jederzeit zum Beenden bereit sein und den Status an vordefinierten Punkten speichern. Diese Komplexität ist für Desktop-Apps nicht relevant.
Lie Ryan
5

Es ist definitiv ein Vorteil, zu tauschen, trotz dessen, was alle anderen im Internet Ihnen sagen. Probieren Sie es aus und überzeugen Sie sich. Empirisch lässt Swap das Telefon auf einem G1 oder einem anderen Telefon mit wenig Speicher besser und schneller laufen.

Ja, in Android ist Life Cycle "Task Management" integriert, aber es ist nicht sehr gut. Es bricht routinemäßig Prozesse ab, wenn der Arbeitsspeicher knapp wird, und die Apps müssen ihren Status mithilfe von " Bundles " speichern, sodass sie beim Neustart im selben Status neu starten, in dem sie zuletzt waren.

Sobald Android feststellt, dass ein Prozess entfernt werden muss, wird dieser brutal ausgeführt, indem er einfach mit Gewalt beendet wird. Der Kernel kann dann sofort alle für den Prozess erforderlichen Ressourcen zurückfordern, ohne sich darauf verlassen zu müssen, dass diese Anwendung gut geschrieben ist und auf eine höfliche Aufforderung zum Beenden reagiert. Indem Sie dem Kernel erlauben, Anwendungsressourcen sofort zurückzugewinnen, können Sie schwerwiegende Situationen mit unzureichendem Arbeitsspeicher viel einfacher vermeiden.

Das wäre großartig, wenn es tatsächlich funktionieren würde, und wäre besser als wahlloser Tausch. Aber die Apps speichern ihren Zustand nicht wirklich. Sie speichern nur die minimale Menge an Informationen , um in diesen Zustand zurückzukehren. (Und einige Apps machen sich nicht einmal die Mühe, dies zu tun.) Die Rückkehr in diesen Zustand nimmt Zeit in Anspruch. Da Swap tatsächlich den gesamten Status der App speichert, der nur neu geladen werden muss, wird der Wechsel zwischen Apps erheblich beschleunigt.

Wenn Sie beispielsweise vom Browser aus zu einer anderen App wechseln, wird der Browser fast immer beendet und muss die gesamte Seite aus dem Internet neu laden, wenn Sie wieder dorthin wechseln. Dies dauert viel länger als das Neuladen des Status vom Swap, verschwendet Ihr Geld, wenn Sie sich in einem Datenplan befinden, und verursacht Statusprobleme, wenn die Webseite dynamisch ist.

Viele Apps brauchen viel länger, um zu starten, als sie sollten, oder kehren beim Neustart nicht in den gleichen Zustand zurück, sodass das Austauschen besser funktioniert.

Ich vermute, die Leute, die mit dem Aktiensystem zufrieden sind, benutzen ihre Telefone anders.

Sollte ich eine Swap-Partition mit Cyanogenmod verwenden?

Endolith
quelle
Wenn Sie es dem Lebenszyklus überlassen, wird die Anwendung zusätzliche Daten zwischenspeichern, um die Leistung zu verbessern (z. B. geladene Webseiten). Wenn Sie Swap verwenden, ist es die Entscheidung des Betriebssystems, aber das Betriebssystem ist nicht in der besten Position, um zu bestimmen, was gespeichert werden soll und was nicht, um die Leistung zu optimieren. Daher muss alles gespeichert und wiederhergestellt werden. Der Browser lädt keine Seiten aus dem Internet erneut herunter, wenn Sie Aufgaben wechseln. Ich habe häufig den Browser geöffnet, zu einer Reihe von schweren Spielen und anderen Aktivitäten gewechselt und bin mit meiner letzten Seite zum Browser zurückgekehrt, wobei alles sofort geladen ist.
Lie Ryan
Recht. Keines der beiden Systeme ist optimal, aber der Austausch ist für die meisten Apps besser. Der Browser lädt die Seite nur neu, wenn sie vor dem erneuten Öffnen beendet wurde. Bei einem Telefon mit wenig Speicher wird es fast immer getötet.
Endolith
@LieRyan - "Mit meiner letzten Seite zum Browser zurückkehren, wobei alles sofort geladen wird" Stellt Ihr Browser die Bildlaufposition auf den geöffneten Seiten nach dem Neuladen wieder her? Das macht Chrome nicht (obwohl ich diesen Browser sehr mag), was sehr bedauerlich ist, als Sie aufgehört haben, in der Mitte einer eher logarithmischen Webseite zu lesen, bevor Sie beispielsweise zu einem Anruf
übergegangen sind
2

Ich habe einen Spice mi-435 (nur in Indien verkauft) mit einem RAM von nur 340M. Verdammt, die Auslagerungsdateien helfen mir sehr. Auf meinem Telefon läuft ICS mit so wenig RAM und es wurden definitiv viele Speichermangelzustände registriert, und dort hilft die Auslagerungsdatei sehr. Alle Anwendungszustände werden an Swap übertragen, wenn sie nicht aktiv verwendet werden. Dies gibt meinem Telefon Raum für mehr Anwendungen und RAM-hungrige Apps, um reibungslos zu laufen, mit viel, viel weniger Verzögerung als zuvor. Wenn ich die App öffne, die ich zuvor verwendet habe, tritt jedoch ein Problem auf. Das Laden des SD-Speichers nimmt einige Zeit in Anspruch, da der SD-Speicher viel langsamer ist als der integrierte Hochgeschwindigkeits-RAM. Die Auslagerungsoption ist jedoch besser für so weniger RAM. Ich würde empfehlen, Partition für RAM weniger als 512M, aber nicht für mehr als 512M zu tauschen.

Hoffe es ist hilfreich.

sambit Router
quelle
1

Swap-Datei hilft auch auf Systemen mit höherem RAM. Mein Quad-Core-1-GB-RAM-7-Zoll-Tablet erhält einen wichtigen Multi-Tasking-Schub durch das Einspannen in einen 2-GB-Swap auf der UHS-1-Micro-SD-Karte. Und natürlich sinkt der Preis für Speicher rapide, und selbst bei konstantem Schreibzugriff soll Flash noch Jahre halten.

Ich bin im Grunde der Meinung, weil der Leistungsunterschied so radikal ist, dass wahrscheinlich jeder mit weniger als einer wirklich großen Menge an RAM dies tun sollte. In der Tat sollte es wahrscheinlich als Standard-Option in Android kommen (zusammen mit größeren App-Caches und einem Internet-Cache in der richtigen Größe).

Ich meine, Sie haben eine 64-128 GB Micro-SD (UHS-1) oder sogar die UHS-2, die in diesem Jahr herauskam, plus eine 16-64 GB interne NAND, oft "schnelle" NAND, die eine Art primitiver SSD oder Sogar SSDs, wie sie für Windows Slates verwendet werden - Sie füllen nicht gerade den gesamten Hochgeschwindigkeitsraum mit viel. Die Geschwindigkeit spielt nur bei Videos eine Rolle oder beim Laden von Apps in den Speicher - genau das ist hier der Fall.

Im Idealfall würden sich Hersteller mehr auf RAM als auf Auflösung oder zusätzliche Kerne konzentrieren, da die Systemgeschwindigkeit eindeutig von einem höheren RAM profitiert - und sie sollten wahrscheinlich auch die Geschwindigkeit des internen Speichers erhöhen (wie beim Umstieg auf Systeme vom Typ Full-SSD) , oder zumindest "fast" nand. Aber in der Zwischenzeit, während hohe Auflösungen dazu neigen, eine Art RAM-Defizit in allen Geräten zu verursachen, macht eine Auslagerungsdatei und das Zwischenspeichern auf eine einigermaßen schnelle externe SD viel Sinn.

In der Tat wäre es schön zu sehen, dass einige Browser auch weiterhin einen volleren Cache haben. Die meisten Browser sind entweder langsam oder mit geringer Funktionalität, selten schnell und mit vollem Funktionsumfang - und das liegt zum Teil daran, dass der Platz für den App-Cache auf dem internen Laufwerk klein ist. Sie sind für den Betrieb in Umgebungen mit wenig Arbeitsspeicher und wenig Speicher konzipiert, und diese ganze Geschichte ändert sich. Auch wenn der RAM nicht so viel hacken kann, wie er sollte, ist der Speicher dies mit Sicherheit, und er kann auf UHS-1-Standards (oder dem in diesem Jahr veröffentlichten UHS-2) ziemlich schnell verdammt sein, auch wenn er nicht " schnell "oder ssd.

Und die Kosten für externen Speicher sind wirklich Erdnüsse, auch für höhere Kapazität UHS-1. Mindestens 64 GB UHS-1 sind absolut erschwinglich (50 US-Dollar, aber weniger USD), viel billiger als das Gerät und 32 GB und darunter sind im Grunde genommen ein paar Zehner.

Es gibt wirklich viele Lektionen, die man vom Desktop lernen kann, besonders jetzt, wo die technischen Daten immer höher werden - die langsamste Leistungsverbindung ist das Laden vom Speicher zum RAM. Je mehr Sie dagegen tun können, desto besser.

Jamie
quelle