c - 连接套接字的最大数量与 SO_SNDBUF 和 SO_RCVBUF 的值

标签 c linux tcp

我在 Linux 机器上有超过 300 万个文件描述符,所以我查看了套接字缓冲区大小与 RAM 大小的关系如何限制机器可以处理的最大同时 tcp 连接数。有没有类似经历的,请指教。谢谢。

最佳答案

这与 RAM 大小无关,而是与虚拟内存大小有关。显然,您的缓冲区不能超过计算机上可用的总虚拟内存。也就是说,如果您发现当打开了 300 万个套接字时事情开始崩溃,那么如果可以的话,您最好将精力集中在减少套接字的数量上,而不是减少缓冲区大小——300 万个套接字是非常多,并且可能会提示您的架构存在其他一些问题。

关于c - 连接套接字的最大数量与 SO_SNDBUF 和 SO_RCVBUF 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18032304/

相关文章:

c - 如何在不关闭套接字的情况下向主机发送 FIN 标志

C 将两位数字转换为一位整数

c - 运行以下代码时出现错误

C - 从文件中读取未知大小的矩阵

linux - 我在 Redhat 上安装 libsctp 时遇到问题

nginx - Nginx 可以使用 SSL 终止进行 TCP 负载平衡吗?

c - 如何从 C 中的字符串中提取各种整数?

Linux from scratch Segmentation fault 报错

linux - 如何自动设置 SSH key 的密码以在集群中运行 MPI 程序?

java - LDAP 和 JNDI 的 ServiceUnavailableException