Mohan
Mohan

Reputation: 3903

Allocating memory for process in linux

Dear all, I am using Redhat linux ,How to set maximum memory for particular process. For eg i have to allocate maximum memory usage to eclipse alone .Is it possible to allocate like this.Give me some solutions.

Upvotes: 0

Views: 6533

Answers (2)

MarkR
MarkR

Reputation: 63616

You can't control memory usage; you can only control virtual memory size, not the amount of actual memory used, as that is extremely complicated (perhaps impossible) to know for a single process on an operating system which supports virtual memory.

Not all memory used appears in the process's virtual address space at a given instant, for example kernel usage, and disc caching. A process can change which pages it has mapped in as often as it likes (e.g. via mmap() ). Some of a process's address space is also mapped in, but not actually used, or is shared with one or more other processes. This makes measuring per-process memory usage a fairly unachievable goal in practice.

And putting a cap on the VM size is not a good idea either, as that will result in the process being killed if it attempts to use more.

The right way of doing this in this case (for a Java process) is to set the heap maximum size (via various well-documented JVM startup options). However, experience suggests that you should not set it less than 1Gb.

Upvotes: 1

AndreKR
AndreKR

Reputation: 33697

ulimit -v 102400
eclipse

...gives eclipse 100MiB of memory.

Upvotes: 2

Related Questions