Programm im Swap
-
- Beiträge: 28
- Registriert: 18.08.2019 03:05:16
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Berlin
Programm im Swap
Aloha,
sollte ich im falschen Unterforum sein, so bitte ich um Vergebung.
Ich möchte erreichen, dass eine Java Anwendung aussschließlich im Swap ausgelagert und betrieben wird.
Hat jemand eine Idee wie man dies umsetzen kann?
sollte ich im falschen Unterforum sein, so bitte ich um Vergebung.
Ich möchte erreichen, dass eine Java Anwendung aussschließlich im Swap ausgelagert und betrieben wird.
Hat jemand eine Idee wie man dies umsetzen kann?
„Wenn es zwei oder mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen und eine davon in einer Katastrophe enden kann, dann wird es jemand genau so machen.“
Re: Programm im Swap
So funktioniert Swap nicht. Wenn auf ausgelagerte Daten zugegriffen werden soll, werden die in den Arbeitsspeicher geladen. Direkt auf die Daten im Swap zuzugreifen, ist nicht vorgesehen.
-
- Beiträge: 28
- Registriert: 18.08.2019 03:05:16
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Berlin
Re: Programm im Swap
Hmm, Danke für Deine Antwort.
Soweit hatte ich mich belesen, es soll wohl eine Möglichkeit geben zu beeinflussen wie schnell ausgelagert wird, dies ist jedoch nicht das was ich suche.
Deswegen dachte ich an eine Möglichkeit, dass an dem Zeitpunkt wenn das Programm eigendlich den Ram ansteuert, etwas das ganze abfängt und in einen vordefinierten Swap schiebt.
Ärgerlich.
Dennoch Danke für die Info.
Soweit hatte ich mich belesen, es soll wohl eine Möglichkeit geben zu beeinflussen wie schnell ausgelagert wird, dies ist jedoch nicht das was ich suche.
Deswegen dachte ich an eine Möglichkeit, dass an dem Zeitpunkt wenn das Programm eigendlich den Ram ansteuert, etwas das ganze abfängt und in einen vordefinierten Swap schiebt.
Ärgerlich.
Dennoch Danke für die Info.
„Wenn es zwei oder mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen und eine davon in einer Katastrophe enden kann, dann wird es jemand genau so machen.“
Re: Programm im Swap
Was willst du denn damit bezwecken?
Swap ist auf der Festplatte "simulierter" Hauptspeicher (RAM), und da Festplatten mindestens 100 mal langsamer als RAM sind, wird auch die Programmausführung von Programmen, die gerade ausgelagert (geswapt) sind, ebenfalls extrem verlangsamt. Daher ist der Kernel auch bestrebt, möglichst wenig zu swappen.
Swap ist auf der Festplatte "simulierter" Hauptspeicher (RAM), und da Festplatten mindestens 100 mal langsamer als RAM sind, wird auch die Programmausführung von Programmen, die gerade ausgelagert (geswapt) sind, ebenfalls extrem verlangsamt. Daher ist der Kernel auch bestrebt, möglichst wenig zu swappen.
-
- Beiträge: 28
- Registriert: 18.08.2019 03:05:16
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Berlin
Re: Programm im Swap
Jup.
Die Geschwindigkeit ist nicht das Problem, dafür hätte ich eine Idee.
Es geht darum, dass dieses Programm nebenbei läuft. Wenn es das sehr langsam macht, ist auch ok. Nur läuft es und baut konsequent den Ram voll. (Eine Ramerweiterung gibt das Board nicht her.) Und ein Arbeiten ist dann an diesem Rechner - nachvollziehbar - kaum noch möglich.
Daher suche ich nach besagter Möglichkeit, es im Swap zu halten.
Die Geschwindigkeit ist nicht das Problem, dafür hätte ich eine Idee.
Es geht darum, dass dieses Programm nebenbei läuft. Wenn es das sehr langsam macht, ist auch ok. Nur läuft es und baut konsequent den Ram voll. (Eine Ramerweiterung gibt das Board nicht her.) Und ein Arbeiten ist dann an diesem Rechner - nachvollziehbar - kaum noch möglich.
Daher suche ich nach besagter Möglichkeit, es im Swap zu halten.
„Wenn es zwei oder mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen und eine davon in einer Katastrophe enden kann, dann wird es jemand genau so machen.“
-
- Beiträge: 2049
- Registriert: 18.03.2012 21:13:42
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Programm im Swap
Was ist das fuer ein Programm? Wenn es momentan den Ram vollaufen laesst, dann laesst es dann halt die Festplatte volllaufen. Dann hast du auch nichts gewonnen. Erzaehl mal bitte die ganze Geschichte, vielleicht kann man dir dann einen guten Vorschlag machen.
Hilf mit unser Wiki zu verbessern!
Re: Programm im Swap
Dann ist dein Programm wohl nicht ganz fehlerfrei und/oder die Parameter deiner JVM sind für ein Hintergrundprogramm unpassend gewählt.deleted hat geschrieben:18.08.2019 18:12:36Es geht darum, dass dieses Programm nebenbei läuft. Wenn es das sehr langsam macht, ist auch ok. Nur läuft es und baut konsequent den Ram voll.
-
- Beiträge: 28
- Registriert: 18.08.2019 03:05:16
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Berlin
Re: Programm im Swap
Es handelt sich um Yacy. Eine Suchmaschiene. Wie google, Bing etc... yacy.net
Man kann in der Tat die JVM konfigurieren, jedoch liegt das Problem eher an meinem Rechner. Ich habe einfach zu wenig Ram.
Daher meine Idee, dass ganze etwas auf zu bohren. Ich habe hier noch eine Raidkarte zu liegen. Bestückt mit zwei mSata's, Raid0 könnte man einen zweiten Swap anlegen und yacy dort drin machen lassen. Ist sicherlich nicht so toll, jedoch sollte etwas mehr Geschwindigkeit bei rauskommen als in der jetzigen - Standart - Konfiguration. Auch wenn der Swap aktuell auf einer SSD liegt.
Um zu verhindern das der Kernel anfängt alles hin und her zu schieben, mein Gedanke yacy im eigenen Swap "einzusperren".
Man kann in der Tat die JVM konfigurieren, jedoch liegt das Problem eher an meinem Rechner. Ich habe einfach zu wenig Ram.
Daher meine Idee, dass ganze etwas auf zu bohren. Ich habe hier noch eine Raidkarte zu liegen. Bestückt mit zwei mSata's, Raid0 könnte man einen zweiten Swap anlegen und yacy dort drin machen lassen. Ist sicherlich nicht so toll, jedoch sollte etwas mehr Geschwindigkeit bei rauskommen als in der jetzigen - Standart - Konfiguration. Auch wenn der Swap aktuell auf einer SSD liegt.
Um zu verhindern das der Kernel anfängt alles hin und her zu schieben, mein Gedanke yacy im eigenen Swap "einzusperren".
„Wenn es zwei oder mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen und eine davon in einer Katastrophe enden kann, dann wird es jemand genau so machen.“
Re: Programm im Swap
Das widerspricht schlicht jeder Logik. Wenn du ein Programm zwingend auslagerst, muß es für jeden Fliegenpfurz wieder ins RAM geladen, ein Stück weit ausgeführt und wieder ausgelagert werden. Das führt zu dermassen viel Festplattenaktivität, daß auch die restliche Maschine zum Stillstand kommt. Dein ganzer Rechner würde durch so eine Aktion also komplett zusammenbrechen.deleted hat geschrieben:18.08.2019 20:55:56Um zu verhindern das der Kernel anfängt alles hin und her zu schieben, mein Gedanke yacy im eigenen Swap "einzusperren".
Du kannst versuchen, deinen Prozeß mit nice und ionice so weit zurück zu drängen, daß die anderen Prozesse nicht mehr behindert werden, aber auslagern muß man dem Kernel überlassen, das geht garantiert nicht gut, wenn man das zu Fuß handhaben könnte.
Re: Programm im Swap
Wie die Vorposter bereits ausführten, so gehts nicht, aber vielleicht kannst Du dem Startaufruf noch nen paar hilfreiche Parameter mitgeben? Kannst ja mal im yacy Forum fragen, was die so an Optimierungen bezüglich Speichernutzung vorschlagen: https://forum.yacy-websuche.de/
-
- Beiträge: 28
- Registriert: 18.08.2019 03:05:16
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Berlin
Re: Programm im Swap
Ärgerlich, da habe ich wohl leienhaft zu kurz gedacht.
Die Logik dahinter war, sofern das mit dem "einsperren" nicht funktioniert, ein Tool zu haben was eine bestimmte Menge Ram fest adressiert und dann auf den zweiten Swap auslagert. Sozusagen den Ram teilt.
Schade, bevor jedoch das komplette Forum im Gelächter zusammenbricht, werde ich mich nach passenderer Hardware umsehen.
Danke das ihr euch mit reingedacht habt. Danke auch an @MSfree für den Tipp mit nice und ionice.
Die Logik dahinter war, sofern das mit dem "einsperren" nicht funktioniert, ein Tool zu haben was eine bestimmte Menge Ram fest adressiert und dann auf den zweiten Swap auslagert. Sozusagen den Ram teilt.
Schade, bevor jedoch das komplette Forum im Gelächter zusammenbricht, werde ich mich nach passenderer Hardware umsehen.
Danke das ihr euch mit reingedacht habt. Danke auch an @MSfree für den Tipp mit nice und ionice.
„Wenn es zwei oder mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen und eine davon in einer Katastrophe enden kann, dann wird es jemand genau so machen.“
Re: Programm im Swap
Och, so ganz blöd war die Idee ja nicht. Nur dass Swap halt anderes funktioniert als gedacht. Das Problem ist eher, dass er grundsätzlich hin- und herschaufeln muss, nicht wo er es hinschaufelt.
Und mit einem Teil der Idee hattest Du ja auch Recht. Ja, man kann sagen "nutz diese Menge Speicher". Dafür braucht es hier auch kein Tool, man kann der Java VM z.B. minimalen und maximalen Speicher mitteilen. Siehe "man java", z.B.
Was die richtigen Werte bei yacy sind, oder ob weitere/andere Schalter Besseres bewirken, oder ob sowas evtl sogar für das Programm schädlich ist, kann Dir aber nur jemand sagen, der entweder die Doku gelesen hat (falls es denn da drin steht), die Optionen alle mal durchprobiert hat oder sich mit dem Code auskennt. Daher deren Forum, dort ist es wahrscheinlicher, dass dir jemand helfen kann.
Nur das mit dem Swap ist halt anders. Und bei Java spielen noch weitere Faktoren rein, z.B. etwas aus der "Fluch und Segen"-Kiste namens Garbage Collection (GC): Java versucht seine Speicheranfoderungen selbst in den Griff zu bekommen und scheitert dabei manchmal auf ganzer Linie. Aufräumen ist nett, aber teuer. Grade wenn in unregelmässigen Abständen neue Daten dazukommen, dann wird leider x-mal "bitte gibt mir noch etwas kleinen Speicher" statt dem effiezenteren "bitte gib mir ein grosses Stück, ich kömmer mich selbst drum" gemacht und so muss viel geputzt werden. Aber auch dort man kann unterstützend durch Setzen der richtigen Werte eingreifen, es gibt da mehrere Schrauben eine wäre z.B. das da
Und mit einem Teil der Idee hattest Du ja auch Recht. Ja, man kann sagen "nutz diese Menge Speicher". Dafür braucht es hier auch kein Tool, man kann der Java VM z.B. minimalen und maximalen Speicher mitteilen. Siehe "man java", z.B.
Code: Alles auswählen
The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units:
-Xmx83886080
-Xmx81920k
-Xmx80m
Nur das mit dem Swap ist halt anders. Und bei Java spielen noch weitere Faktoren rein, z.B. etwas aus der "Fluch und Segen"-Kiste namens Garbage Collection (GC): Java versucht seine Speicheranfoderungen selbst in den Griff zu bekommen und scheitert dabei manchmal auf ganzer Linie. Aufräumen ist nett, aber teuer. Grade wenn in unregelmässigen Abständen neue Daten dazukommen, dann wird leider x-mal "bitte gibt mir noch etwas kleinen Speicher" statt dem effiezenteren "bitte gib mir ein grosses Stück, ich kömmer mich selbst drum" gemacht und so muss viel geputzt werden. Aber auch dort man kann unterstützend durch Setzen der richtigen Werte eingreifen, es gibt da mehrere Schrauben eine wäre z.B. das da
mehr dazu steht in der manpage. Man braucht aber etwas Ahnung von den Interna, also "frag nebenan", die Leute dort werden eher helfen können.
The young generation region of the heap is used for new objects. GC is performed in this region more often than in other regions. If the size for the young generation is too small, then a lot of minor garbage collections will be performed. If the size is too large, then only full garbage collections will be performed, which can take a long time to complete. Oracle recommends that you keep the size for the young generation between a half and a quarter of the overall heap size.
-
- Beiträge: 28
- Registriert: 18.08.2019 03:05:16
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Berlin
Re: Programm im Swap
Vielen Dank @eggy. ich werde mich dort schlau machen.
„Wenn es zwei oder mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen und eine davon in einer Katastrophe enden kann, dann wird es jemand genau so machen.“