3

In Debian Jessie 64-bit with Gnome 3.14.1, System Monitor shows evolution-calendar-factory process is using 1.1 GiB, and evolution-alarm-notify is using 826.6 MiB of virtual memory. I don't use no calendar or alarm, so isn't this somewhat out of purpose? Almost 2 GiB of memory (even virtual) for what, exactly? How can I lower this to be proportional to usage (i.e. almost nothing). Actually my only "calendar use" is that small calendar that pops up when I click on the date in the top bar, and need to browse a few months to see which day of the week some nearby date was/will be. Considering I cannot even browse full years there (only month by month), it seems the biggest waste of memory I've ever seen.

When I click on the date in the top bar, and then choose "Open Calendar", I get a Welcome screen, where I read: "Welcome to Evolution. The next few screens will allow Evolution to connect to your email accounts, and to import files from other applications." That means Evolution isn't connected to anything yet, so what are those 2 GiB of memory for?

Another, related question: where is all this virtual memory located (gnome-shell and firefox-esr are using another 3.2 GiB), since I have 0 (zero) byes of Swap usage?

  • 1
    It's really impressive how most people nowadays think "but memory is so cheap" and just neglect completely the principles of good programming, one of them used to be NEVER WASTE MEMORY! – Rodrigo Apr 5 '17 at 12:37
  • Virtual size is not actual memory usage. RSS/resident will be closer to reality than the virtual numbers. If you want a figure that's close to physical used memory, look at PSS in /proc/${pid}/smaps. – Matt Apr 6 '17 at 13:14
  • Thank you, @Matt. But even if it's on disk, don't you think 2 GiB is a huge waste for something I don't even use? Something I've never configured to use? The file you mention looks to occupy 0 bytes, when I cat it, I see an interminable list of things, with many PSS values, ranging from 0 to a few kB each. Impossible to sum them all. Any better way to inspect it? – Rodrigo Apr 6 '17 at 17:08
3

The virtual size or vsz of a process is not physical memory usage.

Virtual memory can be allocated space and not used physical space. It can also be mmapped files which are already backed by disk. 64bit machines should be able to address 256TiB of virtual space. The virtual space metric was more important on 32 bit machines when processes were trying to allocate > 2GB without PAE when it was possible to hit the addressable limits.

Unlike Windows, the term "virtual memory" does not refer to the area where active memory is paged to disk. This is referred to as swap space.

If you want something closer to actual physical memory usage per process, look at the PSS metric in /proc/${pid}/smaps which accounts for shared memory.

awk '/^Pss:/ { total += $2 } END{ print total }' /proc/*/smaps
  • Sorry, that's not clear yet. I know the ~2 GiB are not in RAM. But are there ~2 GiB of disk space used or not? – Rodrigo Apr 7 '17 at 1:17
  • No. No additional disk space is required for the virtual memory itself. Only once the virtual allocated space becomes used/physical memory could it be paged out to swap space on disk. – Matt Apr 7 '17 at 1:58
  • ...and as mentioned, that memory usage is tracked under different metrics. – Matt Apr 7 '17 at 1:59
  • I see. Probably it is ask too much to know why they made the program like that. I mean, why reserve so much virtual space, if it's not going to be used? But you already helped me a lot, thank you! – Rodrigo Apr 7 '17 at 12:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.