Raspberry Pi 3 vs Raspberry Pi 4? Worth the upgrade for storj?

I have a Raspberry Pi 3 that I use for storj and I am thinking about getting a Raspberry Pi 4.
Has anybody here used both raspberry Pi 3 and 4 for storj? If so, have you noticed a significant difference between the two with regards to storj performance?

Also, for me this is more of a hobby than a source of income so it’s not essential that the upgrade pay for itself but it would be nice to know ahead of time if the upgrade even makes a practical difference.

I have read from SNOs that have used or upgraded to RPi4 that RPi4 with 4GB is a better choice than RPi3. There is a memory issue with RPi3 & docker so 4GB helps rectify it. Also RPi4 has USB 3 which is faster than USB 2 ports on RPi3. Others can definitely add more to this :slight_smile:

1 Like

The RPi4 CPU is also a bit more powerful.
But I think @nerdatwork is right: the main issues with RPi3 are:

  • not enough RAM to be future proof, although mine is not using more than 400MB right now (but more is always better as linux makes use of ‘free’ ram for caching many things to be faster).
  • 100mbps ethernet, although that’s probably enough for STORJ - My RPi rarely goes above 30mbps when uploading/downloading pieces of data. For now at least… :slightly_smiling_face:
  • USB2 only - however I think it’s not a real issue as the ethernet connection will be the bottleneck. Maybe it could slow things down a bit if you were to plug many hdds to it… For me the real problem with RPi usb ports (RPi 3 and 4) is that they do not provide proper power for plugging 2.5" HDDs.

On the other hand, I do not have the figures but I guess that RPi3 consumes less power and stays cooler than RPi4 (mine is above 63°C at all time despite some small heatsinks installed, and we’re in winter… Not sure how it’s gonna be during summer).

If I were you I think I’d give it a go to see how it performs by closely monitoring RAM, network & cpu usage. It’d nice to check its T° and power consumption too. And if everything looks good after the vetting period, then maybe it’s not worth buying anything for now: use what you already have, that’ll be more profitable.

And if something is off, then you could always buy a RPi4 later if you wish.

1 Like

Well, if you are using a Raspberry 4 - you can check out this one:

I’ve used Pi 2 for a couple of months, then Pi 3 for another month and then Pi 4/4GB.
The most prominent improvement in Pi 4 is that USB ports are not sharing the single USB 2.0 controller’s bandwidth with the network. With Pi 2&3 it was a limitation even on a 100Mbps network if I was receiving and saving that data to the disk.

I can also say that 1GB vs 4Gb makes a lot of a difference when it comes to caching data from disk. E.g., the hourly chores (like GetExpired) will issue lots of small random reads to the database and if it resides on a spinning disk then it’d take time while utilizing the disk at 100% (I was mostly concerned with the HDD making noise). Extra RAM helps a lot by caching the needed pieces of the database.

I wouldn’t be concerned about the power usage, they’re both fairly low power devices and will probably cost you just $1 a month (add another $1 for the spinning disk).

P.S. I have an SSD for the system and pieceinfo.db and now these hourly chores are noiseless even if the DB is not cached.

1 Like

I had used a pi2 then a pi3 back in the v2 days. I can’t speak to the pi4, but I am running my node on a rock64 4GB which is similar. I would definitely suggest the pi4 or similar over the pi3. I got my rock64 in anticipation of the v3 alpha as I was not impressed with the performance of v2 on the pi3 (v2 was by most accounts more resource hungry than v3 is right now).

At the time when I bought the rock64 the pi4 didn’t exist, but I personally would still go with the rock64 (or similar) because it has the ability to use an eMMC memory chip as the boot/OS drive. I have owned and used the pi1, 2 and 3 since they launched years ago, and I with each of these devices they always ran fine until eventually the SD card would go bad/get corrupted and I would have to reinstall the OS. YMMV, but I have had too many bad experiences with SD cards to trust them for anything I actually care about.

1 Like

I think @baker makes a good point here.
I did destroy an SD card once by recording temperature data on it every minute for 2 years.

I lost all the data on it, it was not even partially readable anymore by any OS…

This said, the RPi team is planning on upgrading RPi4’s firmware so it supports booting from an external HDD in the future. So I thought I’d reconsider booting from another device than the SD when this releases.

YMMV, but I have had too many bad experiences with SD cards to trust them for anything I actually care about.

For what it worth, I learned the hard way as well that the SD card should only contain the /boot partition and everything else should reside on a USB disk.

Thats how i had my first rpi setup years ago.

Boot from sd and the rest feom hdd

@xopok & @John.A That’s actually what I tried to do on my RPi4, but I kept getting random problems, mainly when booting or rebooting the Raspberry: Sometiles I would get the 7 green flash signal, meaning it could not find a file on the SD card. Usually, when stuck like this, I just had to unplug it from the power source and plug it back for it to reboot correctly. Never found out why…
I tried 2 different SD cards. Same issue.

Thought it could be because of my setup redirecting the boot sequence to the external hdd, so I gave up for now, and stuck to the conventional way of running a RPi… :confused:

Love my Pi4 node. No issues. 100% uptime/audits
Which I would have started with Pi4 but they were not out so I did a large server build

Hey all,

When following the guide located here to install a storagenode on a raspberry pi 4 i noticed the options:

–memory=800m
–log-opt max-size=50m \
–log-opt max-file=10 \

which are not in the typical settings for the windows OS. I guess it has something to do with limiting the performance to the pi doesn’t hang. Is this still valid for the pi 4?

Kind Regards,
Adam

I would definitely recommend those log settings on any rpi device to prevent the sd card from filling up. The memory would depend on which rpi 4 you got. This was made for the 1GB version. If you have the 2GB version you can raise the memory setting to say 1800m. For 4GB you probably don’t need it at all or you can set it to 3800m.

Thank you! I have the 4GB version. Is there an advantage to changing the memory? I mean, I am trying to optimize my node’s performance. I have been getting a lot of failed uploads lately.

There shouldn’t be much of a difference if any at all. These instructions predate a lot of software optimizations and it wouldn’t surprise me if these memory limits are never even hit anymore. For the 4GB version I would just remove the memory parameter. You shouldn’t need it at all.

Failed uploads are a bit of a misnomer though, especially now that due to aggressive closing of the connection a lot of those failed uploads are actually still completed uploads. I wouldn’t worry about it too much. From comparisons of people who have both rpi and other nodes they report that the rpi only actually gets about 5-10% less data despite a much higher failure rate.

1 Like

Hello,

Could you please explain about these settings:

–memory=800m
–log-opt max-size=50m \
–log-opt max-file=10 \

When i was starting my nodes in RPi, these extra lines wasn’t in use yet.
As i understand log max size and log max file, it is just the limit for the log file size. Is this correct?

But what about memory? Is this to reduce or to expand the usage of memory? I have few RPi’s, with 1,2 and 4Gb of RAM. But non of it ever used more then ±400Mb of RAM yet. So why do i need this line?

@xopok you say that 4Gb makes a log of difference when it comes to caching data. But is there any specific way to enable it?

Older versions of the storagenode software had some memory peaks and in theory they could perhaps still happen during heavy traffic times. Pi’s didn’t like running out of memory and started throwing errors and became unresponsive. The memory limits can prevent that. But for the 2GB and 4GB versions you can raise the limit to 1800 or 3800, though I doubt you’ll ever hit those. If you use a GUI OS though you should subtract another 200 though. So 600, 1600, 3600.

The log options are maximum size per file and number of files to keep.

3 Likes

Just tried these optional settings and got the warning after starting the container. Should i worry or change anything? This is on RPi 4, 1Gb.

WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.