Tauschen Sie die Partitionsgröße auf einem 64-GB-RAM-Computer für speicherintensives Arbeiten aus


35

Ich habe 64 GB RAM und 240 GB SSD auf meinem Computer, die ich für speicherintensive Berechnungen (maschinelles Lernen, Data Mining usw.) verwenden werde. Die meisten Ratschläge, die ich im Internet gefunden habe, beziehen sich auf Computer mit 2 bis 8 GB RAM und sie empfehlen die doppelte Größe der RAM-Swap-Partition (also 128 GB).

Ist es sinnvoll, eine 128-GB-Swap-Partition zu erstellen? Welche Vorteile bringt mir die Erstellung einer riesigen Swap-Partition?

Verstehe ich das richtig, falls mir der physische Arbeitsspeicher ausgeht:

  1. Wenn ich keinen Swap habe, wird der Fehler "Nicht genügend Speicher" angezeigt
  2. Wenn ich Swap habe, werden einige RAM-Seiten in die Swap-Partition kopiert und das Programm läuft weiter (wenn auch langsamer).

Einige Leute sagen, es ist eine schlechte Idee, SSD zu tauschen, da es nur eine begrenzte Anzahl von Lese- / Schreibzyklen gibt. Wie schnell bei der Verwendung von Swap werden die Lese- / Schreibzyklen der SSD erschöpft (meines Wissens sind es etwa 50000 Schreib-IOPS)?

Ich benutze Linux ( Ubuntu 14.04 (Trusty Tahr)).

Vorerst sollte ein Swap mit 16 GB eingerichtet werden (RedHat schlägt beispielsweise 4 GB vor), und 16 GB Festplattenspeicher sind eigentlich keine große Sache.


1
Anstatt sich explizit auf Swap zu verlassen, sollten Sie in Betracht ziehen mmap, Ihre Arbeitsseiten zuzuweisen , wenn Sie die Größe Ihrer Arbeitsumgebung im Voraus kennen oder bereit sind, eine etwas einfachere Speicherverwaltung durchzuführen. Dann entspricht Ihr Swap-Betrag genau dem Betrag, den Sie für Ihren Prozess benötigen.
flauschiger

5
Die Empfehlung, "doppelt so viel RAM" zu verwenden, stammt aus früheren Zeiten, als Computer nur über wenig RAM verfügten. In mehreren Dokumenten wird angegeben, dass es hauptsächlich für Computer mit <2 GB RAM gilt. Darüber hinaus hängt die Swap-Größe hauptsächlich davon ab, was Sie mit der Maschine machen.
John WH Smith

Siehe auch diese Fragen und Antworten zu Serverfehlern - Wenn Sie Java (und möglicherweise andere Apps) ausführen, möchten Sie sicherstellen, dass Sie über genügend Swap-Speicher verfügen, um die Speicherzuweisungen zu erhöhen. Ich persönlich halte mich an den RHEL-Standard von RAM + 2 für meine Swap-Partition
warren

2
Schade, dass die meisten Kommentare hier entfernt wurden. Hinzufügen in: Es ist übrigens erwähnenswert, dass Sie, wenn Ihr Kernel dies unterstützt, Ihre Swap-Partition möglicherweise mit discardauf einer SSD mounten möchten . Vergessen Sie auch nicht (und dies wurde in einer Antwort weiter unten erwähnt), dass Sie anstelle einer Partition eine Datei verwenden können, um die Verwaltung zu vereinfachen (und keine Leistungseinbußen auf einer SSD aufgrund von z. B. Fragmentierung).
Jason C

1
Wenn Sie eine speicherintensive Anwendung wie SVM-Lernen haben und kein RAM mehr und kein Austausch mehr möglich ist, wird alles zu träge, um wiederhergestellt zu werden, und Sie müssen nur noch den Stecker ziehen (das ist mir ein paar Mal passiert). . Sie möchten wahrscheinlich, dass Ihr Prozess durch OOM beendet wird, wenn er ausgetauscht wird, damit Sie zumindest Änderungen vornehmen und erneut beginnen können. Vielleicht ist es mit SSD-Laufwerken aber nicht so schlimm. Ich würde auch die OOMK Einstellungen überprüfen - es mich auf Ubuntu passiert ist, dass manchmal Prozesse bekamen OOM-getötet , als es noch vielen ram war verlassen , weil sie aggressiv zugeordnet
pqnet

