Questions tagged «limit»

通过一个进程或一组进程来限制资源的使用(内存,磁盘空间,CPU时间,打开的文件,网络带宽等)。

5
/etc/security/limits.conf中的更改是否需要重新启动?
更改是否/etc/security/limits.conf需要重新启动才能生效? 就像我有一个在中设置以下限制的脚本一样/etc/security/limits.conf,这是否要求重新启动系统才能使这些限制生效? * hard nofile 94000 * soft nofile 94000 * hard nproc 64000 * soft nproc 64000
144 limit  ulimit 

3
为什么在Linux中限制打开文件的数量?
现在,我知道如何: 查找每个进程的打开文件限制: ulimit -n 计算所有进程中所有打开的文件: lsof | wc -l 获取允许的最大打开文件数: cat /proc/sys/fs/file-max 我的问题是:为什么Linux中的打开文件有限制?
136 open-files  limit 

7
如何限制ls打印的文件数量?
有没有办法限制ls命令中列出文件的数量? 我见过: ls | head -4 但是要获取head或tail要执行,我需要等待ls执行完成,并且目录中包含大量文件,这可能会花费大量时间。 我希望在ls不使用该head命令的情况下执行限制命令。
89 command-line  ls  limit 

3
如何创建内存使用受限的用户?
所以我有4 GB RAM + 4GB交换空间。我想创建一个具有有限的ram和swap的用户:3 GB RAM和1 GB swap。这样的事情可能吗?是否可以在不创建单独用户的情况下启动具有有限RAM的应用程序并交换可用的应用程序(并且不安装任何特殊应用程序-仅具有默认的Debian / CentOS服务器配置,而不使用sudo)? 更新: 因此,我打开了terminall并在其中输入ulimit命令:ulimit -v 1000000就像976,6Mb限制一样。接下来,我打电话来ulimit -a,看到限制是“打开”的。然后,我启动了一个bash脚本,该脚本进行了编译,并在nohup一个很长的 脚本中启动了我的应用程序nohup ./cloud-updater-linux.sh >& /dev/null &……但是一段时间后,我看到了: (如果没有限制,没关系-它下载了一些大的lib,并开始对其进行编译。) 但是我以为我对shell和使用shell启动的所有进程都施加了限制ulimit -v 1000000?我怎么了?如何使终端及其启动的所有子进程受到ram使用的限制?

