From 76d60b87dda0b4fb1693fc1693e88d4582a584b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Greg=20Kar=C3=A9kinian?= Date: Tue, 7 May 2019 14:30:29 +0200 Subject: [PATCH] Reduce the memory usage of go-ipfs Lower the number of connections, change the routing mode to dhtclient, and disable bandwidth metrics. This is hardcoded for now --- recipes/default.rb | 23 ++++++++++++++++++++++ templates/default/ipfs.systemd.service.erb | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/recipes/default.rb b/recipes/default.rb index ab5652b..91dd18f 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -83,3 +83,26 @@ end ipfs_config 'Swarm.AddrFilters' do value node['ipfs']['config']['swarm']['addr_filter'] end + +# Do not keep track of bandwidth metrics. Disabling bandwidth metrics can +# lead to a slight performance improvement, as well as a reduction in memory +# usage. +ipfs_config 'Swarm.DisableBandwidthMetrics' do + value true +end + +# Disable the p2p-circuit relay transport +ipfs_config 'Swarm.DisableRelay' do + value true +end + +# Number of connections that, when exceeded, will trigger a connection GC +# operation +ipfs_config 'Swarm.ConnMgr.HighWater' do + value 10 +end + +# Minimum number of connections to maintain +ipfs_config 'Swarm.ConnMgr.LowWater' do + value 1 +end diff --git a/templates/default/ipfs.systemd.service.erb b/templates/default/ipfs.systemd.service.erb index 69eaf4e..a15ae81 100644 --- a/templates/default/ipfs.systemd.service.erb +++ b/templates/default/ipfs.systemd.service.erb @@ -2,12 +2,14 @@ Description=Start ipfs [Service] -ExecStart=/usr/local/bin/ipfs daemon --migrate +ExecStart=/usr/local/bin/ipfs daemon --migrate --routing=dhtclient User=ipfs Group=ipfs Restart=always # Raise the ulimit (max number of open files) LimitNOFILE=64000 +# Limit the memory usage to 256MB +MemoryMax=256M [Install] WantedBy=multi-user.target