Antworten:


35

Sie brauchen wahrscheinlich nur eine kleine Menge Swap. Wenn Sie über ausreichend RAM für das typische Funktionsspektrum Ihres Computers verfügen, und ich bin mir ziemlich sicher, dass dies der Fall ist, müssen Sie nur zwei Dinge austauschen:

  1. Sie benötigen Swap, um Informationen abzurufen, auf die wahrscheinlich nie über den Arbeitsspeicher zugegriffen werden kann, um mehr Speicherplatz für den Festplatten-Cache freizugeben. Viele Anwendungen werden beim Systemstart ausgeführt und es wird nie wieder auf sie zugegriffen. Sie wollen nicht, dass Seiten, die sie verschmutzt haben, für immer im RAM stecken. Sie müssen also tauschen, um sie zu halten.

  2. Sie müssen tauschen, um Zuweisungen abzudecken, die niemals ausgefüllt werden. Dieser Platz muss einfach verfügbar sein, auch wenn er nicht genutzt wird. Andernfalls muss sich das System weigern, Speicher zuzuweisen, auch wenn es über ausreichend freien physischen RAM verfügt, da der Sicherungsspeicher nicht ausreicht, um alle Zuweisungen gleichzeitig verwenden zu können.

Keines von diesen erfordert eine große Menge an Swap. 16 GB sollten zum Beispiel mehr als genug sein. Der Zweck ist nicht, dass Sie größere Arbeitssets auf Kosten der Geschwindigkeit ausführen. Der Zweck ist, dass Sie Ihre 64 GB effektiv nutzen und sie nicht mit Müll verstopfen oder für Edge Cases reservieren müssen, die niemals passieren werden.

(Ich stimme Bert zu, dass 4 GB wahrscheinlich ausreichen werden.)


2
@wrwt Platzieren Sie Ihre Auslagerungspartition am Ende des Laufwerks (oder zumindest nach Ihrer Datenpartition). Dadurch wird die Größenänderung schneller und weniger schreibintensiv, falls Sie sich jemals dafür entscheiden sollten, sie anzupassen (genauer gesagt, die Größe der Datenpartition wird geändert) einfacher unterzubringen, da Sie den Start nicht verschieben müssen). Bei SSDs besteht kein Zusammenhang zwischen Position und Leistung, wie dies manchmal bei mechanischen Laufwerken der Fall ist.
Jason C

Während diese Antwort für die meisten Hobbyisten wahrscheinlich ausreicht, ist sie für echte Server ein schlechter Ratschlag - die Antwort hängt davon ab, wie die Anwendung geschrieben wurde, denn wenn der Swap-Speicher nicht ausreicht, wird ein Killer mit unzureichendem Speicher aktiviert und beendet Prozess zufällig (ja, Sie lesen das richtig; "zufällig")
Soren

3
@Soren Dies ist ein Superuser, kein Serverfehler. ;) Es ist sicherlich richtig, dass die Einstellung des Swap Space nicht die einzige Entscheidung ist, die Sie für "echte Server" treffen müssen. Sie müssen auch Entscheidungen über Dinge wie Overcommit treffen, Sie müssen möglicherweise den OOM-Killer optimieren und so weiter. (Und die Antworten werden viel komplizierter, wenn Sie erwarten, dass Ihr Arbeitsspeicher den physischen Arbeitsspeicher übersteigt. Aber fast niemand betreibt mehr Maschinen auf diese Weise.)
David Schwartz

5
Linux überlastet den Speicher, auch wenn kein Swap aktiviert ist. OOMK wird nur verarbeitet, wenn tatsächlich zu viel Speicher verwendet wird. Der zweite Punkt der Antwort ist also falsch.
Ruslan

1
@MaciejPiechotka Oder verwenden Sie eine Datei.
Jason C

29

RedHat empfiehlt 4 GB auf einem Computer mit 64 GB .

Größentausch ist jedoch eher eine Kunst als eine Wissenschaft. Dies hängt davon ab, wofür der Computer verwendet wird, wie viel Speicherplatz und Speicher Sie haben und von anderen Faktoren. Denken Sie daran, dass Sie später immer noch einen Swap hinzufügen können.

