Linux tuning, en "Waarom swapspace?"

K

Kerstkonijn

In plaats van het commando sar, kan je beter het commando atsar gebruiken. Voor de meeste *nix systemen is atsar een uitbreiding van sar. Het atsar commando voor Linux is hoe sar hoort te zijn, maar uitgebreid met kernelinfo over disks en netwerkgegevens.

Voor kerneldebugging is ook een krachige tool: atkins. Deze geeft gigantisch veel info over de kernelcounters. Heel handig om samen met atsar te gebruiken om mogelijke ferformanceproblemen te verklaren en te kunnen gaan verbeteren.

Voor het programma top is ook beter programma: atop. Ook hierbij info over disks en netwerk.

Al deze programma's zijn te downloaden op de site van ATComputing.

:biertje: By the way: Wat moet een OS dat nooit swapt (Linux) met swapruimte?
 
Zoek maar eens een proces op wat in z'n geheel maar swapspace overgezet wordt. Zolang het niet gebeurt, wordt er niet geswapt
 
Er zullen geen processen naar swapspace gaan. Processen zijn immers "in gebruik" en het zou dus onlogisch zijn om die in swap space te zetten (als dat al kan). De ruimte die processen gebruiken (data?) die zou eventueel naar swap kunnen gaan. Ik denk dan aan niet al te belangrijke geheugenvullers: guionderdelen zoals browsers e.d. die niet meer gebruikt worden.
Heel misschien httpd ruimte (apache) zoals een webpagina. Webpagina's (index iig) zal snel er bij gepakt moeten kunnen worden. Een prio instelling zou eventueel kunnen voorkomen dat ie naar swap gaat.

Doe eens een free. En je ziet dat swap toch zwaar in gebruik is (als je een niet al t nieuw systeem hebt tenminste!!!)


G
 
Kijk maar eens met top of atop, dan zie je at er een boel processen sleeping zijn. Die zijn niet runnable. En die processen staan allemaal op de nominatie bij te weinig ruimte in geheugen pages al dan niet tijdelijk het geheugen uitgezet te worden.

In een modern systeem wordt swapspace altijd gebruikt. Nu is de vraag: wat gaat er naar swapspace? En als er nooit wordt geswapt, hoe komt het daar dan? En wanneer komt het weer terug uit de swapspace?

Leuk om eens over na te denken, toch?
 
Jezus, dat is kennis wat ik 4 of 5 jaar geleden heb geleerd met o.a mainframe (Ok, het is misschien een compleet ander os, maar in deze werkt het ong hetzelfde als linux. Immers, suse maakt zelfs distro's voor de Z/os)

Swap space zoals Mainframe die kent: Ruimte waar informatie word opgeslagen die niet nodig zijn op dat moment, maar wel direct beschikbaar moet zijn voor processen en programma's (en gebruikers) die op dat moment aan het werk zijn.
een transactie van 5 milj. regels wordt opgedeeld in 2-en ivm met de grote. Eerst wordt deel 1 verwerkt, dan deel twee. Op het moment dat de processor de tijd en ruimte heeft om deel 1 te verwerken wordt deel 2 na het laden van het geheel, netjes in swap geparkeerd. deel 1 is klaar, deel twee wordt verwerkt, er komt een check en het geheel wordt weggeschreven.

Nu: het grote verschil hier is het aantal processoren, het werk en de details. Voor mainframe is er bv alleen al voor IO 1 of meerdere processoren.
Swap in linux: feitelijk komt het hier op hetzelfde neer. iets wordt in swap gezet totdat het nodig is. Een process maakt gebruik van systeem bronnen alszijnde virtueel geheugen. Ook al is het een slapend proces, hij zal nooit weggeschreven kunnen worden omdat het virt. geh. niet de enige bronnen zijn waar hij gebruik van maakt (IO is er bv ook vaak 1 van (httpd)) Slapend betekend dan ook niets meer dan wachtende op werk.

Ik denk dat de grote hoeveelheid swap meer uit het GUI gedeelte komt. (ik heb het niet getest, maar ik zou me zo kunnen voor stellen dat) als je heel X plat gooit en alle daarbij behorende deamons en processen, dat je swap ineens heeeeeeeel leeg zullen zijn. Totdat je bv een copie slag van gb's gaat doen (ff een filmpie op een tweede disk zetten), doe dan maar weer ff free.

Duidelijker?
 
In de swapspace komen alleen processen die niet in het geheugen passen. Er wordt niet geswapt, maar gepaged. De swapspace zou daarom tegenwoordig eigenlijk pagingspace genoemd moeten worden. Maar waarom een nieuwe naam, als toch bekend is dat het de zelfde soort space is op disk, maar alleen het mechanisme iets anders is geworden? Alleen voor puristen zou het een nieuwe naam worden.

Wat er bij pagen gebeurt: Van een proces blijft alleen de proc-entry in geheugen. De u-area wordt gepaged. Het vaste text-gedeelte wordt gedropt. Dat kan immers later weer gewoon van disk gehaald worden.

Een GUI vraagt ook heelwat extra processen dan wanneer er geen GUI draait. Dat kost meer memory. Verder niet. Dus de GUI komt niet in de swapspace te staan, omdat er een GUI is. Er kunnen wel pages van het proces zijn die lang niet gebruikt zijn, en hoog op de nominatie komen te staan om uitgepaged te worden. Maar dat kan net zo goed pages van de editor zijn die mogelijk al lange tijd in z'n neus staat te boren.

Verder wordt het geheugen zo veel mogelijk benut. Je geheugen zal daarom altijd tegen de 85-90% in use zijn. Alle vrije pagina's worden namelijk als cache gebruikt, om de disk te cachen. Vandaar dat het op moderne systemen heel normaal is dat de swapspace gebruikt wordt. Hoe drukker het is, hoe kleiner de diskcache wordt, maar als het efficienter is pagina's van slapende processen uit te pagen, zal dat zeer zeker gebeuren. Dat weer om de processor te ontlasten niet alles steeds weer van disk te moeten lezen. Want dat kan weer wait i/o's opleveren. De processor is dan idle, omdat ie op antwoord van de disk wacht. Een idle-tijd die systeemvertraging tot gevolg heeft.

Overigens draait er op een processor nooit meer dan 1 proces tegelijk. Bij (a)top is wel een R of een S te zien, maar dat betekent niet running en sleeping. Dat is runable en sleeping.

Het programma atop of top is niet vriendelijk voor het geheugen. Het draait met een negatieve nice-waarde. Dat is omdat top anders slecht gebruikt kan worden om performanceproblemen te kunnen helpen opsporen. Dan zou het programma zelf nauwelijks op de processor komen en ons dus niet echt nuttige info kunnen laten zien.
 
Goh, wat leuk, heet het in linuxland ook paging?

Dat vindik het grootste probleem, elk os heeft een eigen naampie voor hetzelfde doel...

Maar reeel gezien is je verhaal het zelfde op enkele details na (die ik niet genoemd heb, maar wel wist (entry)). Echter, ik denk dat dat kennis is die hier niet boeiend is om te weten. dit gaat denk ik te diep. Het is intresanter om eens een ps -A van een gemiddeld systeem te nemen en kijken welke processen uitgefasseerd zouden kunnen worden, welke een nice mode mee zouden kunnen krijgen en hoe je dat doet met welke programma's.
Top is geinig om even te zien, maar ik denk dat als je je systeem een beetje kent dat je wel weet waar de knelpunten liggen.

Denk je niet?

(geen andere freaks die dit intressant vinden?)

G
 



Oliebollen Hosting Fun Oliebollen

Advertenties

Terug
Bovenaan Onderaan