gpt4 book ai didi

java - 高配置的 AWS 机器上打开的文件异常太多

转载 作者:行者123 更新时间:2023-12-05 04:11:26 24 4
gpt4 key购买 nike

如果问题很愚蠢,我深表歉意,但我是这里的新手(前端开发人员,最近在后端工作)。

我的应用程序在 Amazon aws 机器上运行。我想要的是有效地利用我的资源,以便满足更多请求。

我正在运行一个服务于 GET 和 websocket 请求的 Java vertx 服务器。我已经为该服务器创建了三个运行在不同端口上的实例,并使用 nginx 来平衡负载。

我的aws资源还蛮多的

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 100G 0 disk
└─xvda1 202:1 0 100G 0 part /

我的软限制是无限的

ulimit -S
unlimited

我的硬限制是无限的

ulimit -H
unlimited

我正在检查打开的文件总数

sudo lsof -Fn -u root| wc -l
13397

为什么会出现这个异常

java.io.IOException: Too many open files

我的 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) 128305
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 700000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 128305
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

检查可用文件数以及已使用文件数的最佳方法是什么。以及我应该如何以可以建立大量连接的方式使用资源。

请告诉我。

最佳答案

我相信您检查了错误的限制。

来自 man ulimit

If no option is given, then -f is assumed.

这意味着 ulimit -S 返回与 ulimit -S -f 相同的结果,分别是 ulimit -Hulimit -H -f.

选项-f表示

The maximum size of files written by the shell and its children

异常 java.io.IOException: Too many open files 提及 too many open files。因此,您需要检查 The maximum number of open file descriptors

# as root
$ ulimit -S -n
1024
$ ulimit -S -n 2048
2048

在 CentOS 7 上 man ulimit 提及选项 -n

-n The maximum number of open file descriptors (most systems do not allow this value to be set)

在某些系统上您可能无法更改它。

关于java - 高配置的 AWS 机器上打开的文件异常太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42693540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com