1 |
>> I'm trying to maximize the number of servers I can run on my machine |
2 |
>> without running out of physical RAM. I noticed something strange when |
3 |
>> comparing top and free statistics: |
4 |
>> |
5 |
>> top says each PID associated with a particular server has a RES of |
6 |
>> about 100M. Does that mean each running instance of that server |
7 |
>> reserves 100MB? Since there are 20 of these servers running, this |
8 |
>> seems contradictory to the output from free which indicates less than |
9 |
>> 1GB used -/+ buffers/cache. |
10 |
> |
11 |
> RES does not mean reserved. It means resident. |
12 |
> |
13 |
> "man top" and searhc for RES for more info |
14 |
|
15 |
OK but from what I can gather the concept is the same which is that |
16 |
RES indicates how much RAM the process is using. |
17 |
|
18 |
>> Is there any way to monitor RAM usage over time to see how close I'm |
19 |
>> getting to using all of my physical RAM? |
20 |
> |
21 |
> Not really if instantaneous values is what you are looking for. |
22 |
> |
23 |
> All tools that purport to display "memory used" and "cpu load" values on |
24 |
> an instantaneous basis basically lie through their teeth, and it's a |
25 |
> fallacy to try and interpret such results to gain anything meaningful. |
26 |
> |
27 |
> It can't be any other way actually - memory usage can change |
28 |
> dramatically 10,000 times a second, and that is precisely what the |
29 |
> computer is designed to do, and to do it fast, and to do it invisibly. |
30 |
|
31 |
Good point. I suppose we would need the Linux memory system to do |
32 |
some kind of built-in self-monitoring. |
33 |
|
34 |
> "using all of my physical RAM" is also a concept that really makes no |
35 |
> sense in any meaningful way. You can't treat it like eg the amount of |
36 |
> water left in a bottle. All of memory is always in use all of the time, |
37 |
> it's always doing *something*. Most of it is under the kernel's control |
38 |
> and is used for caching, and the kernel is free to move things around as |
39 |
> it sees fit. Memory is also shared, you can easily have a situation |
40 |
> where 10 apps each have access to Y megs of RAM and total memory in use |
41 |
> is still only a little bit more than Y |
42 |
|
43 |
Does this explain why I can see 20 processes in top with 100MB |
44 |
resident RAM each and free only indicates 1GB used -/+ buffers/cache? |
45 |
If so, how can I go about setting apache2 MaxClients and other server |
46 |
process limits so as to maximize performance and prevent an OOM |
47 |
condition? |
48 |
|
49 |
> The best you can really do is keep an eye on what free says, and to |
50 |
> graph the trend. |
51 |
|
52 |
Can you recommend an easy way to do that? |
53 |
|
54 |
- Grant |