This really depends upon the applications that will use the Swarm cluster. A general guideline is to use 1GB of RAM per 1TB storage, or per two disk devices in a node. Factors that affect this include the average size of the objects being stored, the usage profile (read/write rates), whether overlay index will be used, and Erasure Coding settings (if configured). As of Swarm 9.0, there is a minimum of 2GB per node process otherwise the console will show a warning. As of Swarm 14.0, 4GB per node process is required.