2016-04-19 9 views
0

Es ist eine Frage im Zusammenhang mit der Programmierung, sondern mehr auf der Seite der Server-Administration.Viele Inodes mit Node.js

Ich habe einen Server mit 256K INodes zur Verfügung (was genug sein sollte), aber auf der anderen Seite habe ich 5 Projekte auf diesem Server mit einer Menge von Knotenabhängigkeiten (und viele verschachtelte Abhängigkeiten). Mit dem npm install dieser 5 Projekte verwende ich 70% aller verfügbaren Inodes (176215 von 251844 um genau zu sein).

Meine Frage ist:

Gibt es einen Weg, um die Knoten deps zu komprimieren? Um mehr Daten pro Datei, aber weniger Dateien zu haben?

Dank

+1

Die neueste Version von NPM wird abhängige Module teilen und nicht separat verschachtelt. – jfriend00

+0

Das ist ein großartiger Vorschlag, aber es scheint, dass npm das nicht automatisch macht. Führen Sie npm Deduplizierung manuell aus. https://docs.npmjs.com/cli/dedupe – TinkerTank

Antwort

1

Ich weiß nicht, von einer automatischen Art und Weise die Anzahl der Dateien in node_modules reduzieren (was, wo npm seine Abhängigkeiten speichert.) Allerdings kann ich von einigen Optionen denken die Inode-Nutzung zu reduzieren.

1) Wenn zwischen diesen Projekten gemeinsame Abhängigkeiten (mit derselben Versionsnummer) vorhanden sind, können Sie einige Abhängigkeiten von einem Projekt zum anderen symbolisieren. Wenn Sie eine Abhängigkeit mit vielen verschachtelten Abhängigkeiten erhalten, kann dies wirklich einige Inodes speichern. (ungetestet)

2) Eine weitere Alternative wäre, wenn es viele gemeinsame Abhängigkeiten gäbe, die node_modules von Projekt 1 nach Projekt 2 mit cp -l zu kopieren. In diesem Fall wäre jede Kopie eine feste Verbindung zur selben Datei und würde keine zusätzlichen Inodes verwenden. Danach führen Sie npm install & & npm in Projekt 2, um alle Änderungen/zusätzliche Abhängigkeiten herunterladen. (auch ungetestet)

3) Beide Optionen sind jedoch hacky, und könnten oder könnten nicht schwer zu debuggende Probleme später, nach dem Kopieren, nach dem Wiederherstellen eines Backups usw. Die wirkliche Lösung wäre es Erstellen Sie das Dateisystem mit mehr Inodes neu. Für ext4 kann dies mit mkfs.ext4-i geschehen. Siehe https://unix.stackexchange.com/questions/26598/how-can-i-increase-the-number-of-inodes-in-an-ext4-filesystem.

+0

Sorry für die späte upvote, ich werde zuerst testen Sie kommentieren 'npm dedupe' und dann versuchen Sie das Dateisystem. 1 & 2 sieht wirklich hacky (es ist in Ordnung für ein persönliches Projekt, aber meins läuft in prod ...) –

+0

np. :) - Lass mich wissen, was für dich gearbeitet hat! – TinkerTank