标签: ulimit

Mac OS X 10.6 上 ulimit 的奇怪行为

使用 ulimit 时出现一些非常奇怪的行为。我只是打开一个新的外壳

Hector:~ robertj$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited 
open files                      (-n) 256 
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 532
virtual memory          (kbytes, -v) unlimited
Run Code Online (Sandbox Code Playgroud)

好的,即使我将 /etc/launchd.conf 中的文件限制设置为无限制,这似乎也是默认设置。但这是另一天的另一个问题。

现在我将文件数增加到 1024,让我们再次查看新设置。

 Hector:~ robertj$ ulimit -n 1024
 Hector:~ robertj$ ulimit -a …
Run Code Online (Sandbox Code Playgroud)

mac ulimit macos

8
推荐指数
1
解决办法
7402
查看次数

Mac os x 10.7.4 进程限制

我有一个709最大用户进程。我想加倍,或更多。

第一:ulimit

> ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited
Run Code Online (Sandbox Code Playgroud)

好吧 :

> sudo ulimit -u 1418
Password:
Run Code Online (Sandbox Code Playgroud)

让我检查...

> ulimit -a
core file …
Run Code Online (Sandbox Code Playgroud)

mac process launchctl ulimit macos

7
推荐指数
1
解决办法
1万
查看次数

如何增加 macOS Big Sur 中的最大打开文件数?

我听说

sudo launchctl limit maxfiles 64000 unlimited
Run Code Online (Sandbox Code Playgroud)

conf=/etc/sysctl.conf
if sudo cat $conf | command rg kern.maxfiles ; then
  ecerr "kern.maxfiles is already set in $conf"
else
  sudo echo 'kern.maxfiles=40480
kern.maxfilesperproc=28000' >> "$conf"
fi
Run Code Online (Sandbox Code Playgroud)

对于以前版本的 macOS,但这些都不适用于 Big Sur。

kernel launchctl ulimit macos macos-bigsur

7
推荐指数
3
解决办法
3万
查看次数

ulimit 不限制内存使用

在编写程序时,有时一个失控的程序会占用我一半的 RAM(通常是由于在创建大型数据结构时实际上是无限循环),并使系统变得非常缓慢,我什至无法杀死有问题的程序。所以我想使用ulimit在我的程序使用异常内存时自动杀死我的程序:

