Programm im Swap

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
deleted
Beiträge: 28
Registriert: 18.08.2019 03:05:16
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Programm im Swap

Beitrag von deleted » 18.08.2019 11:43:03

Aloha,

sollte ich im falschen Unterforum sein, so bitte ich um Vergebung. :lol:

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.“

DeletedUserReAsG

Re: Programm im Swap

Beitrag von DeletedUserReAsG » 18.08.2019 12:00:42

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.

deleted
Beiträge: 28
Registriert: 18.08.2019 03:05:16
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Re: Programm im Swap

Beitrag von deleted » 18.08.2019 14:31:32

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.
„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.“

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: Programm im Swap

Beitrag von MSfree » 18.08.2019 14:40:33

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.

deleted
Beiträge: 28
Registriert: 18.08.2019 03:05:16
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Re: Programm im Swap

Beitrag von deleted » 18.08.2019 18:12:36

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.
„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.“

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Programm im Swap

Beitrag von cronoik » 18.08.2019 18:21:18

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!

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Programm im Swap

Beitrag von bluestar » 18.08.2019 18:33:56

deleted hat geschrieben: ↑ zum Beitrag ↑
18.08.2019 18:12:36
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.
Dann ist dein Programm wohl nicht ganz fehlerfrei und/oder die Parameter deiner JVM sind für ein Hintergrundprogramm unpassend gewählt.

deleted
Beiträge: 28
Registriert: 18.08.2019 03:05:16
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Re: Programm im Swap

Beitrag von deleted » 18.08.2019 20:55:56

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".
„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.“

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: Programm im Swap

Beitrag von MSfree » 18.08.2019 21:45:54

deleted hat geschrieben: ↑ zum Beitrag ↑
18.08.2019 20:55:56
Um zu verhindern das der Kernel anfängt alles hin und her zu schieben, mein Gedanke yacy im eigenen Swap "einzusperren".
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.

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.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Programm im Swap

Beitrag von eggy » 18.08.2019 23:36:40

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/

deleted
Beiträge: 28
Registriert: 18.08.2019 03:05:16
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Re: Programm im Swap

Beitrag von deleted » 18.08.2019 23:56:54

Ä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. :lol:

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.“

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Programm im Swap

Beitrag von eggy » 19.08.2019 08:39:53

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.

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
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

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.
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.

deleted
Beiträge: 28
Registriert: 18.08.2019 03:05:16
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Re: Programm im Swap

Beitrag von deleted » 20.08.2019 21:30:21

Vielen Dank @eggy. ich werde mich dort schlau machen. :THX:
„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.“

Antworten