Gérer le problème too many open files sous Ubuntu 22

Corrigez les problèmes de watch mode sous Linux pour compiler à la volée vos projets TypeScript, React ou autres, et boostez votre workflow de développement.
Pour régler le problème qui arrive souvent sur les projets node:
Error: EMFILE, too many open files, watch ...
Nous allons augmenter le nombre de fichier que le système peut watch simultanément !
Pour celà, faîtes un :
sudo nano /etc/sysctl.conf
Dans le fichier /etc/sysctl.conf, ajoutez les lignes :
fs.file-max = 65535
fs.inotify.max_user_watches=524288
fs.inotify.max_user_instances=512
Sauvegardez et rechargez votre fichier sysctl :
sudo sysctl --system
FAQ
Est-ce que cette modification est permanente ou sera-t-elle perdue au redémarrage ?
En ajoutant les paramètres dans /etc/sysctl.conf et en rechargeant avec sudo sysctl --system, les changements sont persistants et survivent aux redémarrages du système.
Cette solution fonctionne-t-elle uniquement pour les projets Node.js ?
Non, elle s'applique à tout outil qui surveille des fichiers en temps réel sous Linux, comme les compilateurs TypeScript, les serveurs de développement React, Vite, Webpack ou encore des outils comme Nodemon.
Pourquoi Linux limite-t-il le nombre de fichiers surveillés par défaut ?
C'est une mesure de protection du noyau pour éviter qu'un processus consomme trop de ressources système. Les valeurs par défaut sont pensées pour un usage général et non pour le développement de projets avec des milliers de fichiers.
Faut-il redémarrer le serveur ou la machine après la modification ?
Non, la commande sudo sysctl --system suffit à appliquer les nouveaux paramètres immédiatement sans redémarrage.

Alexandre P.
Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.
Poursuivre la lecture


