Optimization Guide - abueide/harry-plotter GitHub Wiki

I'm by no means a plotting expert, but I can share some of the basics & knowledge I've learned about plotting, as well as some strategies to try and optimize your settings.

How much ram?

Allocating above the current default ram (currently 3390 MiB) will provide no performance benefits. Using too much ram though will cause your OS to start using virtual memory (called SWAP on linux or your PAGE file on windows). Virtual memory basically creates a buffer on your ssd/hdd that acts as ram but is much much slower than ram. Generally decreasing the amount of ram each plot job uses will improve performance if it stops your OS from making chia use virtual memory. Decreasing the amount of memory each plot job has access to just means that chia won't be able to apply some performance optimizations that require a certain amount of ram. Virtual memory however will always be slower than the benefit of these optimizations, so just make sure you have enough ram to run all of your jobs. Check out the optimization guide on how to find a good ram number for your machine using k25's so you don't have to wait 6 hours between tests.

How many threads?

I don't know I haven't played around with this at all. I just leave it at the default 2. Using more is probably bad if you're running a lot in parallel.

What stagger settings?

Theres a few different types of staggers that serve different purposes. Phase 1 stagger is useful because it is a CPU intensive phase meaning that you can launch a new plot in phase 1 as soon as one of the other plots leaves phase 1 to maximize your CPU usage. So generally you want to set the max phase 1 stagger to the highest number of plots you can run in phase 1 until your cpu hits 100%. If you don't have enough drives to do this, just set it to 0 for no maximum.

I'm not quite sure what the phase 2-4 stagger is useful for but some people asked for it so I added it.

The static stagger is useful because it makes it less likely that plots will be competing for the same resource at the exact same time. For example if you start all at the same time they will be locked in sync and every one of them will be trying to max out the cpu at the same time. Then when they're done with the cpu they will try to max out the disk IO at the same time. Static stagger makes it more likely that one plot will need cpu resources while the other plot needs disk IO thus increasing your total plot throughput. As for what to set this number, I don't know just play around with it and try to get higher numbers on the stats screen.

Testing with k25/k26/k27

I highly recommend you test your set up using k25/26/27 plot jobs. This will make sure your stagger settings are set up how you want it and is working how you expect it to. Since the completion times are much much faster, it will help you tune some of your settings a lot faster as well since you don't have to wait 6 hours for performance results. It will also help you figure out how many plots you can run in parallel during each phase as well as find a good ram value to prevent usage of virtual memory. This will probably not, however, help you find good static stagger settings since the timings will be completely different for k32's. It might help you find good phase stagger settings though since cpu usage should be similar during the same phases I think.

You can use k sizes lower than 32 by setting the "k" field to 25 and adding "--override-k" to the extra args field.

Trim

Trimming your SSDs regularly will increase longevity & performance. How you trim your SSD can be different depending on the model of SSD. Generally you can do this by installing your ssd brand's firmware/management software. You can also set up window's auto trim/optimization feature to trim daily. I don't think you can trim dynamic disks which kinda sucks for the ones I have set up to be able to run an extra plot on my 250 GB ssd that wasn't big enough.