Die Verwendung der 2X-Regel für physischen Speicher ist veraltet, da die Anzahl der Speichersysteme heutzutage nicht mehr aktuell ist. Es wird jedoch nicht empfohlen, mit einem Swap von Null zu arbeiten, es sei denn, Sie wissen, was Sie tun. Die Empfehlung von 4 GB ist ein guter Ausgangspunkt.


12
+1 für den letzten Absatz. Die 2x-Empfehlung stammt aus der Zeit, als die meisten Computer nicht über genügend RAM verfügten, um ein Austauschen bei normaler Verwendung zu vermeiden. Aus subjektiven Gründen wurde das 2x-Limit als eine Zahl ausgewählt, die groß genug ist, damit der Computer ungewöhnlich langsam wird, bevor der Swap ausgeht.
Dan Neely

1
2X funktionierte auch gut, wenn die Systeme 4 GB / 8 GB RAM und Hunderte Gigabyte Festplattenspeicher hatten. Sicher, es war wahrscheinlich mehr als nötig, aber was war der Schaden? Aber jetzt, wo Systeme über 16 GB / 64 GB RAM und 128 GB / 256 GB SSDs verfügen, liegt der Schaden auf der Hand.
David Schwartz

12

Unter Linux benötigen Sie genügend Swap, damit der insgesamt verfügbare virtuelle Speicher (RAM + SWAP) für alle Prozesse, die Sie gleichzeitig ausführen möchten, und deren maximale virtuelle Stellfläche ausreicht.

Wenn Sie weniger Auslagerungen oder überhaupt keine Auslagerungen haben, tritt die folgende Situation auf: Dem System geht der Speicherplatz für die Zuweisung einer Seite aus. Dies ist jedoch immer noch ein schwacher Fehler, auch wenn es keinen Auslagerungsvorgang gibt, da das System viele "Opferseiten" enthält, die entfernt werden können, um Platz zu schaffen: nämlich die Seiten aller dateigesicherten Speicherzuordnungen, wie z. B. ausführbare Dateien und gemeinsam genutzte Bibliotheken!

Da Ihr System immer mehr Speicherplatz für Daten benötigt (die nicht ausgetauscht werden können), wird der ausführbare Code (gemeinsam genutzte Bibliotheken und ausführbare Dateien) zunehmend evakuiert, was zu einer schrecklichen Überlastung führt, da der Arbeitssatz immer enger wird Seiten.

Swap Space behebt dieses Problem, indem es einen Platz für das Auslagern anonymer (nicht dateizugeordneter) Seiten bietet: die Seiten, die für die Speicherzuweisung verwendet werden, sodass ausführbarer Code im Speicher verbleiben kann.

Wenn Sie jedoch nicht häufig speicherintensive Aufgaben ausführen, können Sie möglicherweise die meiste Zeit ohne Swap arbeiten und eine Swap-Datei (anstelle einer dedizierten Partition) manuell konfigurieren, wenn Sie sie benötigen. Um eine Auslagerungsdatei im laufenden Betrieb zu erstellen, müssen Sie root werden und:

dd if=/dev/zero of=/path/to/swapfile size=$((1024 * 1024)) count=32768  # 32 Gb.
mkswap /path/to/swapfile
swapon /path/to/swapfile

Wenn Sie es nicht mehr brauchen:

swapoff /path/to/swapfile
rm /path/to/swapfile

Anmerkungen:

  1. Sie müssen auf keinen Fall mindestens so viel Swap konfigurieren, wie Sie über RAM verfügen. Diese Faustregel stammt aus Betriebssystemen, in denen es aufgrund der Art und Weise, wie das Austauschen entworfen wurde, eine harte Anforderung war.

  2. Es gibt Möglichkeiten, Linux zum Scheitern zu bringen, wenn kein Speicher verfügbar ist, und zwar durch Manipulieren der Werte dieser sysctl-Einträge:

    vm.overcommit_memory
    vm.overcommit_ratio
    

2
+1 für die tatsächliche Bezugnahme auf Kernelkonfigurationsparameter - Der Schlüssel liegt im Teil der Frage If I have no swap, I get an 'out of memory' error- das heißt false- die Wahrheit ist, dass, wenn der Swap-Bereich ausgeht, der Killer für nicht genügend Arbeitsspeicher aktiv wird und tötet Ein zufälliger Prozess, um Speicherplatz freizugeben. Die Menge des erforderlichen Swap-Speicherplatzes hängt also davon ab, wie Ihre Anwendung geschrieben wurde.
Soren

