Vraag:
Hoe maak ik RAM vrij?
BadgerTrucking
2016-07-20 07:44:07 UTC
view on stackexchange narkive permalink

Ik heb cayenne op mijn telefoon geïnstalleerd om mijn Raspberry pi gemakkelijker te kunnen volgen. Ik typte gratis in de terminal en het bevestigt ook het hoge ramgebruik. Ik heb sudo apt-get clean geprobeerd en dit heeft helemaal niet geholpen. Dus als ik dit weet, hoe maak ik RAM vrij voor betere prestaties. Mijn PI blijft onhandig crashen.

Ik draai een RPI3 met Raspbian Jessie op een 64Gb micro SD-kaart. sudo apt-get update en sudo apt-get upgrade zijn al uitgevoerd en succesvol. Schermafbeelding van de Cayenne-interface is bijgevoegd. Cayenne Interface

Iets lijkt daar echter vreemd, de RPi3 heeft 1 GB RAM, niet 500 MB ... Hij heeft ook een 1,2 GHz ARMv8 ...
Merk op dat er een significant verschil is tussen het meten van RAM-gebruik met en zonder de [paginacache] (https://en.wikipedia.org/wiki/Page_cache). Sommige tools zijn dubbelzinnig (zoals die in de schermafbeelding); andere (zoals 'gratis') worden vaak verkeerd geïnterpreteerd. Het is volkomen normaal dat een actief systeem bijna al het beschikbare RAM uiteindelijk via deze caching gebruikt, aangezien dit * gunstig * is voor de prestaties van het systeem. U moet voor uzelf verduidelijken en de vraag stellen welk deel hiervan "buffers" of "cache" is versus wat feitelijk gecommitteerd geheugen is.
@Ron Beyer, weet je ... dat heb ik niet opgemerkt. En je hebt gelijk. Misschien is het een communicatieprobleem tussen de pi en Cayenne?
@goldilocks, hoe kom ik daarachter? Ik ben nieuw bij RPI en als zodanig ook het Linux-systeem.
@RonBeyer misschien heeft hij een heel hoog bedrag aan de GPU gewijd.
@Jacobm001, Ik weet niet of je het hoog zou noemen, maar ik heb momenteel GPU ingesteld op 500. Ik heb gemerkt dat bij of boven de 600 de PI ERG onstabiel wordt. Regelmatige crashes en veel bevriezingen.
Hoewel de 700 Mhz vreemd is, want zelfs als ik een geregelde schaal gebruik, denk ik niet dat 700 Mhz een van de stops van de Pi 3 is, maar ik weet het niet zeker - je kunt inchecken in `/ sys / devices / system / cpu / cpufreq / beleid0 / `; het `cpuinfo_cur_freq` knooppunt is de huidige werkelijke frequentie in (vreemd) deca Hz, bijv. 700000 komt overeen met 700 Mhz. Als dat niet het geval is, is die GUI-meter in de war. @BadgerTrucking Zie mijn commentaar op het antwoord van Thlingan, en ik denk dat de versie van "gratis" op Raspbian er een is met een expliciete regel "+/- buffers / cache".
Lees dit over ram: http://www.linuxatemyram.com/
Drie antwoorden:
Jacobm001
2016-07-20 09:36:43 UTC
view on stackexchange narkive permalink

@ Jacobm001, ik weet niet of je het hoog zou noemen, maar ik heb momenteel GPU ingesteld op 500. Ik heb gemerkt dat op of boven 600 de PI ERG onstabiel wordt. Regelmatige crashes en veel bevriezingen.

Oh, geloof me, dat is ongelooflijk hoog voor een RPi. 500 is in dit geval 500 MB. De Pi heeft slechts 1 GB beschikbaar geheugen, dat is 1024 MB ... In wezen besteed je de helft van het beschikbare RAM-geheugen van je systeem aan de GPU.

Als je een camera gaat gebruiken, moet 128 MB geheugen worden toegewezen aan de GPU, maar voor al het andere is de standaard 64 MB voldoende.

In een vorige bewerking maakte ik een grapje over het op 0 zetten, maar dit is eigenlijk niet mogelijk. De RPi heeft minimaal 16 MB toegewezen aan de GPU nodig, en als u deze instelt op 0, keert de RPi standaard terug naar 64 MB. Persoonlijk heb ik mijn headless RPi ingesteld op 16 MB.

nou, "headless" is een relatieve term. Meestal naar SSH naar AL mijn Pi's, ik gebruik JuiceSSH op mijn mobiel. Echter, zoals vanavond, ben ik een externe desktop van mijn laptop om een ​​beetje te rommelen terwijl ik tv kijk.
@BadgerTrucking: De meeste mensen hebben de neiging om systemen zonder GUI "headless" te noemen. Ik gebruik bijvoorbeeld nooit een desktop op mijn hoofd-RPi, dus ik geef de GPU geen geheugen. Als u af en toe een extern bureaublad gebruikt, wilt u er natuurlijk wat geheugen voor overlaten.
U kunt het niet effectief instellen op 0, [het minimum is 16] (https://github.com/raspberrypi/documentation/blob/master/configuration/config-txt.md#gpu_mem) en de standaardwaarde is 64. U zou kunnen proberen om het op 0 in te stellen om te zien of dat wordt genegeerd (in welk geval je uiteindelijk w / 64 krijgt) of het minimum gebruikt. U kunt w / `vcgencmd get_mem gpu` controleren. 16 is eigenlijk prima voor een GUI * als je geen openGL gebruikt of video * bekijkt. De camera vereist 128. Er is ook een beschrijving van het gebruik van een dynamische splitsing daar, maar merk op dat in de praktijk waarschijnlijk je minimum 32 wordt.
@goldilocks: ja, ik denk dat ik dat beetje sarcasme echt niet dacht door ... ik zal het bewerken.
Stefan
2016-07-20 16:07:23 UTC
view on stackexchange narkive permalink

Ten eerste, net zoals bij andere antwoorden is aangegeven, is het ongebruikelijk om die hoeveelheid RAM beschikbaar te hebben voor gebruik. gebruik het als een headless server.

Ten tweede, ongebruikte RAM is verspilde RAM. Het is prima voor Pi (of welk Linux-systeem dan ook) om ongeveer 95% of RAM-gebruik te rapporteren. gebruikt voor caching zodat het systeem sneller kan werken in plaats van gewoon geen RAM te gebruiken (effectief verspillen). Controleer of iets dat RAM-geheugen daadwerkelijk gebruikt met tools zoals htop om er zeker van te zijn dat het gewoon Linux is die alles probeert te versnellen. Als je een aantal processen moet stoppen, kun je tools gebruiken top , pkill of pgrep (voor het vinden van PID) en kill (voor daadwerkelijke moord).

tlhIngan
2016-07-20 08:16:29 UTC
view on stackexchange narkive permalink

Installeer htop op je Pi en voer het lokaal uit, het zal je niet alleen vertellen hoeveel RAM er wordt gebruikt, maar ook door wie. U kunt de geheugenvretende processen doden die u niet nodig hebt.

Ik denk dat de mem-balk van 'htop' een onderscheid maakt tussen cache en echt toegewijd geheugen via kleur, maar het nummer aan het einde sluit de cache uit. Pas op WRT "geheugen-hongerige processen" die: 1) Wat telt is het RES-cijfer, negeer VIRT; 2) `htop` kan standaard proces-threads weergeven, waardoor het kan lijken alsof er veel gevallen zijn van één proces dat identieke hoeveelheden geheugen gebruikt, terwijl dit echt aangeeft dat één proces is met meerdere threads die hetzelfde geheugenblok delen. U kunt tussen de twee weergaven met een hoofdletter 'H' schakelen, het moet duidelijk zijn welke welke is.
@goldilocks, Dat heb ik gemerkt. Er waren een aantal processen met ongeveer vijf duplicaten.
@BadgerTrucking dat is helemaal niet ongebruikelijk. Over het algemeen ziet elke thread van een proces eruit als een duplicaatproces als u niet gewend bent aan dat soort uitlezingen.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...