• # Mémoire cache

    Posté par . En réponse au message Placer un filesystem complet en RAM. Évalué à 4.

    Normalement, c'est ce que fait linux. Si tu lis tout ton répertoire (par exemple en faisant un grep recursif dedans), il charge tout en mémoire. Tu dois retrouver la taille de ton répertoire dans la colonne "cached" de la commande "free". A partir de là, les opérations de lectures et d'écritures se font dans la mémoire. La commande "sync" force le système à reporter les modifications sur le disque. Par contre, rien ne l'oblige à garder ces données en mémoire. Si elles ne sont pas suffisamment accédées, elles finiront par être purgées de la mémoire (et reportées sur le disque si elles sont modifiées) pour faire place à d'autres données plus vitales. Si ton système de fichier est monté avec l'option "sync", les écritures se font directement sur le disque. Sinon, elle sont faites au pire lors du démontage.

    Si tu veux réellement forcer ces données à rester en mémoire, tu peux faire un ramfs (mount -t ramfs ramfs /ram), copier tout ton répertoire dedans, faire pointer ton application dedans, et faire un cron qui synchronise régulièrement le disque (cp -au /ram/* /origine/). Ca doit marcher, mais c'est certainement moins optimisé que le cache de linux :)