To calculate the actual RAM usage, you should have given traffic data for your peak Hours. Whole traffic in a day could never calculate the RAM actually required.
Anyway, I am trying to calculate based on the data you have given.
You said 500K-1M per day. On average, lets say 750K.
---- Now back to the point
Lets say, if a single visit consume 3MB data.
If you have optimized your web site images & used a CDN service, and used a good caching system, then you could save a lot of traffic from every visit by increasing re-usage content.
Most of sites, average time spent by any user on a website is less than 3 minutes.
And lets say average page views per user is 6.
Now lets calculate 1 hour data usage:
750K / 24 := 32K Visit
Next calculate 1 minute data usage:
32K/60 := 550 Visit
at last, calculate 1 second data usage:
550/60 := 9 Visit
So on each and every second your traffic would consume
9 * 3MB = 27MB Data.
That above amount of data need to be travelled from your Hard Disc to User Monitor via RAM using Server Bandwidth, where RAM is storing that data in its memory for next frequent usage.
RAM basically used for swapping data in between Hard Disc & CPU cache.
So basically, if an user visit a page, which is already visited by another user few moment ago, RAM would serve from its own memory, rather than calling it from Hard Disc.
In Computer Science, it is called HIT.
if another user visit a new page and if that page was not called before. So RAM need to bring that data from Hard Disc.
It is called MISS.
Now, if your Server RAM need to swap data very frequently, it would become less efficient.
So, If in every minute, whole data/content of RAM your RAM changed, then it is a bad sign & its telling you that you need more RAM.
Since, average time spent by any user on a website is < 3 minutes.
So we have to serve those users for 3 minutes, prior to the current on going second.
Because they can visit any other new pages during those 3 minutes visits. So we need take it in our count too.
So during those 3 minutes of period, following amount of data would be consumed.
it will become 27MB * 180 = 4860 MB := 5GB (approx)
So if my calculation is correct you should have at least 6 GB RAM, because other apps(OS/Web Server/Database/Framework-CMS) which are running on your machine, they need their own share on the RAM.
But, I know in peak hours a website generally gets 2x traffic than its normal time.
So optimum value of RAM would be 12GB according to my parameters