Welcome to VM -- Once a host has been running a while, free ram pages of memory only occur in the window from when programs exit until other programs have not used up the freed pages, which were caching the heap and stack (swap backed pages). If you mmap() a file, and access the pages, they lay in ram until needed. You could exit, rerun, mmap() the same file, and read those same pages of ram. This works great for dynamic libraries, databases and all other sorts of stuff. All ram is a cache for disk.
I have two Solaris 11 VMs with Oracle Clusterware running on VBox, both of them with 4GiB RAM, problem is they get slower and slower and then all of a suden one of them gets crashed, it happens so frequently that I just cannot work, increasing RAM is out of question, previously I was running the same setup on Oracle Linux 5 and I was able to tweak the memory using the above script and never got a crash.
I need to find a way to tune the memory in solaris so the VMs can stay up and I can do the work.
Here are the mem stats from one of the server, this will give you an idea as to whats happening and you may be able to suggest me a way to tune them.
Just to let you know I am very new in Solaris so every bit of information will be very helpful to get this problem resolved.
echo ::memstat | mdb -k
Please have a look at above stats and suggest me what to do.
While in Linux the page caches can grow to 100%,
you see the page caches in Solaris are at 6%. No need for a drop_caches trick.
It looks like your Oracle DB consumes 2GB or more.
Take it down, and redo your memory measurement for comparison.
This User Gave Thanks to MadeInGermany For This Post:
If I understand your question correctly, you are asking for an explanation of Solaris memory manager. You'd better ask Oracle that question because you are talking about Solaris kernel internals.
The operating system kernel has no reason to kick a process's memory set out of real memory until... (4 Replies)
Hi guys.
I've a question, if we are using a syscall that receives a string allocated dynamicaly to a determined size, or NUL and it will allocate the apropriate size. We should free the memory or the OS will do it for us?
If a function returns a pointer we should free that poiter when we are done... (7 Replies)
I was running a program and it stopped and showed "Out of Memory!". at that time, the RAM used by this process is around 4G and the free memory size of the machine is around 30G. Does anybody know what maybe the reason? this program is written with Perl. the OS of the machine is Solaris U8. And I... (1 Reply)
hi, I have done the below, but am confused as to how much memory is "free"
please help
thanks
$ free
total used free shared buffers cached
Mem: 132033488 48827536 83205952 0 1007696 45404632
-/+ buffers/cache: 2415208 ... (7 Replies)
Hi all,
Could please let me know how to get the more memory free space (not added the RAM) in local zone.
-bash-3.00# vmstat 2 5
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s1 s1 in sy cs us sy... (3 Replies)
Hi,
Im working on Solaris 9 on SPARC-32 bit running on an Ultra-80, and I have to find out the following:-
1. Total Physical Memory in the system(total RAM).
2. Available Physical Memory(i.e. RAM Usage)
3. Total (Logical) Memory in the system
4. Available (Logical) Memory.
I know... (4 Replies)
HI
I'm a rookie in C programming and I'm working in Monta Vista Linux. I have to write a program that displays free memory. I have memtester(allready written by someone else) and now I have to type how much amount of memory tester will test and I want that memtester finds out himself how much of... (11 Replies)
For example if i have the piece of code as follows:
CountryName = (char *)malloc((strlen(CountryName)+1)*sizeof(char));
memset(CountryName, 0, strlen(CountryName)+1);
CountryName = SOME VALUE
Now how do i free the memory after use of this code???? :confused: (3 Replies)