Hi Piyush,
Unfortunately I don't think that there is any useful math I can give you to that you that would allow you to set your ring buffer size. There are too many external factors at play, such as message size and working set size of your business logic.
In a general sense smaller is better as it will improve the temporal locality of the message data and will leave more of the L3 available for other processing. However, the buffer size should be sufficiently large, such that if there a burst of activity, the producer won't run into a full ring buffer while it waits for the consumer(s) to process the backlog of messages. So unless you need to be able to deal with larger bursts or are running into cases where the publisher thread is blocking, I wouldn't change the size of the ring buffer. Larger doesn't necessarily mean faster.
At LMAX we use the ring buffer as a recovery window, so the key requirement for the sizing of our buffers is based on how big we want our recovery window to be.
Mike.