[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linux-Speicherverwaltung


On Wed 2021-04-07 20:05:09 Stefan Hagen wrote:

> Liste mit den Kommandos (mit allen Parametern) die
> du ausgefuehrt hast in chronologischer Reihenfolge,
> damit man das bei sich lokal nachspielen kann.

Bitteschoen (Zeilenumbruch abgeschaltet). Gruss Werner


#####################################################
##### Lesen bei gemountetem Stick (Cache aktiv) #####
#####################################################

# /dev/sda ist die Systemplatte
# /dev/sdd oder sde ist ein USB-Stick als Testgeraet
# auf /dev/sdd speichere ich eine Datei (17 MB), Stick ist also gemountet und funktionsfaehig

root@q4os-desktop:~# uname -a
Linux q4os-desktop 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

root@q4os-desktop:~# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1959088k,nr_inodes=489772,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=402248k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=49,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1584)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=402244k,mode=700,uid=1000,gid=1000)
/dev/sde1 on /media/werner/4B24-96D1 type vfat 
(rw,nosuid,nodev,noatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

# ich oeffne ein Fenster mit top und beobachte
# top davor: 2199 MiB free, 652 MiB buff/cache

root@q4os-desktop:~# dd if=/dev/sde of=/dev/null count=3M
3145728+0 Datensaetze ein
3145728+0 Datensaetze aus
1610612736 bytes (1,6 GB, 1,5 GiB) copied, 46,9636 s, 34,3 MB/s

root@q4os-desktop:~# dd if=/dev/sde of=/dev/null count=3M
3145728+0 Datensaetze ein
3145728+0 Datensaetze aus
1610612736 bytes (1,6 GB, 1,5 GiB) copied, 2,41062 s, 668 MB/s

# top danach: 654 MiB free, 2197 MiB buff/cache
# usb-Stick abgezogen: 2188 MiB free, 658 MiB buff/cache


############################################################################
##### Nun das gleiche mit nicht gemountetem USB-Stick (jetzt /dev/sdd) #####
############################################################################

# top davor: 2188 MiB free, 683 MiB buff/cache

root@q4os-desktop:~# dd if=/dev/sdd of=/dev/null count=3M
3145728+0 Datensaetze ein
3145728+0 Datensaetze aus
1610612736 bytes (1,6 GB, 1,5 GiB) copied, 46,8861 s, 34,4 MB/s

root@q4os-desktop:~# dd if=/dev/sdd of=/dev/null count=3M
3145728+0 Datensaetze ein
3145728+0 Datensaetze aus
1610612736 bytes (1,6 GB, 1,5 GiB) copied, 46,8482 s, 34,4 MB/s

# *waehrend* der Kommandoausfuehrung steigt buff/cache langsam; am Anschlag
# kann er andere Prozesse stoeren und am Ende faellt der Wert schlagartig ab
# auf den Wert wie zuvor, zugunsten von free


###################################################################################
##### Nun der gemountete Stick mit gecachtem Lesen unmittelbar nach Schreiben #####
###################################################################################

root@q4os-desktop:~# less -f /dev/sdd #ja, es sind *verschiedene* Bytes gespeichert (Abbruch mit q)

root@q4os-desktop:~# dd of=/dev/sdd if=/dev/zero count=3M
3145728+0 Datensaetze ein
3145728+0 Datensaetze aus
1610612736 bytes (1,6 GB, 1,5 GiB) copied, 2267,33 s, 710 kB/s

root@q4os-desktop:~# dd if=/dev/sdd of=/dev/null count=3M
3145728+0 Datensaetze ein
3145728+0 Datensaetze aus
1610612736 bytes (1,6 GB, 1,5 GiB) copied, 2,73197 s, 590 MB/s

# top danach: 177 MiB free, 2419 MiB buff/cache
# rasend schnell gelesen! Aber sind es auch die geaenderten Daten?

root@q4os-desktop:~# less -f /dev/sdd #ja, es sind jetzt alle Bytes gleich! (Abbruch mit q)

# Also wurden die auf auf den Stick geschriebenen Daten nicht aus dem Stick
# sondern aus dem Cache gelesen!

# usb-Stick abgezogen: 1979 MiB free, 654 MiB buff/cache


# Es funktioniert alles so, wie es idealer Weise funktionieren sollte. Mit der Ausnahme,
# dass buff/cache den RAM komplett fuellt, so dass ggf. swap benutzt und das System
# ausgebremst wird. Bei Puppy-Linux (aelteres System) gibts dieses Problem nicht.