Node-RED – vyčištění NPM cache
V návaznosti na výše napsané je zřejmé, že dochází k ukládání nepotřebných souborů, které se mohou běžně stáhnout znova z internetu. Toto má za následek neefektivní využívání místa na disku, potažmo to uměle navyšuje samotnou denní zálohu, používáte-li IOTstack Backup. Adresář NPM cache je totiž směřovaný do ~/IOTstack/volumes/nodered/data/.npm/_cacache
. V mém případě byla záloha o velikosti nějakých 250 MB a právě díky samotnému navýšení jsem hledal, co je špatně.
Naštěstí řešení není až tak složité a nabízí se dvě varianty, které si popíšeme.
Pro obě dvě varianty platí společný začátek, tedy tím začneme. Tak jako vždy, připojením se přes SSH do CLI a následujícím příkazem se připojíme do shellu samotného Node-RED běžícího v kontejneru Dockeru (je potřeba mít nainstalované funkční IOTstack Aliasy!):
NODERED_SHELL
Začátek příkazové řádky by se měl změnit na bash-5.0#
.
Poté si již můžeme vybrat variantu dle libosti. Můžete také nejprve použít defragmentaci, která vám ukáže reálně obsazené místo, kolik se podařilo ušetřit a následně vše smazat.
„Defragmentace“
Nyní zadejte příkaz:
npm cache verify --cache /data/.npm
Systém odpoví něco v tomto smyslu:
Cache verified and compressed (/data/.npm/_cacache):
Content verified: 1481 (200814574 bytes)
Content garbage-collected: 687 (46017485 bytes)
Index entries: 2447
Finished in 10.823s
V závorkách vidíte reálně obsazené místo, tedy v druhém řádku celkové, ve třetím ušetřené vymazáním nepotřebných balíčků.
Vymazání cache
Pro kompletní vymazání cache zadejte příkaz:
npm cache clean --force --cache /data/.npm
Pro ověření kompletního vymazání můžete využít opětovné zadání příkazu z bodu „defragmentace„, které zobrazí v závorkách samé nuly.
Nakonec ukončíme shell Node-RED příkazem exit
.