Lily Hardware requirements
Lily's requirements depend on which tasks the Lily daemon is asked to run.
Lily’s base hardware requirements are those of a Lotus node.
From that point, the requirements depend on how you intend to operate Lily and what tasks you will run.
We attempt to characterize the heaviest load scenario to illustrate some of the performance concerns and limitations.
The Sentinel team operates Lily on
r5.8xlarge AWS instances and have found
this sizing to accommodate the majority of the workload we ask of Lily. This
instance comes with:
- 256GiB RAM
- 32vCPU running on 3.1Ghz Intel Xeon (Skylake-SP or Cascade Lake)
- 10Gbps network access
- 3Tb EBS volume (w 6,800Mbps EBS transfer rate)
A typical deployment of Lily will configure two server instances w the following four Jobs:
- Instance #1
lily job run --storage=db --window=30s --tasks="blocks,messages,chaineconomics,actorstatesraw,actorstatespower,actorstatesreward,actorstatesmultisig,msapprovals" watch --confidence=100 lily job run --storage=db --window=30s --tasks=actorstatesinit watch --confidence=100 lily job run --storage=db --window=60s --tasks=actorstatesmarket watch --confidence=100
- Instance #2
lily job run --storage=db --window=60s --task=actorstatesminer watch --confidence=100
The reason is that this allows watch tasks to run in parallel in a way that is
most effective. The miner task is specially heavy and needs dedicated
resources, as otherwise it is too slow and will last more than 30
seconds. This is also the reason why the
window is extended to 60 seconds in
some cases, so that those tasks can occassionaly run for longer.
Lily Tasks are typically memory-bound, then disk-bound before they are CPU-bound. Disk IO and CPU usage are not as highly demanded as memory. Memory-optimized hardware should be prioritized for Lily deployments.