相关疑难解决方法(0)

如何增加osx上的套接字限制以进行负载测试?

我正在创建一个负载测试程序,它使用libev为我正在处理的应用程序创建大量开放式TCP连接.由于nofiles限制,目前它以256个连接轰炸:

ulimit -n
256
Run Code Online (Sandbox Code Playgroud)

通过执行以下操作,我可以将此值增加到1024:

ulimit -n 1024
Run Code Online (Sandbox Code Playgroud)

但我不能进一步增加它.理想情况下,我想将其设置为1048576.它给出以下错误:

ulimit: open files: cannot modify limit: Invalid argument
Run Code Online (Sandbox Code Playgroud)

如何在osx上进一步增加ulimit?

sockets macos freebsd libev

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

打开的文件太多(ulimit已经更改)

我正在使用tomcat 7和java 1.7开发debian服务器.这是一个收到多个TCP连接的应用程序,每个TCP连接都是java进程打开的文件.

看着/proc/pid of java/fd我发现,有时,打开文件的数量超过1024,当发生这种情况时,我会在catalina.out日志中找到stacktrace_SocketException: Too many open files_

我发现有关此错误的一切,人们都提到了ulimit,我已经改变了这个问题并且错误一直在发生.这是配置:

/etc/security/limits.conf

root    soft    nofile  8192
root    hard    nofile  8192
Run Code Online (Sandbox Code Playgroud)

/etc/sysctl.conf

fs.file-max = 300000
Run Code Online (Sandbox Code Playgroud)

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) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 8192
pipe size            (512 bytes, …
Run Code Online (Sandbox Code Playgroud)

socketexception ulimit

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

在Mac上执行gatling时"打开文件太多"

在我的Macbook Pro 15'(16千兆RAM,4个物理内核)上从Mac iOS(El Capitan)上的shell执行gatling(加载测试工具)时,我的错误是"打开的文件过多".

我花了几天时间来解决这个问题,没有任何成功:

  • 我在/Library/LaunchDaemons/limit.maxfiles.plist中创建了一个文件,其中包含从Web复制的XML文件内容,没有结果.

  • sudo ulimit -n 15000不起作用.

  • 我使用以下内容创建了一个文件/etc/sysctl.conf

kern.maxfiles = 20480
kern.maxfilesperproc = 20480

  • 我没有任何结果尝试了命令"sudo launchctl limit maxfiles 20480 20480".

我认为"/ Library/LaunchDaemons /"中的xml文件似乎有一些效果,因为当我更改maxfiles的值时,命令"sudo launchctl limit"向我显示我在XML文件中输入的值,以及使用某个值调用"ulimit -n",它接受小于该值的每个值,但是当我调用"ulimit -n"时,结果是每次都是相同的"4096".

我在Java中看到,限制是10240,所以我尝试了VM选项(-XX:-MaxFDLimit)而没有任何影响.

奇怪的是,当我从Intellij(IDE)执行Gatling时,我可以直到10 200个套接字.同样的事情,即使在所有组合中执行所有命令(ulimit,sysctl,launchctl,...)之后,也会产生不同的效果.

最好的祝福

java macos shell osx-elcapitan

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

标签 统计

macos ×2

freebsd ×1

java ×1

libev ×1

osx-elcapitan ×1

shell ×1

socketexception ×1

sockets ×1

ulimit ×1