标签: ulimit

ulimit Hard(-H)和Soft(-S)的含义

什么是/限制是什么意思?

核心文件大小的差异例如:
ulimit -Sc 1024对比ulimit -Hc 1024

我经常ulimit -c unlimited在运行二进制文件之前输入我的脚本.
但是,我想限制文件大小以避免磁盘已满.
然后我想知道最好的方法:

ulimit -Sc 1024  # Soft
ulimit -Hc 1024  # Hard
ulimit  -c 1024  # Both
Run Code Online (Sandbox Code Playgroud)

另一个建议:价值怎么样?
ulimit -c 1024或者ulimit -c 10240还是其他什么东西?

bash shell coredump built-in ulimit

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

将ulimit设置得真的很高吗?

我在Ubuntu 12上遇到Tomcat7打开文件过多的问题,所以我将打开文件数量的硬限制和软限制分别从4096和1024增加到16384.现在我没有收到任何更多的错误打开文件,但整体CPU%似乎已经上升.增加max文件的数量是否也有一些CPU时间成本?如果没有,为什么不设置极高的ulimit?

ubuntu ulimit tomcat7

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

为其他用户找到ulimit -a

是否有人知道在Linux中为另一个用户找到"ulimit -a"值的方法?我希望用户A能够检查用户B的ulimit值.假设是用户A,用户B是非root用户.

提前致谢

linux monitoring ulimit

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

React Native + Jest EMFILE:打开文件太多错误

我正在尝试运行Jest测试,但是我收到以下错误:

读取文件时出错:/Users/mike/dev/react/TestTest/node_modules/react-native/node_modules/yeoman-environment/node_modules/globby/node_modules/glob/node_modules/path-is-absolute/package.json /Users/mike/dev/react/TestTest/node_modules/jest-cli/node_modules/node-haste/lib/loader/ResourceLoader.js : 88 throw err; ^

错误:EMFILE:打开文件太多,打开'/ Users/mike/dev/react/TestTest/node_modules/react-native/node_modules/yeoman-environment/node_modules/globby/node_modules/glob/node_modules/path-is-absolute/package.json'at Error(native)npm ERR!测试失败.请参阅上文了解更多详情.

我感兴趣的是错误中列出的路径指向node_modules目录中的文件,由于testPathIgnorePatterns中的node_modules条目,我预期不会读取该文件.

我正在运行Node 4.2.1,我的React-Native安装只有一周了,我今天安装了Jest(所以我觉得我已经掌握了所有内容).我在Mac上.

