zoukankan      html  css  js  c++  java
  • tcp内存占用/socket内存占用

    net.ipv4.tcp_mem

    内核分配给TCP连接的内存,单位是Page,1 Page = 4096 Bytes,可用命令查看:

    #getconf PAGESIZE
    4096
    
    net.ipv4.tcp_mem = 196608   262144  393216
    
    • 第一个数字表示,当 tcp 使用的 page 少于 196608 时,kernel 不对其进行任何的干预
    • 第二个数字表示,当 tcp 使用了超过 262144 的 pages 时,kernel 会进入 “memory pressure” 压力模式
    • 第三个数字表示,当 tcp 使用的 pages 超过 393216 时(相当于1.6GB内存),就会报:Out of socket memory

    net.ipv4.tcp_rmem 和 net.ipv4.tcp_wmem

    为每个TCP连接(一个socket)分配的读、写缓冲区内存大小,单位是Byte

    net.ipv4.tcp_rmem = 4096        8192    4194304
    net.ipv4.tcp_wmem = 4096       8192    4194304
    
    • 第一个数字表示,为TCP连接分配的最小内存
    • 第二个数字表示,为TCP连接分配的缺省内存
    • 第三个数字表示,为TCP连接分配的最大内存

    一般按照缺省值分配,上面的例子就是读写均为8KB,共16KB

    1.6GB TCP内存能容纳的连接数,约为 1600MB/16KB = 100K = 10万

    4.0GB TCP内存能容纳的连接数,约为 4000MB/16KB = 250K = 25万

    当然socket还包含文件描述符的内存占用,以及真正接收和发送时,缓冲区不见得是满的

  • 相关阅读:
    Lattice Diamond 的学习之新建工程
    candence 笔记总结
    音乐发生器的原理
    PAL/NTSC 制电视广播技术有关知识--FPGA
    以后绝对不能再犯的错误
    BZOJ1112: [POI2008]砖块Klo
    Luogu P1533 可怜的狗狗
    BZOJ4542: [Hnoi2016]大数
    BZOJ5131: [CodePlus2017年12月]可做题2
    BZOJ3083: 遥远的国度
  • 原文地址:https://www.cnblogs.com/shengulong/p/11623621.html
Copyright © 2011-2022 走看看