Problem mit swapon

  • Themenstarter Themenstarter sw33tlull4by
  • Beginndatum Beginndatum
S

sw33tlull4by

Guest
Hi!
Also mein PC ist leider nur mit 512MBRam ausgestattet.
Also habe ich mir gedacht das ich swap an mache.
Also habe ich swapon -ae ausgefuerht.
Als das aber nicht besser wurde(swapauslastung blieb 0%)
Habe ich mal
swapon /dev/sda2 ausgefuehrt, aber
Ich bekomme die Meldung das /dev/sda2 benutzt wird.
swapon -L /dev/sda2 fuehrt auch zu nix.
fstab
Code:
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/home             /home                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda2         swap                    swap    defaults        0 0

/proc/partitions
Code:
major minor  #blocks  name

   8     0  244198584 sda
   8     1     184747 sda1
   8     2    2064352 sda2
   8     3   13759672 sda3
   8     4          1 sda4
   8     5   20884468 sda5
   8     6  207246501 sda6
   8    16  156290904 sdb
   8    18          1 sdb2
   8    21   21326256 sdb5
   8    22    5261256 sdb6
   8    23  129692713 sdb7
 253     0  207245985 dm-0
OS ist Fedora 7
mfg

sw33t

//edit
mount gibt an das /dev/sda2 nicht gemountet ist.
mkswap wurde auch schon auf /dev/sda2 ausgefuehrt, Resultate sind alle negativ.
 
'mount' listet die Swap-Partition nicht auf. Was sagt denn 'free' bei dir?
 
Ausgabe von free
Code:
             total       used       free     shared    buffers     cached
Mem:        515032     498028      17004          0      78508     224604
-/+ buffers/cache:     194916     320116
Swap:      2064344         72    2064272
In dieser ausgabe wird zwar ein bischen swap als benutzt angezeigt aber im
Acryl Desktop Widegt von Karamba stehen immer noch 0Mb,
Abgesehen davon halte ich das fuer einbischen wenig.
mfg

sw33t
 
Code:
cached
224604

Du hast noch genug RAM zur Verfügung. Warum sollte er da den Swap-Speicher nutzen? Der als 'cached' angezeigte Speicher ist der Festplatten-Cache des Kernels, der bei Bedarf für Anwendungen freigegeben wird. Linux nutzt den RAM halt gern aus. ;)
 
Aha.
Also habe ich eigentlich 3 Speicherbereiche.
1.Ram
2.Festplattencach vom Kernel
3.Swap

Aber wenn Ram Ram ist, swap auf der Festplatte istt, wobefindet sich dann der Kernelcach und wiso unterscheidet man zwischen Kernelcache und den Anderen beiden?
mfg

sw33t
 
Der Festplatten-Cache befindet sich im nicht benutzten Bereich deines RAM. Dadurch werden die verfügbaren Ressourcen einfach effektiver ausgenutzt. Warum sollte denn der freie RAM ungenutzt bleiben? Das wäre ja Verschwendung, wenn er als Cache doch gut zur Systemperformance beitragen kann.

Man unterscheidet zwischen Festplatten-Cache und "normal belegtem" RAM, weil der Cache eben bei Bedarf freigegeben wird, er also potentiell für Programme zur Verfügung steht, aber nunmal nicht wirklich frei ist.
 