3
使用4.3内核创建线程失败,并显示“资源暂时不可用”
我在带有多个容器的Arch Linux(内核4.3.3-2)上运行docker服务器。自从我上次重启以来,Docker服务器和容器中的随机程序都崩溃,并显示一条消息,提示无法创建线程或(较不频繁)进行分叉。根据程序的不同,特定的错误消息也有所不同,但是大多数错误消息似乎都提到了特定的错误Resource temporarily unavailable。有关某些示例错误消息,请参见本文末尾。 现在有很多人收到此错误消息,并对它们有很多响应。真正令人沮丧的是,每个人似乎都在猜测如何解决该问题,但是似乎没有人指出如何确定问题的许多可能原因中的哪一个。 我已经收集了以下5种可能的错误原因以及如何验证它们在我的系统上不存在的原因: 在/proc/sys/kernel/threads-max(source)中配置的线程数存在系统范围的限制。就我而言,该设置为60613。 每个线程都在堆栈中占用一些空间。堆栈大小限制是使用ulimit -s(source)配置的。我的壳的极限曾经是8192,但我已经通过将增加其* soft stack 32768成/etc/security/limits.conf,因此它ulimit -s现在的回报32768。我还通过将(source)添加LimitSTACK=33554432到docker进程中,并通过查看docker容器并在其中运行来验证该限制是否适用。/etc/systemd/system/docker.service/proc/<pid of docker>/limitsulimit -s 每个线程都会占用一些内存。使用来配置虚拟内存限制ulimit -v。在我的系统上,它设置为unlimited,并且我3 GB的内存中有80%可用。 使用的进程数有限制ulimit -u。在这种情况下,线程被视为进程(source)。在我的系统上,限制设置为30306,对于docker守护程序和docker容器内部,限制为1048576。可以通过运行ls -1d /proc/*/task/* | wc -l或通过运行ps -elfT | wc -l(source)找出当前正在运行的线程数。在我的系统上,它们介于700和之间800。 打开文件的数量有限制,根据某些来源的资料,在创建线程时这也很重要。限制是使用配置的ulimit -n。在我的系统和docker内部,限制设置为1048576。可以使用lsof | wc -l(source)找出打开的文件数,在我的系统上大约是30000。 上次重启之前,我正在运行内核4.2.5-1,现在我正在运行4.3.3-2。降级到4.2.5-1可以解决所有问题。其他提到问题的帖子是this和this。我已经打开了Arch Linux的错误报告。 内核中发生了什么变化可能导致这种情况? 以下是一些示例错误消息: Crash dump was written to: erl_crash.dump Failed to create aux thread …
39 linux  docker  limit  fork  thread 


7
限制进程不超过CPU使用率的10%
我运行的Linux系统有很多用户,但有时会发生滥用情况。用户可能会运行一个进程,而该进程会占用超过80%的CPU /内存。 因此,是否有一种方法可以通过限制进程可以使用的CPU使用量来防止这种情况发生(例如,降低到10%)?我知道cpulimit,但是很遗憾,它会将限制应用于我指示限制的进程(例如,单个进程)。所以我的问题是,如何将限制应用于所有正在运行的进程以及将来将要运行的进程,而无需提供其ID /路径(例如)?



8
使磁盘/磁盘复制变慢
有没有一种方法可以减慢Linux上的复制过程? 我有一个大文件,例如10GB,我想将其复制到另一个目录,但是我不想全速复制。假设我想以1mb / s的速度复制它,而不是更快。我想使用标准的Linux cp命令。 这可能吗?(如果是,如何?) 编辑:因此,我将为我要实现的内容添加更多上下文。 通过USB将大文件复制到pendrive,usb磁盘等时,我在ArchLinux系统上遇到问题。填满USB缓冲区高速缓存后,我的系统停止响应(即使鼠标停止;它也只是偶尔移动)。复制操作仍在进行中,但是占用了100%的资源。复制操作完成后,一切都会恢复正常-一切都再次完美响应。 我不知道这可能是硬件错误,但我确实知道我有两台机器都遇到此问题(两者都在ArchLinux上,一台是台式机,另一台是笔记本电脑)。 对此最简单,最快的“解决方案”(我同意这不是“真正的”解决方案,只是一个丑陋的“ hack”)将通过以USB驱动器的平均写入速度复制文件来防止该缓冲区被填满,例如对我来说就足够了。

4
修改特定进程的ulimit(打开文件)
是否有可能改变软-和硬限制一个的具体过程? 就我而言,我的流程是mongod,许多网络资源告诉我只需执行: ulimit -n <my new value> 我目前的想法: 该命令将如何知道我将要修改的进程的限制?这不会修改整个系统的打开文件限制吗? 我猜想此命令只会更改软限制。那么有没有办法增加硬限制呢?
27 limit  ulimit 


1
是否在每个过程中应用limits.conf值?
我正在为oracle用户调整nofile值,/etc/security/limits.conf我对其行为有疑问:是否nofile限制了用户可以为其所有进程打开的文件总数,或者是否限制了用户可以拥有的文件总数对每个流程都开放? 具体来说,用于以下用途: oracle hard nofile 65536
25 linux  files  limit 


3
实际限制btrfs快照的数量?
我正在考虑在数据驱动器上使用btrfs,以便可以使用snapper或诸如snapper之类的功能来进行基于时间的快照。我相信这将使我能够浏览数据的旧版本。这是我当前的异地备份的补充,因为驱动器故障会清除数据和快照。 据我了解,btrfs快照不会占用太多空间(元数据和已更改的块,再加上一些开销),因此空间似乎不是一个约束。 如果我有一百万个快照(例如,两年每分钟快照),假设我有足够的磁盘空间来存储数据,更改的数据和元数据,那会造成严重破坏吗? 如果快照数量有实际限制,是否取决于文件数量和/或文件大小?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.