The Elasticsearch documentation states...
Because Elasticsearch does not maintain these transient data structures in memory, frozen indices consume much less heap than normal indices. This allows for a much higher disk-to-heap ratio than would otherwise be possible.
With a 30GB heap and shards in the 20-40GB range, I believe the recommendation for non-frozen shards per node would be 600 shards (20 shards/1GB of heap). I have not seen anything documented on what is a reasonable ratio for frozen indices. How many frozen shards can a node with a 30GB heap hold?