Re: set limits for memory usage

From: Ladinig Rudolf (r.ladinig_at_aon.at)
Date: 04/18/04

  • Next message: Jason Staudenmayer: "RE: Ping Driving me Crazy...."
    Date: Sun, 18 Apr 2004 15:29:41 +0200
    To: cs@zip.com.au, General Red Hat Linux discussion list <redhat-list@redhat.com>
    
    

    Cameron Simpson schrieb:
    > 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,

    Thanks for your answer,

    I did the following:

    [rladinig@boss rladinig]$ (ulimit -d 100000 ; exec
    /usr/local/netscape/netscape) &
    [1] 5351
    [rladinig@boss rladinig]$ top -b | grep netscape
      5357 rladinig 18 0 17036 15M 11028 S 0,0 6,2 0:00 0
    netscape-bin
      5357 rladinig 21 0 21432 19M 13156 R 14,7 7,9 0:01 0
    netscape-bin
      5357 rladinig 20 0 24904 23M 14488 S 14,5 9,3 0:02 0
    netscape-bin
      5357 rladinig 15 0 25540 23M 14892 S 6,7 9,6 0:02 0
    netscape-bin
      5357 rladinig 15 0 25576 23M 14900 S 6,9 9,6 0:02 0
    netscape-bin
      5357 rladinig 16 0 27836 26M 15216 R 11,7 10,5 0:03 0
    netscape-bin
      5357 rladinig 16 0 28668 27M 15632 S 22,5 10,8 0:04 0
    netscape-bin
      5357 rladinig 17 0 29244 27M 15680 S 18,5 11,0 0:05 0
    netscape-bin
      5357 rladinig 17 0 29692 28M 15800 S 21,3 11,2 0:06 0
    netscape-bin
      5357 rladinig 15 0 30440 28M 15800 S 9,9 11,5 0:07 0
    netscape-bin
      5357 rladinig 15 0 33088 31M 15812 S 9,5 12,5 0:07 0
    netscape-bin
      5357 rladinig 15 0 33780 31M 15812 S 11,3 12,8 0:08 0
    netscape-bin
      5357 rladinig 15 0 31256 29M 15812 S 12,1 11,8 0:08 0
    netscape-bin
      5357 rladinig 15 0 33380 31M 15812 S 14,5 12,6 0:09 0
    netscape-bin
      5357 rladinig 15 0 31992 30M 15816 S 16,9 12,1 0:10 0
    netscape-bin
      5357 rladinig 15 0 34956 33M 15816 S 18,7 13,2 0:11 0
    netscape-bin
      5357 rladinig 15 0 32848 31M 15816 S 17,3 12,4 0:12 0
    netscape-bin
      5357 rladinig 15 0 223M 158M 13884 D 16,1 63,6 0:14 0
    netscape-bin
      5357 rladinig 15 0 351M 187M 13380 D 16,6 75,3 0:15 0
    netscape-bin
      5357 rladinig 15 0 443M 199M 7060 D 14,7 79,8 0:16 0
    netscape-bin
      5357 rladinig 15 0 547M 189M 4248 D 18,3 76,1 0:17 0
    netscape-bin
      5357 rladinig 15 0 624M 195M 3424 D 9,1 78,3 0:18 0
    netscape-bin
      5357 rladinig 15 0 665M 223M 308 D 3,7 89,7 0:18 0
    netscape-bin
      5357 rladinig 15 0 667M 225M 132 D 0,9 90,4 0:18 0
    netscape-bin
      5357 rladinig 15 0 667M 225M 244 R 0,2 90,3 0:18 0
    netscape-bin
      5357 rladinig 15 0 667M 225M 260 D 0,0 90,3 0:18 0
    netscape-bin
      5357 rladinig 15 0 667M 224M 104 D 0,1 90,1 0:18 0
    netscape-bin
    /usr/local/netscape/run-mozilla.sh: line 384: 5357 Getötet
        $prog ${1+"$@"}

    After 18 sec netscape has filled 90% of memory.

    The script starts with pid 5351, netscape-bin with 5357. It looks like
    the limit is not working on netscape-bin.

    RLadi

    -- 
    redhat-list mailing list
    unsubscribe mailto:redhat-list-request@redhat.com?subject=unsubscribe
    https://www.redhat.com/mailman/listinfo/redhat-list
    

  • Next message: Jason Staudenmayer: "RE: Ping Driving me Crazy...."

    Relevant Pages


    Loading