标签: ulimit

修改特定进程的ulimit(打开文件)

是否有可能改变软-硬限制一个的具体过程?

就我而言,我的流程是mongod,很多网络资源告诉我只需执行:

ulimit -n <my new value>
Run Code Online (Sandbox Code Playgroud)

我目前的想法:

  • 命令如何知道我将要修改的进程的限制?这不会修改整个系统的打开文件限制吗?
  • 我猜这个命令只会改变软限制。那么有没有办法增加硬限制呢?

limit ulimit

35
推荐指数
2
解决办法
8万
查看次数

Linux 中的 ulimit 和 rlimit,它们是一回事吗?

我看到人们交替使用术语ulimit & rlimit,我可以说他们指的是同一件事吗?

linux performance kernel resources ulimit

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

如何防止叉炸弹?

为了防止分叉炸弹,我遵循了这个http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm

ulimit -a体现了新的设置,但是当我运行(如rootbash:(){ :|:&};:的虚拟机仍继续最大CPU +内存,系统将冻结。

如何确保用户不会因为使用 fork 炸弹或运行有缺陷的应用程序而导致系统瘫痪?

操作系统:RHEL 6.4

rhel freeze resources ulimit

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

无法 ssh,连接立即终止,退出状态为 254

我记得最近的事情是将软硬内存锁 ulimit 更改为无限制。现在我无法通过 ssh 进入机器。

这是 ssh 日志。

Authenticated to IP ([IP]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
debug1: Sending env LC_CTYPE = 
debug2: channel 0: request env confirm 0
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 …
Run Code Online (Sandbox Code Playgroud)

shell ssh ulimit

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

修复 ulimit:打开文件:无法修改限制:不允许操作

我在不同的 GNU/Linux 安装上对此进行了测试:

perl -e 'while(1){open($a{$b++}, "<" ,"/dev/null") or die $b;print " $b"}'
Run Code Online (Sandbox Code Playgroud)

系统 A 和 D

我遇到的第一个限制是 1024。通过将其放入 /etc/security/limits.conf 可以轻松提高:

*                hard    nofile          1048576
Run Code Online (Sandbox Code Playgroud)

然后运行:

ulimit -n 1048576
echo 99999999 | sudo tee /proc/sys/fs/file-max
Run Code Online (Sandbox Code Playgroud)

现在测试转到 1048576。

但是,似乎我无法将其提高到 1048576 以上。如果我将 1048577 放在limits.conf 中,它就会被忽略。

这是什么原因造成的?

系统B

在系统 BI 上甚至无法到达 1048576:

echo 99999999 | sudo tee /proc/sys/fs/file-max
Run Code Online (Sandbox Code Playgroud)

/etc/security/limits.conf:

*                hard    nofile          1048576
Run Code Online (Sandbox Code Playgroud)

在这里我得到:

$ ulimit -n 65537
bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 65536
#OK …
Run Code Online (Sandbox Code Playgroud)

linux file-descriptors limit ulimit

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

/etc/security/limits.conf 未应用

我有/etc/security/limits.conf,这似乎没有被应用:

a soft nofile 1048576 # default: 1024
a hard nofile 2097152
a soft noproc 262144  # default 128039
a hard noproc 524288  
Run Code Online (Sandbox Code Playgroud)

a我的用户名在哪里,当我运行ulimit -Hn和 时ulimit -Sn,它显示:

4096
1024
Run Code Online (Sandbox Code Playgroud)

只有一个其他文件/etc/security/limits.d的内容是:

scylla  -  core     unlimited
scylla  -  memlock  unlimited
scylla  -  nofile   200000
scylla  -  as       unlimited
scylla  -  nproc    8096
Run Code Online (Sandbox Code Playgroud)

我还尝试将这些值附加到/etc/security/limits.conf然后重新启动,并执行以下操作:

echo '
session required pam_limits.so
' | sudo tee -a /etc/pam.d/common-session
Run Code Online (Sandbox Code Playgroud)

但它没有用。我的操作系统是Ubuntu 17.04.

limit ulimit

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

如何导致“参数列表太长”错误?

问题的上下文:根据POSIX 规范, ARG_MAX 是函数系列的命令行参数的最大长度exec()。这让我相信这是实际的参数数量,但这显然不起作用:

$ ulimit -s
8192
$ touch {1..18000}.jpg
$ rm *.jpg
$ 
Run Code Online (Sandbox Code Playgroud)

显然,尽管长度超过 8192 个项目,但效果很好。根据DW 的回答8192应该以 kB 为单位的大小。很明显,之前的假设是错误的。

这是实际的问题进来:我如何找出项目的实际金额获得上述8192 KB的限制?换句话说,我必须执行什么样的计算才能确保这种*.jpg类型的 glob 会导致Argument list too long错误?

请注意,这不是What 定义单个命令参数的最大大小的副本。我知道getconf ARG_MAXulimit -s价值观,这不是我的问题。我需要知道如何生成大小超过 limit 的足够多的参数。换句话说,我需要找到一种方法来获取错误,而不是避免它。

command-line shell ulimit

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

“ulimit -m”在(现代)Linux 上不起作用吗?

本文声称该-m标志ulimit在现代 Linux 中没有任何作用。我找不到其他任何东西来证实这一说法。它准确吗?

您可以尝试通过设置最大驻留集大小 (ulimit -m) 来限制进程的内存使用。这对 Linux 没有影响。man setrlimit 说它曾经只适用于古代版本。您应该限制最大虚拟内存量 (ulimit -v)。

如果它确实在旧版本的 Linux 中工作,那么哪个版本停止支持它?

linux memory resources ulimit

13
推荐指数
1
解决办法
4449
查看次数

了解pid_max、ulimit -u 和thread_max 之间的区别

我正在尝试了解 Linux 进程。我对各自的术语感到困惑pid_max,ulimit -uthread_max

这些术语之间究竟有什么区别?有人可以澄清这些差异吗?

process thread linux-kernel ulimit

12
推荐指数
2
解决办法
4万
查看次数

ulimit memlock 标志值的含义

当我运行 docker 并使用该--ulimit memlock=-1:-1选项时,-1 的软/硬值是什么意思?这是否意味着我允许此容器/进程锁定无限量的内存?

linux ulimit docker

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