Ich habe eine Frage zu R und RStudio auf meinem Windows Server 2012 R2 Datacenter.
Ich greife direkt auf den Server zu und der Server hat 128 GB RAM. Aber wenn ich mein R-Skript ausführe, zeigt mir der Taskmanager an, dass R nur bis zu 2 MB RAM verwendet und insgesamt 4 % des RAM des gesamten Systems genutzt werden.
Ich habe die aktuelle R-Version installiert und verwende die 64-System-Option in RStudio. Wenn ich meinen Speicher überprüfe memory.limit()
, sagt R, dass ich 1.759219e+13
Speicher habe, was nicht möglich ist. Ich kann das Speicherlimit oder sonst etwas nicht ändern.
Immer wenn ich R direkt über Rgui aufrufe und die Zeilen eintippe, sagt mir R Folgendes
> memory.limit()
[1] 131023
> memory.size()
[1] 31.5
Immer wenn ich R auf meinem Laptop verwende, verbraucht es etwa 5 GB RAM. Ich frage mich also, was hier passiert.
Fragen:
1.) Kann ich R und RStudio auf einem Windows 2012 Server verwenden (ich denke, das sollte in Ordnung sein, obwohl ich im Internet nicht viele Informationen dazu gefunden habe)
2.) Wie kann ich dem R-Prozess mehr Speicher zur Verfügung stellen, damit die Berechnung schneller wird?
Vielen Dank für Ihre Hilfe. Da dies meine erste Frage ist, lassen Sie es mich bitte wissen, wenn Sie weitere Informationen benötigen.
Bearbeiten
Vielleicht hilft das, mein Problem zu erklären. Warum kann der R-Prozess nicht mehr Leistung erreichen?
Ressourcen-Monitor und Task-Manager:
Antwort1
also, ich habe ein paar Dinge herausgefunden und wollte sie mit Ihnen teilen.
Erstens liegt die Information über den falschen Speicher, den „ memory.limit()
R sagt, dass ich ihn habe 1.759219e+13
“, an der aktuellen R-Version. Ich habe ein Downgrade auf die vorherige Version durchgeführt und den Fehler nicht mehr bekommen.
Zweitens ist es völlig in Ordnung, die RStudio-Desktop-Version auf dem Server zu installieren. Der einzige Nachteil ist, dass Sie sich direkt/per Remote-Desktop-Steuerung bei Ihrem Server anmelden müssen. Ansonsten funktioniert es wie ein normaler Desktop mit besserer Hardware.
Drittens ist R von Natur aus so konzipiert, dass für jede R-Instanz nur ein Kern verwendet wird. Anscheinend können Sie entweder spezielle R-Funktionen für gleichzeitige Berechnungen verwenden ( parallel
) oder einfach mehrere R-Instanzen starten (mit mehreren geöffneten R-Sitzungen), sodass jede Sitzung einen anderen Kern verwendet. Wenn mehrere R-Instanzen geöffnet sind, kann ich meinen gesamten RAM verwenden. Sie müssen nur Ihren Code aufteilen.
Ich habe diese Antwort gepostet, falls jemand anderes diese Probleme haben sollte. Ich hoffe, das ist die richtige Art, eine Antwort zu posten und nicht, meinen Beitrag zu bearbeiten. Bitte lassen Sie mich wissen, ob ich das korrigieren soll.
Danke