标签: limits

linux上的文件名长度限制?

Linux 上是否有任何文件名或路径长度限制?

linux limits

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

为正在运行的进程设置最大文件限制

我有一个长时间运行的进程,最终会达到最大打开文件限制。我知道如何在它失败后更改它,但是有没有办法从命令行更改正在运行的进程?

linux process ulimit resource-management limits

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

/etc/security/limits.conf 软 nproc 限制似乎被忽略

我的 MongoDB 数据库在负载下遇到问题,日志中出现以下错误:

[initandlisten] pthread_create failed: errno:11 Resource temporarily unavailable
[initandlisten] can't create new thread, closing connection
Run Code Online (Sandbox Code Playgroud)

我得出的结论是,我需要提高 1024 的“ulimit -u”或“最大进程”设置,并且使用率可能已经超过了启动的 Web 前端(不知道如何检查) .

我编辑了 /etc/security/limits.conf 以添加最后两行(前两行已经存在):

*                soft    nofile          350000
*                hard    nofile          350000
*                soft    nproc           30000
*                hard    nproc           30000
Run Code Online (Sandbox Code Playgroud)

然后我重新启动了系统(顺便说一句,我应该这样做,还是重新启动 mongod 服务就足够了?)

重新启动后,查看 mongod 进程的进程限制,似乎软限制已被忽略:

$ cat /proc/2207/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608 …
Run Code Online (Sandbox Code Playgroud)

linux ulimit amazon-web-services limits mongodb

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

目录可以拥有的文件数量是否有硬性限制?

想知道 CentOS 6 中一个目录中可以存储的文件数量是否有限制。有一个特定的目录可能有数百万个子目录。

除了存储容量之外,目录中可以包含的文件数量是否有限制?(我在这里假设“文件”可以表示文件或目录)。

非常感谢!

linux files filesystems directory limits

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

Linux /etc/security/limits.conf 解释

任何人都可以解释(或知道来源)提供有关limits.conf 中项目的详细信息吗?手册页没有提供太多细节。

例如它说:

rtprio 
maximum realtime priority allowed for non-privileged processes (Linux 2.6.12 and higher) 

priority 
the priority to run user process with (negative values boost process priority) 
Run Code Online (Sandbox Code Playgroud)

这些有什么不同?他们可以采取什么价值观?他们默认是什么?

有些项目是显而易见的,但我在哪里可以找到更好的解释(默认值、范围、它们的实际含义等):

data 
maximum data size (KB) 

fsize 
maximum filesize (KB) 

memlock 
maximum locked-in-memory address space (KB) 

cpu 
maximum CPU time (minutes) 

nice 
maximum nice priority allowed to raise to (Linux 2.6.12 and higher) values: [-20,19] 
Run Code Online (Sandbox Code Playgroud)

超过 CPU 时会发生什么?进程被杀死?只有一个进程或整个用户被禁止使用 CPU?这是一个会话还是每分钟的最长时间?

我试图找到答案,但我能找到的只是一个几乎没有提供任何细节的手册页。

security linux limits

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

systemd、每个用户的 CPU 和/或内存限制

有类似的问题:Cgroups, limit memory per user,但该解决方案在“现代”系统中不起作用,其中 cgroups 层次结构由 systemd 管理。

简单的解决方案——模板 user-UID.slice——将不起作用,因为它不受支持,请参阅https://github.com/systemd/systemd/issues/2556

有没有办法达到预期的效果——基于每个用户管理 CPU 和/或内存资源?

UPD:为了历史起见,我将保留我的解决方案,但systemctl set-property应在登录时调用,使用pam_exec,请参阅https://github.com/hashbang/shell-etc/pull/183。在这种方法中,用户登录和限制设置之间没有时间窗口。

我的解决方案接口org.freedesktop.login1.Manage/org/freedesktop/login1对象发出UserNew(u uid, o object_path)信号。我编写了一个简单的守护进程,它侦听信号,并且每次发出信号时都设置CPUAccounting=true为刚刚登录用户的切片。

user-management resource-management limits systemd

9
推荐指数
2
解决办法
7386
查看次数

重新加载 /etc/security/limits.conf

我想要:

  • 为常驻内存设置一个 64GB 的软限制(因此,没有经验的用户会杀死他们的 run-amok 进程,但有经验的用户可以提高内存饥饿进程的限制)
  • 提高 nofile 的硬限制,但将软限制保持在 1024(所以如果某个程序需要更多的文件句柄,用户可以授予它们,但 run-amok 程序不会得到它们)。

据我所知,我应该能够在/etc/security/limits.conf(或/etc/security/limits.d/*)中做到这一点:

*        soft    rss             64000000
*        hard    nofile          50000
*        soft    nofile          1024
Run Code Online (Sandbox Code Playgroud)

但是,我找不到一种无需重新启动即可重新加载这些值的方法。我已经读到登录时会重新加载这些值;当我这样做时它有效,su - user但它不起作用ssh user@localhost

我在 /etc/pam.d 中有 pam_limits.so:

/etc/pam.d/login:session    required   pam_limits.so
/etc/pam.d/sshd:session    required     pam_limits.so
/etc/pam.d/su:session    required   pam_limits.so
Run Code Online (Sandbox Code Playgroud)

我在 sshd_config 中有 PAM:

/etc/ssh/sshd_config:UsePAM yes
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用ulimitand设置值sysctl,但我想测试它/etc/security/limits.conf是否在做正确的事情而无需重新启动。

当人们使用 ssh 登录而不重新启动时,如何确保设置了这些值?

pam limits

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

监控打开文件限制等

我们最近在一些服务上达到了最大打开文件限制。还有很多其他限制。有没有办法监控进程与这些限制的接近程度,以便我们可以在需要提高限制或修复根本原因时收到警报?同样,是否可以查看这些事件的日志,以便我们知道何时发生崩溃是因为达到了这些限制之一?

linux monitoring limits

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

如何使用 iptables 或 tc 来限制每个客户端的数据包。

我有一些问题网络客户端发送数据太快。

我想减慢它们的速度,使用 iptables,或者可能使用 tc。

我见过 iptables 解决方案,如:

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 50/second --limit-burst 50 -j ACCEPT

但我认为该限制适用于符合规则的所有内容,而不是每个客户端地址。

有没有办法让这个规则限制每个客户端地址的数据包?

linux iptables limits

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

如何将内存限制应用于所有 cron 作业?

在共享服务器 (Debian Jessie) 上,有一些内存限制(和其他限制,例如进程数)适用于在/etc/security/limits.conf.

然而,这些限制似乎不适用于由 cron 启动的进程,有时人们的 cron 工作会意外地破坏所有其他人的性能。

有什么方法可以将限制应用limits.conf到 cron 作业吗?或者,如果这不可能,至少对所有用户的 cron 作业实施一些限制?

Cron 似乎在 cron cgroup 中运行所有作业,而不是在用户的 cgroup 中,因此这也不是一种简单的方法:(

linux ulimit cron limits

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