@Soren Es ist wahrscheinlich, dass der größte Teil des Arbeitsspeichers mit tatsächlichen Daten gefüllt ist, so dass der Killer für zu wenig Arbeitsspeicher keinen großen Unterschied macht. Thx für "die Wahrheit" sowieso.
Wrwt

3

Es gibt weitere Überlegungen. Wenn Sie Suspend benötigen / möchten, benötigen Sie mindestens die Größe Ihres Arbeitsspeichers und einige mehr. Es klingt jedoch unwahrscheinlich, dass Sie es benötigen, da Sie anscheinend hauptsächlich ein Computer-Arbeitspferd bauen.

In diesem Fall sollten Sie eine Auslagerungsdatei anstelle einer Partition verwenden. Sie müssen sich keine Gedanken über die Größenänderung machen, müssen diese nicht entfernen oder später hinzufügen und müssen nicht neu partitionieren. Es gibt keine (spürbaren) Leistungseinbußen bei der Verwendung einer Datei über eine Partition. Wenn Sie es jemals brauchen, schauen Sie sich die Größe an und das wird Ihnen auch gute Tipps geben.


1
@ Kaz Ich denke, Sie sprechen über etwas anderes als Kaste ist. Wenn Sie Ihren Computer in den Ruhezustand versetzen, ausschalten und an der Stelle weitermachen möchten, an der Sie später aufgehört haben, benötigen Sie genügend Auslagerungsspeicher, um den gesamten Arbeitsspeicher zu speichern (ansonsten, wo soll er sich befinden?).
Amalloy

@amalloy Wenn Sie Ihren RAM in Ihrem Swap-Bereich gespeichert haben, wohin geht der Swap (wenn Sie daran denken, dass der Swap als Speicher behandelt wird - wenn er verloren geht, bedeutet dies, dass Sie den RAM verlieren).
NPSF3000,

2

Die Workload, die Sie auf den Computer anwenden möchten, benötigt eine bestimmte Menge an Arbeitsspeicher (denken Sie daran, der Gleichung genügend Speicher hinzuzufügen, um Spitzenlasten zu verarbeiten), und Sie müssen Ihren Computer so konfigurieren, dass mindestens dieser Speicher verfügbar ist.

Moderne Betriebssysteme bieten virtuellen Speicher als Kombination aus physischem Speicher und Auslagerungsspeicher. Wenn Sie also mehr Speicher benötigen, als der Computer zur Verfügung hat, müssen Sie genügend Auslagerungsspeicher hinzufügen, um die Lücke zu füllen. Das heißt, wenn Sie maximal 80 GB benötigen und der Computer 64 GB hat, benötigen Sie einen 16-GB-Swap.

In der Regel werden Sie von Betriebssysteminstallateuren aufgefordert, einen ersten Auslagerungsbereich einzurichten (da dies der einfachste Bereich ist und selbst kleine Computer installieren können). Es hat sich herausgestellt, dass die Größe des virtuellen Speichers für typische Unix-Vorgänge eine gute Faustregel ist Das Dreifache des physischen Speichers. Dies wird normalerweise empfohlen. Sie wissen jedoch mehr über das Verwendungsmuster, sodass Sie dies gegebenenfalls ändern können.

Es ist nichts falsch daran, ohne Swapspace zu arbeiten, wenn der Speicherdruck immer geringer ist. Linux verwendet transparent nicht verwendeten Speicher als Festplatten-Cache.


2

Eine viel bessere Idee als "viel Tausch" besteht darin, Ihre Arbeit (neu) zu organisieren, damit die Arbeitssätze in den Speicher passen, und dann das Dateisystem zu verwenden, um die von Ihnen geleistete Arbeit zu speichern und abzurufen. Das heißt, anstatt das Betriebssystem zu zwingen, zu erraten, wie Ihre Speicherverwendungsmuster aussehen werden, verwenden Sie das, was Sie über Ihre Probleme wissen, um Ihre Speicherverwendungsmuster zu steuern.

