Re: set limits for memory usage

From: Cameron Simpson (cs_at_zip.com.au)
Date: 04/18/04

  • Next message: Shiraz Baig: "Linux amongst Sun"
    Date: Sun, 18 Apr 2004 09:07:39 +1000
    To: General Red Hat Linux discussion list <redhat-list@redhat.com>
    
    

    On 18:28 17 Apr 2004, Ladinig Rudolf <r.ladinig@aon.at> wrote:
    | Some days ago, when i visited Website www.hsecomputers.de and searched
    | at this website for a certain product (asante), the browser didn't load
    | for a long time and then all applications freezed. [...]
    | When I searched for the reasons for this, I found that the browser
    | (mozilla, firefox or netscape) was using more and more memory, until the
    | whole physical and swap memory was used by the browser. Then the OS was
    | unable to react to a user's input.
    |
    | My question: I didn't find any possibility to limit the memory a single
    | application or a single user can use. I'm sure, a multitasking and
    | multiuser OS has this capability.

    You want the ulimit shell builtin command.

    Example: to limit mozilla you might say:

            (ulimit -d 100000; exec mozilla)

    which would limit it to 100MB of data segment. Note that we put the
    ulimit in a subshell so as not to affect your main shell.

    Also note that mozilla is a little special - the command you run is
    actually a wrapper script that only runs the real mozilla if you haven't
    got one up already. Otherwise it runs mozilla-xremote-client to tell the
    existing one to open a new window. So if mozilla is already up this won't
    work, because it will limit the mozilla-xremote-client, and not affect
    the active mozilla at all. You need to get in for the first invocation
    of mozilla for this.

    "man sh" says:

           ulimit [-SHacdflmnpstuv [limit]]
                  Provides control over the resources available to the shell and
                  to processes started by it, on systems that allow such control.
                  The -H and -S options specify that the hard or soft limit is set
                  for the given resource. A hard limit cannot be increased once
                  it is set; a soft limit may be increased up to the value of the
                  hard limit. If neither -H nor -S is specified, both the soft
                  and hard limits are set. The value of limit can be a number in
                  the unit specified for the resource or one of the special values
                  hard, soft, or unlimited, which stand for the current hard
                  limit, the current soft limit, and no limit, respectively. If
                  limit is omitted, the current value of the soft limit of the
                  resource is printed, unless the -H option is given. When more
                  than one resource is specified, the limit name and unit are
                  printed before the value. Other options are interpreted as fol-
                  lows:
                  -a All current limits are reported
                  -c The maximum size of core files created
                  -d The maximum size of a process's data segment
                  -f The maximum size of files created by the shell
                  -l The maximum size that may be locked into memory
                  -m The maximum resident set size
                  -n The maximum number of open file descriptors (most systems
                         do not allow this value to be set)
                  -p The pipe size in 512-byte blocks (this may not be set)
                  -s The maximum stack size
                  -t The maximum amount of cpu time in seconds
                  -u The maximum number of processes available to a single
                         user
                  -v The maximum amount of virtual memory available to the
                         shell

                  If limit is given, it is the new value of the specified resource
                  (the -a option is display only). If no option is given, then -f
                  is assumed. Values are in 1024-byte increments, except for -t,
                  which is in seconds, -p, which is in units of 512-byte blocks,
                  and -n and -u, which are unscaled values. The return status is
                  0 unless an invalid option or argument is supplied, or an error
                  occurs while setting a new limit.

    Cheers,

    -- 
    Cameron Simpson <cs@zip.com.au> DoD#743
    http://www.cskk.ezoshosting.com/cs/
    WHAT"S A ""K3WL D00D"" AND WH3R3 CAN 1 G3T S0M3!!!!!!!!!!!????????
            - Darren Embry
    -- 
    redhat-list mailing list
    unsubscribe mailto:redhat-list-request@redhat.com?subject=unsubscribe
    https://www.redhat.com/mailman/listinfo/redhat-list
    

  • Next message: Shiraz Baig: "Linux amongst Sun"

    Relevant Pages


    Loading