Linux: network: tcp:__sk_mem_raise_allocated;确保公平

之前看这个函数里有一个地方没有看懂,代码如下:

cpp 复制代码
       if (sk_has_memory_pressure(sk)) {
              int alloc;

              if (!sk_under_memory_pressure(sk))
                     return 1;
              alloc = sk_sockets_allocated_read_positive(sk);  
              if (sk_prot_mem_limits(sk, 2) > alloc *
                  sk_mem_pages(sk->sk_wmem_queued +
                            atomic_read(&sk->sk_rmem_alloc) +
                            sk->sk_forward_alloc))
                     return 1;
       }

今天在网上找了一下,搜到下面的链接,里面有一个解释是:

https://lore.kernel.org/all/20231019120026.42215-2-wuyun.abel@bytedance.com/

Try to be fair among all the sockets under global pressure by allowing the ones that below average usage to raise.

尝试在全局压力下的所有套接字之间保持一个公平,允许低于平均使用率的套接字升高,高使用内存的socket不让申请内存。

相关推荐
fengkai45455 分钟前
十、Ceph 分布式存储5-8
运维·ceph·容器
你不是我我7 分钟前
【AI 测评】群晖NAS部署CloudSaver:Docker安装、多源搜索、网盘转存与cpolar远程访问
运维·docker·容器
分布式存储与RustFS9 分钟前
GitLab 对接 RustFS 实战:OIDC 控制台 SSO + 制品存储落 S3 对象存储
运维·云原生·开源·对象存储·分布式存储·s3
cuijiecheng201813 分钟前
MobaXterm上传大文件到rk3588板子失败
linux
半仙白桑14 分钟前
内核篇第十三讲:system-V消息队列
java·linux·网络
XUEYUAN521220 分钟前
路由跳数与地理位置校验:为什么 IP 归属地和实际出口位置不一致
网络·网络协议·tcp/ip
影寂ldy25 分钟前
C# TCP转串口Modbus网关终极完整版笔记(队列防抖+一问一答+帧解析+双客户端轮询)
笔记·tcp/ip·c#
盐焗鹌鹑蛋41 分钟前
【Linux】线程概念和控制
java·linux·服务器
霸道流氓气质1 小时前
Graph Studio Web IDE 深度实战:可视化编排、断点调试与生产级运维全指南
运维·前端·ide
YoungStudyAI10 小时前
QA的下一个自动化阶段,可能不是再写更多脚本,而是设计测试Agent
运维·自动化