O.k. vielen dank fuer die Antwort.
Dann schiebe ich die Tatsache das mein PC so stockt einfch auf die Tatscahe dsa ich nicht genuegend Rechenleistung habe bzw. ich nice nicht benutze und somit meine Processe sehr stark die CPU beanspruchen.
Denn wenn ich
cp -r --preserve=all /mnt/director1/* /mnt/directory2/ mache, dann ist meine cpuauslastung bei 100%
Ram ist voll ausgelastet und Maus und schreiben stockt.
Ich verschiebe hier uberigens 120Gb in eine verschluesselte Partition was nochmal zusaetzlich Rechenleistung beanspruchen duerfte^^.
mfg

sw33t
 
Wenn du während er kopiert nicht vernünftig arbeiten kannst, dann starte den kopierprozess mit einer niedrigeren priorität

(nice -n <priotrität> <programm> wobei nice von -20 bis 19 geht afair. => man nice)

Wenn du das kopieren schon gestartet hast kannst du mit "renice" die prioriät anpassen.
 
Du kannst auch das Zwischenspeichern bzw. die Zeit in der die Daten im RAM gehalten werden verkuerzen.

Mit der mount-Option "-o commit=1" (in Sek.), somit werden Daten im RAM jede 1tel Sek. auf die Platte geschrieben.

Dass sich mit der verschluesselten Part, ein paar Latenzzeiten erhoehen, ist soweit schon logisch.

Aber ich habe da nochmal ein ganz anderes Problem (koennt man sagen).

Den Festplattencache den Ihr meint ist doch ein RAM-Bereich in dem Daten hinkommen die noch auf die Platte geschrieben werden sollen (vom VFS/kjournal (des Kernels) verwaltet), dieser wird mit dem Schreiben der Daten auf die Platte freigegeben?

Wenn ich das so richtig verstanden habe, nur irgendwie haut da was nicht hin...

Code:
## Ich lege ein Image auf der Platte an.

root comp1-gentoo [florian0] # dd if=/dev/zero of=/home/imageeee bs=1M
^C1511+0 records in
1511+0 records out
1584398336 bytes (1,6 GB) copied, 27,9626 s, 56,7 MB/s

## 1,6 GB gecached

root comp1-gentoo [florian0] # free -m
             total       used       free     shared    buffers     cached
Mem:          2026       1971         54          0         53       1608
-/+ buffers/cache:        309       1717
Swap:          549          0        549

###########

## Sync um alles zwischengespeicherte auf die Platte zu schreiben. 

root comp1-gentoo [florian0] # sync
root comp1-gentoo [florian0] # free -m
             total       used       free     shared    buffers     cached
Mem:          2026       1973         52          0         53       1607
-/+ buffers/cache:        312       1713
Swap:          549          0        549

## Immer noch 1,6 GB gecached.

###########

root comp1-gentoo [florian0] # rm /home/imageeee
root comp1-gentoo [florian0] # free -m
             total       used       free     shared    buffers     cached
Mem:          2026        670       1355          0         53        318
-/+ buffers/cache:        298       1728
Swap:          549          0        549

## Das image wurde geloescht und jetzt erst wird der RAM frei.

###########################

## /tmp ist ein tmpfs (liegt im RAM)

root comp1-gentoo [florian0] # dd if=/dev/zero of=/tmp/imageeee bs=1M count=1024
1013+0 records in
1012+0 records out
1061224448 bytes (1,1 GB) copied, 0,809081 s, 1,3 GB/s

root comp1-gentoo [florian0] # free -m
             total       used       free     shared    buffers     cached
Mem:          2026       1683        342          0         53       1331
-/+ buffers/cache:        298       1727
Swap:          549          0        549

root comp1-gentoo [florian0] # rm /tmp/imageeee
root comp1-gentoo [florian0] # free -m
             total       used       free     shared    buffers     cached
Mem:          2026        671       1355          0         53        319
-/+ buffers/cache:        297       1728
Swap:          549          0        549

Okay, vielleicht stehe ich ja einfach nur vollkommen auf dem Schlauch.
 
Wenn ich mich nicht irre handelt es sich dabei um ein Paradigma der Hardwarebenutzung.
Behalte das was du als letztes im Ram hattest im Ram, und ueberschreibe bei Bedarf diejenigen Zellen welche du am laengsten nicht mehr gebraucht hast, denn manchmal werden operationen auf das zuletzt benutzte Element haeufiger ausgefuehrt, siehe pipelining.
D.h. wenn die Datei geloescht wird dann verschwindet sie auch aus dem Ram.
nach der Kopierarie vorhin war mein /tmp aber nur 0.5 Mb gross^^.
mfg

sw33t

//edit
Ich habe zwar nich tnachgeschaut aber ich glaube das sync auch eher dafuer gedacht ist aenderungen im Dateisystem,welche noch nicht auf der Platte sind auf die Platte zu schreiben, wird z.b. beim shutdown gemacht, heisst ja auch syncronise.^^

//edit die 2.
Schau mal was ich hier gefunden habe.
link
Danke nochmal wegen der zusaetztlichen mountoption.
 
Natürlich liegen auch die noch nicht auf die HD geschriebenen Daten in diesem Bereich, aber HD-Cache ist ja nicht nur Input-Cache, sondern auch Output-Cache, also Lese- und Schreib-Cache um es auf gut Denglish zu sagen.

Beim 'sync' werden sämtliche Datenbuffer des Schreib-Caches auf die HD geschrieben und der Superblock sowie betroffene Inoden werden aktualisiert. Der Bereich im RAM bleibt aber für weitere Caching-Operationen reserviert, sofern er nicht von einer Anwendung angefordert wird. Die Applikation macht nichts anderes als den Systemruf 'sync' aufzurufen, was der Kernel aber in bestimmten Zeitabständen auch automatisch tut.
 
hab den thread nur grob überflogen, aber ich hab gesehen, daß du den swap einfach irgendwohin mounten wolltest. das geht natürlich nicht.

mkswap /dev/xxx
swapon /dev/xxx

swap ist auch ein "filesystem" wenn man das mal so sagen darf, also muss es dementsprechend formatiert werden.
 
Okay, dann habe ich sync ja nicht falsch verstanden, es wird also einfach der cache geleert (der auf diesem Bild unter den FSs zu sehen ist ), aber bleibt wirklich die zuvor genutze Groesse, nun gut.


was der Kernel aber in bestimmten Zeitabständen auch automatisch tut.
kjournal bzw. dessen commit-Zeit.
 
Nein da hast du was falsch verstanden.
Der Cach bleibt auch Inhaltlich gleich.
Der Befehl sync sorgt lediglich das die Daten im Ram mit den Daten auf der Platte abgeglichen werden und das diese ggf geaendert werden.
 
Zurück
Oben