2
$\begingroup$

For my project Blender is used to take .STL files, and render a GIF animation (first - several jpg are created and then merged together in an animation). This is all done using a server cron (daily). Obviously, I can't use GPU that can speed up things a lot.

I'm thinking about moving this blender-specific task out of the main server (so it won't make CPU nearly 100% while blender is working), so the application will work independently.

I'm using DigitalOcean for hosting, and it has standard droplets (like, containers or virtual machines) and optimized. Optimized has better CPUs (they are faster). But for the same price Standard droplet has more RAM.

So the question is: what is better for blender to work faster - to have more RAM with ordinary 2 or 4 vCPU (they have slower speed) and 4 or 8 Gb RAM, or better speed but for 2 vCPU and perhaps less amount of RAM (4 Gb)?

And how to optimize the server for blender speed? Any tips that can be applied in my server-related use case?

$\endgroup$
  • $\begingroup$ Similar question: blender.stackexchange.com/questions/95949/… $\endgroup$ – Crantisz Jan 19 '18 at 11:12
  • $\begingroup$ I'm still new to blender so correct me if I'm wrong. But wouldn't it be more efficient to run it on your own computer with a good GPU? I thought CPU rendering was really poor. I'd imaging doing it over an internet connection would be even worse. $\endgroup$ – LateralTerminal Jan 19 '18 at 17:58
  • $\begingroup$ Of course, using GPU will help a lot. But when you deal with hundreds and thousands of files, doing all that manually is just not an option and should be automated. Thus, server is in use in my case, which doesn't have GPU, so I need to work with CPU instead. I do not do it over internet connection. Blender is installed on Ubuntu server in the cloud. $\endgroup$ – Slava Abakumov Jan 20 '18 at 22:09
5
$\begingroup$

Note: I assumed that you are just running a single blender render instance on the system at the same time.

Depends on the complexity of you scenes. If these are rather simple scenes than not that much of RAM is needed. Adding more RAM will then not increase performance. More RAM will only increase performance when the machine is going to swap on disk.

If the complexity of the scenes are known, then the Amount of RAM can be received from blender easy (see top bar). Add some percentage slack and you will be fine.

If you still want to render more quick, then just add more CPU's. Blender is optimized to scale very well by just adding more CPU. It does not have noticeable overhead on memory.

Another way to increase performance is to optimize your scenes. There are a lot of topics and tutorials on area's where you can win speed.

So to answer short: Find RAM needed for the complexity of your scenes. Then just add more CPU's.

$\endgroup$
  • $\begingroup$ The scenes are rather small and simple (like, just a ring or a bracelet). $\endgroup$ – Slava Abakumov Jan 19 '18 at 10:47
  • $\begingroup$ Is it better to have more mediocre vCPU or less but better vCPU? $\endgroup$ – Slava Abakumov Jan 19 '18 at 10:48
  • 2
    $\begingroup$ That is something you should test. Technically there is a (very small) performance cost when comparing many smaller CPU's versus one larger CPU. It also depends on the average load of that system. It is better to have a less powerfull vCPU that is never idle, versus Larger vCPU's that can come idle more often. If that is worth it, depends on the price difference. In my opinion I would target for the smaller vcpu's and increase vCPU when needed. If you reach a boundary migrate to the larger vCPU's $\endgroup$ – J. Bakker Jan 19 '18 at 10:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.