Hi

vielleicht hat ein schlauer "Entwickler" eine Prüfroutine drin die checkt ob genügent RAM frei ist.

Ansich sollte es keine Probleme geben Chaches wieder zuverwenden, warum es nur geht wenn man alles löscht.

Vielleicht ist es ein Kernelkäfer möglicherweise aber auch ein Hardwarefehler der deshalb auftritt das wenn Cache nicht gelehrt wird, ein kaputter Bereich genommen wird.

Andreas


Hilmar Preusse <hille42@web.de> schrieb am 23:20 Sonntag, 19.Januar 2014:
Moin,

eine Kunde von uns hat eine Applikation die ganz schön viel RAM
braucht (so 80GB) auf RH 6.x.  Wenn er diese stoppt kann sie
anschließend nicht wieder korrekt gestartet werden.  Er hat heraus
gefunden, daß man den Cache vom OS vorher explizit leeren kann und
dann fährt die Applikation wieder hoch.

echo 3 > /proc/sys/vm/drop_caches .

Laut kernel-Doku: sysctl/vm.txt

<snip>
drop_caches

Writing to this will cause the kernel to drop clean caches, dentries
and inodes from memory, causing that memory to become free.

To free pagecache:
    echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
    echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
    echo 3 > /proc/sys/vm/drop_caches

As this is a non-destructive operation and dirty objects are not
freeable, the user should run `sync' first.
<snap>

wird hier nur der Cache gelöscht. Dies sollte aus meiner Sicht
unnötig sein, da der Cache (auch der belegte) jederzeit frei gegeben
wird.

Kernelbug? Oder blöde race condition?

H.
--
Command, n.:
    Statement presented by a human and accepted by a computer in
    such a manner as to make the human feel as if he is in control.
  http://www.hilmar-preusse.de.vu/
_______________________________________________
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd