2016-04-19 1 views
0

Je dois nettoyer le cache de page sous Linux Ubuntu. Il y a une commande pour nettoyer le cache de pages echo 1>/proc/sys/vm/drop_caches qui peut être fait via le terminal mais j'ai besoin de nettoyer le cache de la page par programmation. Comprendra ce code source de drop_caches.c i.e http://www2.comp.ufscar.br/lxr/source/fs/drop_caches.c aidez-moi à résoudre mon problème.comment nettoyer le cache de pages dans Linux par programme

+1

Veuillez poster le code ici dans un [MCVE] –

+2

Le doublon est parti (supprimé). Puisque c'est maintenant une dupe * target * alors peut-être que cela devrait être ouvert. –

Répondre

0

Vous êtes probablement bloqué avec l'ouverture du fichier /proc/sys/vm/drop_caches, en écrivant 1 et le refermer. Il n'y a pas de syscall dédié pour cette opération.

sync(); 
int fd = open("/proc/sys/vm/drop_caches", O_WRONLY); 
write(fd, "1", 1); 
close(fd); 

Selon ce que vous essayez d'atteindre, (en option) qui précède sync() peut aider à libérer un peu plus de mémoire.

+0

Merci @Ctx est-il un autre moyen de nettoyer le cache de la page? –

+0

@TalhaA Je suis assez confiant que l'interface sysctl est le seul moyen de nettoyer explicitement le cache de la page. Ecrivez "3" pour nettoyer également l'entrée du répertoire et le cache inode. – Ctx

+0

fondamentalement je dois faire un petit projet pour ** cache propre ** dans Linux et je connais la programmation Linux de base, comme fork/exec, les appels sys, les modules et le threading. Alors que puis-je faire de plus pour nettoyer le cache? –