$ ulimit -a
core file size          (blocks, -c) 1000
data seg size           (kbytes, -d) 10000
scheduling priority             (-e) 0
file size               (blocks, -f) 1000
pending signals                 (-i) 6985
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) 10000
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 6985
virtual memory          (kbytes, …
Run Code Online (Sandbox Code Playgroud)

ulimit

6
推荐指数
2
解决办法
1万
查看次数

ulimit nofiles 和 lsof

如果我做一个

lsof | grep user | wc -l
Run Code Online (Sandbox Code Playgroud)

我得到一个在 25,000 范围内返回的数字。

如果我检查

ulimit -a 用户

nofiles 设置为 1024。

有人可以帮助我更好地了解打开文件的数量设置吗?显然情况并非如此,但我认为 1024 的硬文件意味着用户不能打开超过 1024 个文件。

linux ulimit

6
推荐指数
1
解决办法
7352
查看次数

达到某个 ulimit 后被主机锁定

所以,我在远程主机上有一个 sudoer 帐户,我在其中创建了一个具有数千个线程和套接字的进程。问题是,如果我创建了太多线程/套接字(不确定是哪一个,甚至可能是其他一些限制),我就会被主机锁定:我的 ssh 连接丢失,如果我尝试重新使用 ssh,我收到一条Write failed: Broken pipe错误消息。

除了要求其他用户进入sudo killall -9 -u myusername该机器之外,我如何才能重新进入系统?主机通常可供其他用户访问。

linux ssh pipe ulimit

5
推荐指数
1
解决办法
1120
查看次数

为什么使用 ulimit -v 将我的虚拟内存限制为 512MB 会使 JVM 崩溃?

我正在尝试强制执行程序在 Unix 系统上可以消耗的最大内存。我认为 ulimit -v 应该可以解决问题。这是我为测试编写的示例 Java 程序:

import java.util.*;
import java.io.*;

public class EatMem {

  public static void main(String[] args) throws IOException, InterruptedException {
    System.out.println("Starting up...");
    System.out.println("Allocating 128 MB of Memory");
    List<byte[]> list = new LinkedList<byte[]>();
    list.add(new byte[134217728]); //128 MB
    System.out.println("Done....");
  }
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,我的 ulimit 设置是(ulimit -a 的输出):

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31398
max locked memory       (kbytes, -l) 64 …
Run Code Online (Sandbox Code Playgroud)

java memory-management ubuntu ulimit

5
推荐指数
1
解决办法
1万
查看次数

“ulimit -Su”是否限制在交互式登录子shell和其中创建的tmux会话中创建的用户进程数?

几个月前,我编写了一组 bash 脚本,使用 tmux 在 AIX 7.1 服务器上创建一个简单的 IDE。我的一个脚本中存在一个错误,有时会非常快速地生成用户进程,直至达到 ulimit 设置的限制。这种情况很少发生(大约每月一次),而且我已经花了几个小时来追踪这个错误,但没有成功,所以我决定暂时,我可以简单地将我的软用户进程限制设置为低于硬限制(例如 100 而不是 1024),这样当我的错误再次出现时,服务器上的其他用户不会有明显的性能下降。不幸的是,“ulimit -Su 100”似乎在 AIX 7.1 上的 bash 中不起作用,但它在 ksh 中起作用。我已经执行了以下解决方法:

使 ksh 成为默认 shell:

$ chsh [username] /usr/bin/ksh
Run Code Online (Sandbox Code Playgroud)

将以下内容写入 ~/.kshrc:

ulimit -Su 100  # works in ksh, but not in bash
/bin/bash -il   # start bash as an interactive login shell
exit            # once bash exits, exit from ksh, too
Run Code Online (Sandbox Code Playgroud)

所以现在,每次我创建一个 shell 时,ksh 都会设置软用户进程限制并启动 bash 作为一个交互式登录 shell(我仍然希望 ~/.bash_profile 获得来源)。现在我想知道,在 ksh 中设置的用户进程限制是否仍然会在 bash 子 shell 中强制执行?在顶级 bash 子shell中,我运行了以下命令: …

bash ksh process tmux ulimit

5
推荐指数
1
解决办法
2718
查看次数

增加应用程序的优胜美地最大文件限制

我一直在尝试提高优胜美地的 maxfile 限制和 maxfileperproc 限制,但没有运气。我在 etc 文件夹中创建了一个 sysctl.conf 文件,它在通过 grep 显示时成功增加了值。

但是,如果我查看launchctl limit maxfiles,该值仍然不正确。

一些解决方案似乎使用 ulimit -n 来设置限制,但是在终端中时,我实际上无法使用它。它给了我“无效参数”或“未经授权的操作”的错误。我已经通过 bash_profile 脚本成功增加了 ulimit,但是由于应用程序是从应用程序运行的,而不是从 shell 运行的,所以它无关紧要。我还通过 root 用户成功地增加了 ulimit,但是当它被注销时,它不会保存更改。

理想情况下,我正在寻找像 launchd.conf 文件那样工作的东西,并且只是在重新启动时自动增加 launchctl limit maxfiles {#}。

有没有办法成功地做到这一点?也许使用像 Lingon 这样的 3rd 方,或者使用启动守护程序?

谢谢!

launchd daemon launchctl ulimit osx-yosemite

5
推荐指数
1
解决办法
6109
查看次数

ulimit 中的实时选项

调用ulimit -a返回如下:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1895
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1895
virtual memory          (kbytes, -v) …
Run Code Online (Sandbox Code Playgroud)

linux real-time ulimit

5
推荐指数
1
解决办法
4727
查看次数

为什么在脚本中调用时 ulimit -n 不起作用?

这很奇怪。我试图设置ulimit60000通过我的startup.sh

#!/bin/bash

ulimit -n 60000
echo "Hello! File Descriptor set"
Run Code Online (Sandbox Code Playgroud)

我可以使用./startup.sh(755 文件权限)执行此操作并打印回显行,并且未显示任何错误。但是,当我这样做ulimit -n时仍然显示1024,这是怎么回事?

我还觉得很有趣的是,我可以ulimit -n 60000在终端中输入,然后ulimit -n就可以完美运行了。为什么我不能通过脚本设置文件描述符限制?

Debian 8,64 位。OpenVZ 容器

linux shell-script ulimit

5
推荐指数
1
解决办法
4352
查看次数

如何在不重新启动的情况下永久增加堆栈限制

我需要增加 Linux 上的默认堆栈大小。据我所知,通常有两种方法:

  • ulimit -s size
  • /etc/security/limits.conf

ulimit 方法仅在我登录后才有效。

limit.conf 将在重新启动后工作。

有没有办法在不重新启动的情况下增加限制?

linux ulimit stack

3
推荐指数
1
解决办法
3万
查看次数

为什么“(ulimit -d 1000; firefox) &amp;”不起作用?

我正在尝试限制 的内存使用,firefox以防止它在有问题的网站上拖延整个系统。

我试过,在bash

(ulimit -d 1000; firefox) &
Run Code Online (Sandbox Code Playgroud)

这应该将内存使用限制为 1000kB。然后我打开 YouTube,注意到在 中topfirefox使用了 2.6% 的内存,或者大约 200MB,并且没有崩溃。显然,限制被忽略了。为什么会这样,我如何正确执行它?

linux firefox bash ulimit ubuntu-12.04

3
推荐指数
1
解决办法
820
查看次数