小编use*_*942的帖子

连接时“没有可用的缓冲区空间”

当进程在 Linux 虚拟机上调用“connect”时,我看到错误消息“没有可用的缓冲区空间”。我在追查原因时遇到了麻烦-希望有人可以提供帮助!

我检查了以下内容:

(1) 文件句柄:

cat /proc/sys/fs/file-nr
4672 0 810707 
Run Code Online (Sandbox Code Playgroud)

我正在阅读它(已分配,未使用,可用),所以这看起来不错。

(2) 套接字或 TCP 内存:

cat /proc/sys/net/ipv4/tcp_mem
191889 255854 383778

cat /proc/net/sockstat
sockets: used 579
TCP: inuse 169 orphan 0 tw 245 alloc 187 mem 5
UDP: inuse 31 mem 4
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0
Run Code Online (Sandbox Code Playgroud)

读到这里总共只有 579 个正在使用的套接字,页面总数远低于最大值。

Google 上显示了许多随机 TCP 调整 - 我希望在答案中是 (1) 我即将用完的资源,(2) 如何确定当前值以及 (3) 如何调整天花板。我发现的大多数页面都缺少除 (3) 之外的所有内容!

** 更新 #1 **

在 Flup 的建议下,我在它发生时做了一个 systrace(使用 ping):

socket(PF_INET, SOCK_DGRAM, …
Run Code Online (Sandbox Code Playgroud)

linux buffer

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

buffer ×1

linux ×1