[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Virtual Memory gone mad



2009/3/10 Jonathan Ryshpan <jonrysh pacbell net>:
> Investigating why my computer had suddenly become very s.l.o.w, I
> noticed that virtual memory usage had become very large.  Following is
> an extract from a "$ ps axuw" for the system sorted according to VM
> usage, the top 20 processes in VM usage.  Does anyone know why evolution
> + evolution evolution-data-server use not quite 2 GBytes?  Or why the
> ordinary applets use together 1.4 GBytes?  Or why sealert uses about 0.5
> GBytes?  Or anything else on this list?
>
>  PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> 2656  1.2  5.2 1668576 53708 ?       Sl   12:20   1:26 evolution
> 2662  0.0  0.2  444628  2680 ?       S    12:20   0:00 /usr/bin/python -E /usr/bin/sealert -s

You can't add up the VSZ sizes of processes and arrive at a simple
sum, because you don't have enough information.

Program 1 links to library A and uses shared memory B
  => VSZ1 = SizeOf(1) + SizeOf(A) + SizeOf(B)
Program 2 also links to library A and uses shared memory B
  => VSZ2 = SizeOf(2) + SizeOf(A) + SizeOf(B)

So you'd think that the total memory in use would be VSZ1+VSZ2,
but each library is only in memory once so in actual fact it's only
VSZ1+SizeOf(2).

To look at it another way, say you have 1000 processes running using
1kb, each linking in a different library of 1kb. The VSZ of each of
them would only be 2kb. You then have an additional process using 1kb
running, that links in *all* of the 1000 libraries already in memory.
It's VSZ would be 1001kb, even though it's actually only using 1kb
more of memory.

But yes, Evolution is a memory hog ;o)

-- 
Sam


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]