Als zufälliges Beispiel, das für mich in diesem Sommer unmittelbar relevant ist ... Um das quadratische Sieb zu implementieren, muss ein großes (scheinbar) zusammenhängendes Array zum Markieren vorhanden sein (mit einem komplizierten Algorithmus, dessen Details für dieses Beispiel eigentlich keine Rolle spielen). Das Array muss ~ 100 Giga-Einträge haben, also problemlos im 1 TB-Bereich. Ich könnte so tun, als würde ich das zuweisen und das Betriebssystem eine erstaunliche Menge ineffizienter Auslagerungen durchführen lassen, um Seiten in den Arbeitsspeicher und aus dem Arbeitsspeicher zu bekommen und alle sequentiellen Schreibvorgänge durch das Array zu unterstützen. Anstatt etwas zu tun, das nur auf den Kopf gestellt ist, habe ich mir vorgenommen, ein viel kleineres Array zuzuweisen, das genau in den Speicher passt, und dieses kleine Array dann wiederzuverwenden, um den Rest des großen Arrays iterativ in Slices abzudecken. Ich habe auch das Betriebssystem entfernt, die laufenden Dienste entfernt, die Shell ersetzt,

Die SSD ist zwar schnell, aber bei weitem nicht so schnell wie die Organisation Ihrer Berechnung, um dieselben Vorgänge auszuführen, ohne jemals zum Tauschen anzuhalten.


1

Wie die anderen erwähnten, ist eine Swap-Partition eine gute Idee, auch wenn Sie über genügend RAM verfügen. Es ist keine gute Idee, es auf eine SSD zu legen. Die häufigen Schreibvorgänge auf einer Swap-Partition werden Ihr Laufwerk möglicherweise strapazieren.

Wenn Sie einen freien USB 3.0-Anschluss haben, würde ich die Verwendung eines Flash-Laufwerks als Swap-Speicher empfehlen. Es gibt viele Hochgeschwindigkeits-Flash-Laufwerke, die so schnell sind wie Ihre SSD, aber viel billiger - billig genug, um sie zu ersetzen, wenn sie anfängt zu versagen. Eine schnelle Suche bei Amazon zeigt, dass es viele anständige 16-GB-USB-3.0-Flash-Laufwerke für unter 20 US-Dollar und sogar einige 64-GB-Laufwerke für unter 60 US-Dollar gibt.

Partitionieren Sie das gesamte Flash-Laufwerk als Auslagerungsspeicher, und Sie haben Auslagerungsspeicher, wenn Sie ihn benötigen, und Sie können beruhigt davon ausgehen, dass der wiederholt geschriebene Speicher leicht (und kostengünstig) austauschbar ist.


3
+1 für das Nicht-Wechseln zu einer SSD, -1 für das Wechseln zu einer Komponente, die bei einer solchen Verwendung eine sehr kurze Lebensdauer hat.
Aviator45003

1
@TC ist richtig, ArmanX - wenn Sie versuchen, die Verwendung von Flash (SSD) zu vermeiden, warum sollten Sie Flash auf USB verwenden? Das ist irrational.
Warren

2
@TC: Es ist eine ungerechtfertigte urbane Legende, keine SSD zum Tauschen zu verwenden, weil das Medium abgenutzt ist. Tauschen findet nicht "die ganze Zeit" statt, aber selten. Darüber hinaus wurde dies nach der Veröffentlichung von Win7 bei Microsoft eingehend untersucht, sodass die typischen Zugriffsmuster für das Austauschen von SSDs durchaus akzeptabel sind (das ist Windows, nicht Ubuntu, aber es ist wahrscheinlich, dass Linux nicht viel schlechter abschneidet). Sie haben hundert (oder tausend) Mal mehr Schreibvorgänge, die Ihre SSD zermürben, weil dumme Protokolldateien vorliegen, die niemand jemals liest (normalerweise werden alle Zeilen synchronisiert).
Damon

Die Logik ist fehlerhaft: Wenn der Thumbdrive tatsächlich so schnell ist wie die SSD, warum ist er dann billiger?
Agent_L

Es ist ein Gleichgewicht. Einerseits ist es eine gute Idee, eine Auslagerungsdatei zu haben. Wenn eine Auslagerungsdatei eine SSD verschlissen hat (was Ihnen jedoch recht ist, spielt es wahrscheinlich keine Rolle), ist es besser, einen billigen Ersatz zu verwenden - und ein Flash-Laufwerk für 20 US-Dollar ist viel besser als eine SSD für mehr als 100 US-Dollar.
ArmanX

