[sage-berlin] Frage zu sysstat-Tools

Florian Streibelt florian at f-streibelt.de
Die Jan 30 16:28:51 CET 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

Hi hoh,

'Karsten Becker' schrieb am 30.01.2007 15:41:
> Servus,
> 
> ich habe ein paar Fragen zu den allseits beliebten sysstat-Tools auf
> Linux-Systemen, insbesondere die Ausgabe(n) von 'sar'.
> 
> 1.
> 'sar -b' zeigt mir auf meinem Desktop-System nichts, also nur Nullen an,
> wohingegen 'sar -d' mir durchaus Werte für meine /dev/sda angibt. Das
> verstehe ich nicht so ganz.

afaik muss da regelmaessig das statistikfile geupdated werden, auf meinem
notebook passierte das noch nie:

root at fls-nb:~# sar -b
Cannot open /var/log/sysstat/sa30: No such file or directory

sicher, dass die aktuell sind und geupdated werden?
vielleicht ist nur die initale version da? keine ahnung, kenne sar dazu zu
wenig.

> 
> 2.
> Ich tappe bzgl. der Interpretation der angezeigten Werte etwas im
> dunkeln. Kann mir jemand sagen, welche Größenordnung die Werte bei 'sar
> -b'/'sar -d' haben, wenn eine PATA/SATA/SCSI-Platte voll ausgelastet
> ist? Ich raff das mit den 512k-Blockangaben nicht so ganz...

Naja, eigentlich janz einfach - glaub ich...
bread/s
Total amount of data read from the devices in blocks per second.  Blocks
are equivalent to sectors with 2.4 kernels and newer and  therefore
have a size of 512 bytes

Bei neuen kerneln ist die blockgroesse die gelesen wird = ein sektor = 512
byte. wenn wir die Transferrate kennen, die der bus/die platte maximal
schafft, kann man berechnen wieviele bloecke/sekunde machbar sind:

Wenn ich das mit hdparm bei mir teste:
Der bus schafft:
 Timing cached reads:   688 MB in  2.00 seconds = 343.37 MB/sec
Die platte:
 Timing buffered disk reads:   56 MB in  3.04 seconds =  18.40 MB/sec

nehmen wir die platt, 18,4MB/sec = 371034,58 bloecke a 512 byte pro sekunde
maximaler Lesedurchsatz. wenn ich falsch gerechnet habe bitte korrektur,
das sind doch: 18,4 * 1024 * 1024 um auf byte zu kommen und / 512 um die
blockgroesse zu beruecksichtigen?

So stelle ich mir das jedenfalls vor, in meinem jugendlichen wahnsinn :)

> 
> 3.
> Ich dachte immer, Paging wäre das selbe wie Swapping. Bei 'sar -B' zeigt

ja, das muesste ich in der Betriebssystem-vorlesung eigentlich grade
behandelt haben *gruebel*

ganz fies, wikipedia liefert:
Zu unterscheiden ist das Paging jedoch deutlich vom Swapping, da letzteres
nicht nur einzelne Speicherseiten, sondern praktisch vollständige Prozesse
auslagert. Das Paging ist trotz einer häufig unpräzisen Bezeichnung der
Auslagerungsdatei als Swap-Datei heute das bei modernen Betriebssystemen
vorherrschende Verfahren zur Speicherverwaltung von Prozessen.

Paging bedeutet, jeder Prozess bekommt einen Speicheradressbereich von 4GB
zugewiesen, den er verwalten kann - per paging wird sichergestellt, dass
der prozess an den adressen auf die er zugreift auch inhalt findet - paging
lagert seiten ein und aus - das swapping lagert die dann eventuell auf
platte aus oder ein, ist also nur eine teilfunktion des paging. es kann ja
durchaus sein, dass eine speicherseite einfac frei gemacht werden muss, da
sie nur gelesen wurde, dann muss man die änderungen nicht wieder in den
swap zurückschreiben...

hoffe das einigermassen korrekt erklärt zu haben?

> er mir Werte an, bei 'sar -W' aber nicht. Auch hier stellt sich mir die
> Frage, ab wann (also ab welchen Werten) ich auf zu wenig RAM schließen kann.

paging ist normal, das ist interessant für anwendungsentwickler, wenn deine
appliaktion zu viel paging hervorruft, sollte man seine datenstrukturenb
ueberdenken. Klassischer Fall: Arrays in Fortran und C.

Fortran legt die spaltenweise im speicher ab und C Zeilenweise (oder
umgekehrt).

Wenn ein Programm nun immer den ersten wert einer spalte mit dem ersten der
nächsten spalte addiert kann es bei C zum paging kommen, weil der
speicherbereich ausgelagert wurde, bei fortran aber vielleicht nicht, weil
dort die werte direkt nebeneinander und auf einer speicherkachel liegen.

ich weiss nicht, ob unter paging hier auch der prozessorcache fällt - dort
ist ja dasselbe paenomen mit cache und hauptspeicher.... *gruebel*


beim swapping habe ich das echte problem, dass meine applikation mehr
speicher benutzt, als ich physikalisch zur verfügung habe. dann muss ich
aktiven hauptspeicher auslagern in den swap und bei bedarf wieder
zurückladen (und eventuell vorher was anderes auslagern)


Dich dürfte also swapping interessieren. Schau Dir (bei 2.6'er kerneln)
auch mal im ps das I/O an - der zeigt wie lange der kernel wegen warten auf
IO blokiert.


have fun,

   Florian


!DSPAM:2,45bf5c52312166170219004!


- ------------------------------------------------------------------------

_______________________________________________
SAGE-Berlin mailing list
SAGE-Berlin at guug.de
http://lists.guug.de/mailman/listinfo/sage-berlin


!DSPAM:2,45bf5c52312166170219004!

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFv2QyO46kH4L2EkARA7XPAKCG6+fin4rZmCwMX/SAQxWQf3n6qwCghBKr
dPSJaHNDywmhG72JM7OG1JE=
=/guT
-----END PGP SIGNATURE-----