CrashPlan Crashing on Synology DS412+ Keeps Closing – Increase JVM Heap

So I’ve had a Synology for a long time, and issues with CrashPlan Crashing – before this I used to have a great little D-Link NAS and I’ve been using CrashPlan on Synology DS412+ for a long time too (since I got it pretty much).

I upgraded from the D-Link for storage reasons, plus the apps available on the Synology + faster performance and you can install things like CrashPlan, Plex and so on.

I’ve forever had issues with CrashPlan though, crashing on scanning, crashing on upload because my file set is too large (my photos folder alone is over 120,000 files).

CrashPlan on Synology DS412+

And I’ve tried all kinds of tweaks, settings, changes etc and it was also getting really hard to get the CrashPlan client on my Windows desktop machine to connect to the headless installation on the Synology to configure folders, check progress etc.

Especially seen as though it crashed every few minutes, it always got disconnected.

So here’s how to get it all working as of now, with the current versions etc.

Installing CrashPlan on the Synology DS412+

This part is fairly straight forwards, find CrashPlan in the community section of the Synology Package Center.

Installing CrashPlan on Synology

Also at the same time, go and download the latest version of Oracle Java JRE (Which it will ask for, in this case speifically jre-8u111-linux-x64.tar.gz) – which you can find here:

Java SE Runtime Environment 8 Downloads

Once downloaded, copy it to the /Volume1/public folder on your Synology, select custom Java 8 and the installation should proceed just fine.

After it’s installed just click Run in the drop down menu and you’re good (check the log to make sure it started ok).

CrashPlan running on Synology

Configuring Headless Access from Windows 10

This part seems really technical, and honestly it is quite technical – if you aren’t familiar with SSH and PuTTY you might get a little lost here. You’re probably already using CrashPlan client on your Windows machine to backup your files (and if you’re not you SHOULD) so you have the client but you need to do a little fiddling and port forwarding to get it working.

Also close the CrashPlan client before you start any of this.

So first things first, you need PuTTY or an equivalent SSH client, and you need to connect to your Synology, use the login as admin and your admin password on port 22.

Get the Authentication Token

The first thing you need to do is retrieve the ID from the Synology CrashPlan installation which you can find with this command:

cat /var/lib/crashplan/.ui_info

You’ll recieve a string like this:

4243,51a7a772-2c62-42d3-9428-ad51a710fd7b,0.0.0.0

This is the port, auth token, IP address. Save this somewhere as you need this to access the headless install with the CrashPlan client.

Edit the Local CrashPlan Config

So now you have the token what you need to do is edit your local CrashPlan client config, for me on Windows 10 with CrashPlan installed for all users this was located at:

C:ProgramDataCrashPlan.ui_info

What you need to do is change the port to 4200 and replace the existing auth token with the one you retrieved from your Synology.

Start Port Forwarding with PuTTY

This is the final step you need to do before launching your client, so what I suggest is you save an entry in your PuTTY Sessions for the Synology and then you need to open the config section under Connection -> SSH -> Tunnels and add a port forward with the following details:

Source port: 4200
Destination: localhost:4243

PuTTY Synology Port Forward

Click add, then connect to your Synology with this SSH session – this should activate the port forward.

Start the CrashPlan Client

Fire up the client, it might take a little longer than normal, but it should connect to your Synology and give you the option to add folders, configure the backup options and so on.

CrashPlan on Synology DS412+

So you can see it’s half way through scanning and already 80k files and over 250GB, my whole set is about 130k files and over 500GB and it works well with the below tweaks.

You can stop here if you have a smaller data set and not many files and everything will work just fine, but if you have a larger data set and are having problems with the CrashPlan service on the Synology crashing/closing/disappearing regularly (in my case every 1-2 minutes you’ll need to make the below changes.

Adjusting the JVM Heap size to accommodate CrashPlan

The problem is the Synology DS412+ is fantastic in many ways, but it only has 1GB of RAM – this is great for most things, but CrashPlan with a large data set is a hungry beast. Fortunately it also has 2GB of Swap so you can push the limits a little bit unless you dare to upgrade your NAS with more RAM (which is also an option up to 4GB).

Ok so what you need to do here is stop the CrashPlan service in the Synology dashboard so you can edit the config files. You’ll need to use vi (pain in the arse) but that’s what it has installed.

To get started, you’re probably still connected via SSH to the Synology, but if you aren’t reconnect. I’m gonna leave the vi lessons out here, so you’ll have to figure that out yourself.

To edit the first file use this command:

sudo vi /volume1/@appstore/CrashPlan/syno_package.vars

Have your password handy, as you’ll have to enter it again.

When you’re in the file, right at the top add:

USR_MAX_HEAP=1536M

Then for the second file:

sudo vi /volume1/@appstore/CrashPlan/bin/run.conf

You’ll find a really long line that looks like this:

RV_JAVA_OPTS="-Dfile.encoding=UTF-8 -Dapp=CrashPlanService -DappBaseName=CrashPlan -Xms20m -Xmx512m -Dsun.net.inetaddr.ttl=300 -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.negative.ttl=0 -Dnetworkaddress.cache.negative.ttl=0 -Dc42.native.md5.enabled=false -Djava.io.tmpdir=/volume1/@tmp -Djava.net.preferIPv4Stack=true"

You need to change that to:

RV_JAVA_OPTS="-Dfile.encoding=UTF-8 -Dapp=CrashPlanService -DappBaseName=CrashPlan -Xms128m -Xmx1536m -Dsun.net.inetaddr.ttl=300 -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.negative.ttl=0 -Dnetworkaddress.cache.negative.ttl=0 -Dc42.native.md5.enabled=false -Djava.io.tmpdir=/volume1/@tmp -Djava.net.preferIPv4Stack=true"

These are the recommend settings for this model with 1GB RAM and 2GB Swap (the default config), obviously if you have more physical RAM you can go even higher.

Restart the service on the Synology, connect the CrashPlan client and check the config by double clicking the house, then typing java mx you should see this:

CrashPlan Java Heap Size on Synology

That means everything is good and your backups should work fine.

Mine hasn’t crashed at all yet.

If you have any questions, feel free to ask below in the comments.

Comments

comments

Subscribe

You can subscribe via e-mail to get my posts in your Inbox, or stalk me on numerous other platforms.

Follow my Dayre!

, , , , , , , ,


No comments yet.

Leave a Reply