1

Sie werden auch mit 1 GB (und wahrscheinlich weniger) Swap in Ordnung sein. Mein Arbeitscomputer verbraucht normalerweise nicht mehr als 140-150 MiB. Ein Gigabyte ist ausreichend für die Überversorgung.
Wenn Sie keine Aufgaben berechnen, für die Datasets mit Hunderten von Gigabyte erforderlich sind und auf die (dies ist wichtig!) Daten mehr oder weniger auf einmal zugegriffen wird, möchten Sie niemals einen Swap haben, der viel größer ist. Andererseits funktioniert die einfache Speicherzuordnung einer Datendatei für diese Anwendung genauso gut.

Aber mehr Tausch hilft mehr, oder? Mehr von allem ist immer besser!

Überlegen Sie, welchen Unterschied ein Swap von beispielsweise 16GiB macht (oder denken Sie an 64GiB). Wenn Sie diese 16GiB niemals verwenden, können Sie sie auch nicht als erstes beiseite legen. Aber was passiert, wenn Sie sie verwenden? Die Festplatte ist im Vergleich zum Hauptspeicher extrem langsam. Selbst mit einer SATA-600-SSD dauert die Übertragung von 16GiB zwischen 30 und 40 Sekunden und bei einigen anderen Konfigurationen das 2-4-fache.
Jetzt wird jemand unweigerlich einwenden, dass Sie eher ein Dutzend oder so 4-kB-Seiten durchblättern, nicht 16-GB-Seiten auf einmal. Das ist zwar wahr, aber der Punkt steht dennoch. Wenn Sie nur ein paar Seiten ein- und auslagern müssen, benötigen Sie keine 16 GB Swap, aber wenn Sie 16 GB Swap benötigen, werden Sie diese auch übertragen (auf die eine oder andere Weise).

Theoretisch könnten 99,9% aller Benutzer sogar einen 64GiB-Rechner (oder einen 8 + GiB-Rechner) ohne Tausch verwenden und bemerken höchstwahrscheinlich nie, dass etwas fehlt. Dies ist jedoch nicht ratsam.
Erstens ist es nicht optimal, weil das Betriebssystem weniger Möglichkeiten hat, zu verwerfen, wenn der physische Speicher knapp wird. Es gibt zwei Möglichkeiten: Tauschen Sie etwas aus, das nicht verwendet wird, oder werfen Sie Seiten aus dem Puffercache. Wenn Sie keinen Swap haben, gibt es nur eine Möglichkeit. Das Wegwerfen von Seiten aus dem Puffercache ist harmlos, kann jedoch die Leistung merklich beeinträchtigen.
Zweitens können private anonyme Zuordnungen einfach fehlschlagen, wenn es keinen Swap gibt. Das wird normalerweise nicht passieren, aber irgendwann, wenn nicht genügend physischer Speicher zur Verfügung steht, um alle zu befriedigen, und es keinen Swap gibt, hat das Betriebssystem nur diese eine Wahl, außer ...
Drittens kann der gefürchtete OOM-Killer einspringen Dies bedeutet, dass ein mehr oder weniger zufälliger Prozess getötet wird. Nein danke. Dies ist nicht etwas, was Sie wollen.

Tipps wie das X-fache des Arbeitsspeichers, den Sie benötigen, kommen von Leuten, die etwas wiederholen, was sie über Jahrzehnte gehört (und nicht verstanden haben!), Von jemandem, der etwas wiederholt hat, was sie über Jahrzehnte gehört (und nicht verstanden haben!) vor.
Die "Use 2X your RAM" -Regel war in den 1980er und 1990er Jahren eine leicht zu merkende Faustregel, es war nie die "goldene Wahrheit" (nur etwas, das für die meisten Benutzer in Ordnung war) und sie gilt heutzutage überhaupt nicht mehr .

Sie sollten eine angemessene Menge an Swap haben, die Sie sich leicht leisten können (sagen wir ein Gigabyte), damit das Betriebssystem einige veraltete Dinge auslagern kann, und damit die Welt nicht sofort untergeht, wenn Sie einmal nach etwas mehr Speicher fragen. Aber das ist es.

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.