Question

Je travaille sur un démon qui surveille les événements de fichiers via inotify pour déclencher divers types d'événements lorsque les fichiers sont accessibles. J'ai lu que les montres sont un peu cher, parce que le noyau stocke le nom de chemin complet de chaque fichier surveillé.

Combien de montres seraient trop nombreux?

Edit: La plupart du temps, je me demande .. avez-vous déjà vu un succès notable de la performance, le cas échéant, combien de montres est-il arrivé? Oui, je dois surveiller / récursive (mais son système minimal bootstrap).

Était-ce utile?

La solution

AFAIK le noyau ne stocke pas le chemin, mais le inode. Néanmoins, il y a 540 octets par regarder sur un système 32 bits. Doublez tant sur 64bit.

Je sais Lsyncd (peut-être que vous voulez vérifier cela?) Les personnes qui ont un million de montres. Il mange juste un gigaoctet de mémoire.

Autres conseils

Vous pouvez trouver les limites du système en lisant /proc/sys/fs/inotify/max_user_instances (nombre maximum de « objets » inotify) et /proc/sys/fs/inotify/max_user_watches (nombre maximum de fichiers regardé), donc si vous dépassez ces chiffres, il est trop ;-) Le nombre maximum de montres est en général plusieurs dizaines de milliers ou plus - sur mon système, 262143 - ce qui est probablement plus que vous avez besoin à moins que vous essayez de regarder tous les fichiers dans un système de fichiers, mais vous ne devriez pas faire ça. Je dirais, juste essayer de ne pas utiliser les montres plus inotify que vous avez besoin, et ne vous inquiétez pas, sauf si vous remarquez une diminution significative des performances.

Mes infos:

[foo@caffeine ~]# cat /var/log/lsyncd.status | grep Inotify
Inotify watching 293208 directories

[foo@caffeine ~]# cat /proc/sys/fs/inotify/max_user_watches
1048576

lsyncd utilise environ 130M de mémoire.

J'utilise lsyncd de garder certains répertoires synchronisés avec le serveur de reprise après incident.

Aucun coup performances / malus sur le serveur principal.

100 milliards de billions gazillions seraient trop nombreux, probablement. noyau KORNER - Introduction à iNotify mentions « des milliers de montres » si au moins ce nombre ne devrait pas être problème.

Cela dépend de la quantité de RAM que vous avez

Alors que 524288 est le nombre maximal de fichiers qui peuvent être visionnées, si vous êtes dans un environnement qui est particulièrement mémoire limitée, vous voudrez peut-être réduire le nombre. Chaque montre de fichiers prend 540 octets (32 bits) ou ~ 1 Ko (64 bits), donc en supposant que tous les 524288 montres sont consommées que les résultats dans une limite supérieure d'environ 256 Mo (32 bits) ou 512 Mo (64 bits) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top