gpt4 book ai didi

sockets - 如何在 Linux 内核中增加套接字内存分配

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

我正在 Linux 内核中实现自定义传输层数据报协议(protocol)。我已经实现了发送和接收队列,以便在有损环境中按顺序交付。

我注意到,在我当前的实现中,我的套接字内存不足,队列中只有 16 个套接字缓冲区和 BUFSIZ 有效负载。所以我需要增加分配给我的套接字的内存值。

我想改变 sk->sk_sendbuf 的值和 sk->sk_rcvbuf应该做的工作。这样做的正确方法是什么?

P.S.-我还没有为这个协议(protocol)实现 sysctl 接口(interface),所以不能用它来管理内存。

谢谢。

最佳答案

事实证明,我不需要为我的协议(protocol)手动定义 sysctl 接口(interface)。我刚刚在我的测试机器上使用了以下 sysctl 命令来增加分配给每个套接字的内存量

sysctl -w net.core.wmem_default=<new_value>
sysctl -w net.core.wmem_max=<new_value>

选择 new_value ,我首先检查了这些参数的现有值
sysctl -n net.core.wmem_default
sysctl -n net.core.wmem_max

请注意,分配给套接字的实际内存将是 new_value 的两倍。 ,这就是内核中的实现方式。

关于sockets - 如何在 Linux 内核中增加套接字内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39897030/

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