我有一个服务器,它处理来自单个进程的多个套接字。它过去在AIX上运行,最近我将其移植到linux上。无论如何,在AIX上,我将支持的最大套接字数量设置为2000,并且它工作得很好。
当我在linux上这样做时,poll()失败并返回errno=22 (无效参数)--大概是pollcount参数。当我将其设置为1000时,它工作得很好。那么,我是不是运气不好--限制在1000 (或1024,这是sysconf(_SC_OPEN_MAX)返回的值)。或者有什么我可以调整到这个限制。
1024可能在很大程度上可以工作,但这与系统上常规的并发用户数量非常接近。
发布于 2021-03-25 05:40:45
Linux man page for poll()说
错误
EINVAL NFDS值超过RLIMIT_NOFILE值。
RLIMIT_NOFILE也是进程一次可以打开的文件描述符的最大数量。检查您的限制设置为什么,在shell中为ulimit -n,在systemd中为LimitNOFILE。
https://stackoverflow.com/questions/66789342
复制相似问题