gpt4 book ai didi

java - java NIO 中打开文件过多错误

转载 作者:行者123 更新时间:2023-12-01 06:48:29 25 4
gpt4 key购买 nike

嗨,我使用 java NIO 创建了一个套接字和客户端程序。我的服务器和客户端位于不同的计算机上,服务器有 LINUX 操作系统,客户端有 WINDOWS 操作系统。每当我在客户端上创建 1024 个套接字时,我的客户端计算机都支持,但在服务器中我遇到了太多文件打开错误。那么如何在服务器中打开 15000 个套接字而不出现任何错误。或者有没有其他方式可以同时连接15000个客户端?

谢谢巴比

最佳答案

好吧,质疑为什么他需要 15K 套接字是一个单独的讨论。

答案是您达到了用户的文件描述符限制。

使用您将在监听器中使用的用户登录并执行 $ulimit -n 以查看当前限制。

最有可能是 1024。

使用 root 编辑文件 /etc/security/limits.conf

并设置->

{username} soft nofile 65536
{username} hard nofile 65536

65536 只是一个建议,您需要从您的应用中找出答案。

注销,重新登录并使用 ulimit -n 重新检查,看看它是否有效。

您可能需要超过 15 个 fd 才能完成所有这些操作。使用 lsof 监控您的应用程序。

像这样:

$lsof -p {pid}   <- lists all file descriptors
$lsof -p {pid} | wc -l <- count them

顺便说一句,您也可能达到系统范围的 fd 限制,因此您需要检查它:

$cat /proc/sys/fs/file-max

要增加该值,请将此行添加到/etc/sysctl.conf

#Maximum number of open FDs
fs.file-max = 65535

关于java - java NIO 中打开文件过多错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/797375/

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