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不让申请内存。

相关推荐
着迷不白9 分钟前
二、Linux命令3要素及系统结构+文件的增删改查
linux·运维·服务器
heimeiyingwang12 分钟前
【架构实战】搜索系统架构设计:从精准匹配到智能推荐
运维·架构·jenkins
zzzyyy53817 分钟前
System V IPC 全链路深度解析 —— 从信号量原子性到内核多态再到物理内存共享
linux·服务器
不吃土豆的马铃薯43 分钟前
Socket 网络编程实战教程
linux·服务器·开发语言·网络·c++·算法
Agent手记1 小时前
医药代表拜访计划能否通过AI自动生成优化?2026Agent自动化实战解析
运维·人工智能·ai·自动化
零号全栈寒江独钓1 小时前
c++跨平台实现日志重定向
linux·c++·windows
爱莉希雅&&&1 小时前
Zabbix监控初步搭建
linux·运维·数据库·mysql·zabbix
叠叠乐1 小时前
红米redmi k90 pro max alsc 冠军版刷TWRP
linux
JackSparrow4141 小时前
使用Ansible批量管理+更新产品环境服务器配置
运维·服务器·ci/cd·kubernetes·自动化·ansible·sre
oioihoii1 小时前
CentOS 7单机部署Elasticsearch:这些坑和关键配置,生产环境踩过才知道
linux·elasticsearch·centos