Since my question is getting longer and longer, I decide to re-write the whole question to make it better and shorter.
I run my website on dedicated server with 8GB
Just to recap (I'm adding this answer quite a distance from the original question):
If these are all valid then the only possible explanation is that the 6Gb is very fragmented - which I think is a little unlikely. You didn't say how PHP is invoked from Apache - mod_php? fpm? Fcgi?
I would start by examining each of the above predicates - particularly the free memory one. How do you know that there's 6Gb free when the error occurs? A more likely cause is that there's a memory leak occurring which you're not spotting.
You've not provided any details of how apache is configured; I'd also have a look at reducing MaxRequestsPerChild and MaxMemFree. (I'm not very familiar with worker apache where this will apply per thread - really you need a limit per process). If you provided the core setting from the apache config then maybe we could make further suggestions.
Unless you are using Ajax extensively, make sure your keepalive time is 2 or less.