SQL Server Replication :: Dedicated Distributor Hardware Requirements
Running on a VM is a good idea as it's hard to define resource requirements but in most cases distributors are quite lightweight. The main factors are number of subscribers, transactions count and the number of articles in replication.

Some tips to help:


Only replicate what you need to, this includes SPs, views etc.
Using pull will reduce CPU and memory requirements on the distributor.


This is harder to implement in Web edition but possible with scripts.
If you have a lot of push agents running, you should allow more memory outside of SQL.
Consider increasing the desktop heap size if using push and have a lot of agents. (this is a registry change)

Choose the right type of replication.


Snapshot is light on distributors as it doesn’t have the overhead of the log reader or clean-up jobs but heavier on the network and the subscriber when pushing out. 

Enterprise edition doesn’t provide any real performance benefits on the distributor.


I hoped that merry-go-round reads would but no, it’s mostly in CPU when problems occur.

You may find it helpful to reserve some cores for the network as large distributors can get overwhelmed during imports or clean-up jobs and struggle to get the data out.


I’m talking 1000 subscribers and 100,000 articles (not my idea).

Throwing CPU at the distributor rarely fixes the high CPU issue. You need to treat the distribution databases like any other database and tune it (I believe Denny Cherry has an article which recommends some indexes).
CPU can also be caused by the locking and deadlocking during the clean-up job or large transactions failing to be delivered causing the subscriber agents to scan the entire table. You may find that reducing the frequency of the clean-up job actually help overall throughput but could impact latency.


In a nutshell, if replication is configured correctly, updates are batched properly (don’t update millions of rows in one transaction) and the subscribers are up to date then it’s happy.