我已经运行:sudo ulimit -n 10240,关闭所有终端窗口,甚至尝试重启.(在我之前添加的.bash_profile中ulimit -n 1024.我尝试过更大的数字.

为了确保问题不仅仅出现在我自己的项目中,我创建了一个新项目react-native init TestTest并对RN.json进行了RN建议的更改:

{
  "name": "TestTest",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node_modules/react-native/packager/packager.sh",
    "test": "jest"
  },
  "dependencies": {
    "react-native": "^0.14.1"
  },
  "jest": {
    "scriptPreprocessor": "node_modules/react-native/jestSupport/scriptPreprocess.js",
    "setupEnvScriptFile": "node_modules/react-native/jestSupport/env.js",
    "testPathIgnorePatterns": [
      "/node_modules/",
      "packager/react-packager/src/Activity/"
    ],
    "testFileExtensions": [
      "js"
    ],
    "unmockedModulePathPatterns": [
      "promise",
      "source-map"
    ]
  },
  "devDependencies": {
    "jest-cli": "^0.7.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

但我每次都得到同样的错误.

ulimit reactjs jestjs react-native

7
推荐指数
2
解决办法
3136
查看次数

Windows 相当于 ulimit -n

与 unix 命令“ulimit -n”等效的 Windows 是什么?

基本上,我想通过命令提示符设置最大 fd 限制。

windows file-descriptor ulimit

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

ssh远程命令执行和ulimit

我有以下脚本:

cat > /tmp/script.sh <<EndOfScript
#!/bin/sh
ulimit -n 8192
run_app
EndOfScript
Run Code Online (Sandbox Code Playgroud)

在本地运行顺利,总是好的.但是如果我尝试通过ssh远程运行它:

scp /tmp/script.sh user@host:/tmp/script.sh
ssh user@host "chmod 755 /tmp/script.sh; /tmp/script.sh"
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

ulimit: open files: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下命令:

ssh user@host "ulimit -n 8192"
Run Code Online (Sandbox Code Playgroud)

同样的错误.

看起来ssh远程命令执行对nofile限制强制执行1024次硬限制,但我无法找到如何修改此默认值.我试图修改/etc/security/limits.conf并重启sshd,仍然是同样的错误.

linux ssh ulimit

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

如何在Mac OS X上增加C中"最大打开文件"的限制

Mac OS X上最大打开文件的默认限制为256(ulimit -n),我的应用程序需要大约400个文件处理程序.

我尝试用setrlimit()更改限制,但即使函数正确执行,我仍然限制为256.

这是我使用的测试程序:

#include <stdio.h>
#include <sys/resource.h>

main()
{
  struct rlimit rlp;

  FILE *fp[10000];
  int i;

  getrlimit(RLIMIT_NOFILE, &rlp);
  printf("before %d %d\n", rlp.rlim_cur, rlp.rlim_max);

  rlp.rlim_cur = 10000;
  setrlimit(RLIMIT_NOFILE, &rlp);

  getrlimit(RLIMIT_NOFILE, &rlp);
  printf("after %d %d\n", rlp.rlim_cur, rlp.rlim_max);

  for(i=0;i<10000;i++) {
    fp[i] = fopen("a.out", "r");
    if(fp[i]==0) { printf("failed after %d\n", i); break; }
  }

}
Run Code Online (Sandbox Code Playgroud)

输出是:

before 256 -1
after 10000 -1
failed after 253
Run Code Online (Sandbox Code Playgroud)

我不能要求使用我的应用程序的人在/ etc文件或其他内容中查找.我需要应用程序自己完成它.

c macos system ulimit

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

MacOs:增加打开文件的最大值对 java 程序不起作用

我的操作系统是 MacOs sierra,我使用以下命令增加每个进程的最大打开文件数,并使它们永久受影响:

$ sysctl kern.maxfiles
kern.maxfiles: 12288
$ sysctl kern.maxfilesperproc
kern.maxfilesperproc: 10240
$ sudo sysctl -w kern.maxfiles=1048600
kern.maxfiles: 12288 -> 1048600
$ sudo sysctl -w kern.maxfilesperproc=1048576
kern.maxfilesperproc: 10240 -> 1048576
$ ulimit -S -n
256
$ ulimit -S -n 1048576
$ ulimit -S -n
Run Code Online (Sandbox Code Playgroud)

当我ulimit -a用来查看终端中的限制时,它确实有效。

但是,当我运行我的 Java 服务器程序时,当套接字连接接近 5110 时,

“打开的文件太多仍然抛出异常”

所以我写了下面的代码来查看java运行时内核的参数?

String [] cmd={"/bin/bash","-c","ulimit -a"};
Process proc = Runtime.getRuntime().exec(cmd);
InputStream stderr = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line; …
Run Code Online (Sandbox Code Playgroud)

java configuration ulimit server macos-sierra

6
推荐指数
0
解决办法
538
查看次数

Python 中“ulimit”的等价物是什么?

我正在尝试在 Python 中对当前 shell(基本上是 中的所有内容)的系统资源进行检查,ulimit以查看是否可以分配足够的资源。我找到了该resource模块,但它似乎没有ulimit提供所有信息(例如POSIX message queuesreal-time priority)。有没有一种方法可以在不使用外部库的情况下在 Python 中找到这些的软限制和硬限制?如果可能的话,我想避免ulimit作为子进程运行,但如果这是唯一的方法,我会这样做。

python unix resources ulimit

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

AWS ECS Fargate 上的 Ulimit

对于使用 Fargate 启动的容器,默认 ULIMIT“NOFILE”设置为 1024。因此,如果我有一个集群,假设有 10 个服务,每个服务有两个或三个任务(全部在 Fargate 上运行),如果我将它们全部设置为使用巨大的 NOFILE 数字(例如 900000),会产生什么影响?

更具体地说,我们需要关心主机吗?我的假设是,如果我使用 EC2 启动类型并将所有任务设置为有效使用所需数量的文件,则托管 EC2 实例很容易就会不堪重负。或者主机可能不会被淹没,但在主机上注册的容器将获得先到先得的文件数量,它们可以打开,可能导致一个服务耗尽另一个服务?但由于我们不管理 EC2 上的实例,因此为所有服务设置尽可能高的 ULIMIT 有什么坏处?我们的容器是否并排位于主机上,因此会共享主机资源限制。或者我们是否为每个服务/每个任务分配一个主机?

当然,我对这一切如何运作的假设可能是错误的。

ulimit amazon-ecs aws-fargate

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