精华内容
下载资源
问答
  • dmesg(diagnostic message) dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg...缓冲区大小>:预设置为8196,刚好等于ring buffe...
    dmesg(diagnostic message)

    dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里。

    参数

    -c:显示信息后,清除ring buffer中的内容;
    -s<缓冲区大小>:预设置为8196,刚好等于ring buffer的大小;
    -n:设置记录信息的层级。

    例子
    :dmesg | head
    [    0.000000] Linux version 4.15.0-88-generic (buildd@lgw01-amd64-036) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020 (Ubuntu 4.15.0-88.88-generic 4.15.18)
    [    0.000000] Command line: 
    [    0.000000] KERNEL supported cpus:
    [    0.000000]   Intel GenuineIntel
    [    0.000000]   AMD AuthenticAMD
    [    0.000000]   Centaur CentaurHauls
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers'
    

    查看IO支持的调度:

    :dmesg | grep -i scheduler
    [    0.571636] io scheduler noop registered
    [    0.571637] io scheduler deadline registered
    [    0.571654] io scheduler cfq registered (default)
    
    展开全文
  • free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。 直接输入free命令,显示如下 free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB 另外,...

    free命令

    free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

    直接输入free命令,显示如下
    在这里插入图片描述
    free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB
    另外,free -h会自动选择以适合理解的容量单位显示
    在这里插入图片描述

    展开全文
  • 最近发现很多内核优化参数都记不住了,写下文章来备记,方便以后查看. 编辑 /etc/sysctl.conf 文件,在里面加入如下...#最大的接受UDP缓冲区大小 net.inet.udp.sendspace=65535 #最大的发送UDP数据缓冲区大小 net.in...

    最近发现很多内核优化参数都记不住了,写下文章来备记,方便以后查看.

    编辑 /etc/sysctl.conf 文件,在里面加入如下内容:(有注释)  

    #设置系统对最大跟踪的TCP连接数的限制(CentOS 5.6无此参数)
    net.ipv4.ip_conntrack_max = 25000000 

    #最大的待发送TCP数据缓冲区空间  
    net.inet.tcp.sendspace=65536  
     
    #最大的接受TCP缓冲区空间  
    net.inet.tcp.recvspace=65536  
     
    #最大的接受UDP缓冲区大小  
    net.inet.udp.sendspace=65535  
     
    #最大的发送UDP数据缓冲区大小  
    net.inet.udp.maxdgram=65535  
     
    #本地套接字连接的数据发送空间  
    net.local.stream.sendspace=65535  
     
    #加快网络性能的协议  
    net.inet.tcp.rfc1323=1  
    net.inet.tcp.rfc1644=1  
    net.inet.tcp.rfc3042=1  
    net.inet.tcp.rfc3390=1  
     
    #最大的套接字缓冲区  
    kern.ipc.maxsockbuf=2097152  
     
    #系统中允许的最多文件数量  
    kern.maxfiles=65536  
     
    #每个进程能够同时打开的最大文件数量  
    kern.maxfilesperproc=32768  
     
    #当一台计算机发起TCP连接请求时,系统会回应ACK应答数据包。该选项设置是否延迟ACK应答数据包,把它和包含数据的数据包一起发送

    ,在高速网络和低负载的情况下会略微提高性能,但在网络连接较差的时候,对方计算机得不到应答会持续发起连接请求,反而会降低性

    能。  
    net.inet.tcp.delayed_ack=0  
     
    #屏蔽ICMP重定向功能  
    net.inet.icmp.drop_redirect=1  
    net.inet.icmp.log_redirect=1  
    net.inet.ip.redirect=0  
    net.inet6.ip6.redirect=0  
     
    #防止ICMP广播风暴  
    net.inet.icmp.bmcastecho=0  
    net.inet.icmp.maskrepl=0  
     
    #限制系统发送ICMP速率  
    net.inet.icmp.icmplim=100  
     
    #安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用  
    net.inet.icmp.icmplim_output=0  
    net.inet.tcp.drop_synfin=1  
     
    #设置为1会帮助系统清除没有正常断开的TCP连接,这增加了一些网络带宽的使用,但是一些死掉的连接最终能被识别并清除。死的TCP连

    接是被拨号用户存取的系统的一个特别的问题,因为用户经常断开modem而不正确的关闭活动的连接 
    net.inet.tcp.always_keepalive=1  
     
    #若看到net.inet.ip.intr_queue_drops这个在增加,就要调大net.inet.ip.intr_queue_maxlen,为0最好  
    net.inet.ip.intr_queue_maxlen=1000  
     
    #防止DOS攻击,默认为30000  
    net.inet.tcp.msl=7500  
     
    #接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包  
    net.inet.tcp.blackhole=2  
     
    #接收到一个已经关闭的端口发来的所有UDP包直接drop  
    net.inet.udp.blackhole=1  
     
    #为网络数据连接时提供缓冲  
    net.inet.tcp.inflight.enable=1  
     
    #如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间,但会需要大量的内核内存

    空间来保存路由表  
    net.inet.ip.fastforwarding=0  
     
    #kernel编译打开options POLLING功能,高负载情况下使用低负载不推荐SMP不能和polling一起用  
    #kern.polling.enable=1  
     
    #并发连接数,默认为128,推荐在1024-4096之间,数字越大占用内存也越大  
    kern.ipc.somaxconn=32768  
     
    #禁止用户查看其他用户的进程  
    security.bsd.see_other_uids=0  
     
    #设置kernel安全级别  
    kern.securelevel=0  
     
    #记录下任何TCP连接  
    net.inet.tcp.log_in_vain=1  
     
    #记录下任何UDP连接  
    net.inet.udp.log_in_vain=1  
     
    #防止不正确的udp包的攻击  
    net.inet.udp.checksum=1  
     
    #防止DOS攻击  
    net.inet.tcp.syncookies=1  
     
    #仅为线程提供物理内存支持,需要256兆以上内存  
    kern.ipc.shm_use_phys=1  
     
    # 线程可使用的最大共享内存  
    kern.ipc.shmmax=67108864  
     
    # 最大线程数量  
    kern.ipc.shmall=32768  
     
    # 程序崩溃时不记录  
    kern.coredump=0  
     
    # lo本地数据流接收和发送空间  
    net.local.stream.recvspace=65536  
    net.local.dgram.maxdgram=16384  
    net.local.dgram.recvspace=65536  
     
    # 数据包数据段大小,ADSL为1452。  
    net.inet.tcp.mssdflt=1460  
     
    # 为网络数据连接时提供缓冲  
    net.inet.tcp.inflight_enable=1  
     
    # 数据包数据段最小值,ADSL为1452  
    net.inet.tcp.minmss=1460  
     
    # 本地数据最大数量  
    net.inet.raw.maxdgram=65536  
     
    # 本地数据流接收空间  
    net.inet.raw.recvspace=65536  
     
    #ipfw防火墙动态规则数量,默认为4096,增大该值可以防止某些病毒发送大量TCP连接,导致不能建立正常连接  
    net.inet.ip.fw.dyn_max=65535  
     
    #设置ipf防火墙TCP连接空闲保留时间,默认8640000(120小时)  
    net.inet.ipf.fr_tcpidletimeout=864000


    $ /proc/sys/net/core/wmem_max
    最大socket写buffer,可参考的优化值:873200
    $ /proc/sys/net/core/rmem_max
    最大socket读buffer,可参考的优化值:873200
    $ /proc/sys/net/ipv4/tcp_wmem
    TCP写buffer,可参考的优化值: 8192 436600 873200
    $ /proc/sys/net/ipv4/tcp_rmem
    TCP读buffer,可参考的优化值: 32768 436600 873200
    $ /proc/sys/net/ipv4/tcp_mem
    同样有3个值,意思是:
    net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力.
    net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段.
    net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket.
    上述内存单位是页,而不是字节.可参考的优化值是:786432 1048576 1572864
    $ /proc/sys/net/core/netdev_max_backlog
    进入包的最大设备队列.默认是300,对重负载服务器而言,该值太低,可调整到1000.
    $ /proc/sys/net/core/somaxconn
    listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.可调整到256.
    $ /proc/sys/net/core/optmem_max
    socket buffer的最大初始化值,默认10K.
    $ /proc/sys/net/ipv4/tcp_max_syn_backlog
    进入SYN包的最大请求队列.默认1024.对重负载服务器,增加该值显然有好处.可调整到2048.
    $ /proc/sys/net/ipv4/tcp_retries2
    TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源.
    $ /proc/sys/net/ipv4/tcp_keepalive_time
    $ /proc/sys/net/ipv4/tcp_keepalive_intvl
    $ /proc/sys/net/ipv4/tcp_keepalive_probes
    这3个参数与TCP KeepAlive有关.默认值是:
    tcp_keepalive_time = 7200 seconds (2 hours)
    tcp_keepalive_probes = 9
    tcp_keepalive_intvl = 75 seconds
    意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe 9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效.对服务器而言,显然上述值太大. 可调整到:
    /proc/sys/net/ipv4/tcp_keepalive_time 1800
    /proc/sys/net/ipv4/tcp_keepalive_intvl 30
    /proc/sys/net/ipv4/tcp_keepalive_probes 3
    $ proc/sys/net/ipv4/ip_local_port_range
    指定端口范围的一个配置,默认是32768 61000,已够大.
     
    net.ipv4.tcp_syncookies = 1
    表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

    net.ipv4.tcp_tw_reuse = 1
    表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

    net.ipv4.tcp_tw_recycle = 1
    表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

    net.ipv4.tcp_fin_timeout = 30
    表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。

    net.ipv4.tcp_keepalive_time = 1200
    表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

    net.ipv4.ip_local_port_range = 1024 65000
    表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

    net.ipv4.tcp_max_syn_backlog = 8192
    表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

    net.ipv4.tcp_max_tw_buckets = 5000

    表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为 5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

    展开全文
  • ulimit -a可以查看管道的大小,这是内核设定的为8*512byte=4k LINUX 管道实现的机制 从本质上说,管道也是一种文件,但他又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题  - 限制管道的大小。...

    ulimit  -a可以查看管道的大小,这是内核设定的为8*512byte=4k


    LINUX 管道实现的机制

    从本质上说,管道也是一种文件,但他又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题

       -  限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中该换冲区的大小为一页,4k

    使得他的大小不像文件那样不加检验的增长。使用固定缓冲区也会带来问题,比如再写管道时可能变满

    当这种情况发生时,随后对管道的write()调用被阻塞,等待某些数据被读取,以便腾出足够的空间供

    write()调用。

       -  读取工作也可能比写的进程快。当所有进程的数据被读取完时,一个随后的read()调用将默认的被阻塞、

    管道变空。这种情况发生时,一个随后的read()调用将被默认的阻塞,等待某些数据被写入,这样就解决了read()

    调用将被默认的阻塞,等待某些数据将被写入,这解决了read()调用返回文件结束的问题。


    写一个程序测试下管道容量



    可以看到容量为65536


    展开全文
  • 最近发现很多内核优化参数都记不住了,写下文章来备记,方便以后查看. ...#最大的接受UDP缓冲区大小 net.inet.udp.sendspace=65535 #最大的发送UDP数据缓冲区大小 net.inet.udp.maxdgram=65535 #本地
  • linux内核 0.11版本源码 带中文注释

    热门讨论 2009-08-31 15:10:21
    #define EXT_MEM_K (*(unsigned short *)0x90002) // 1M 以后的扩展内存大小(KB)。 #define DRIVE_INFO (*(struct drive_info *)0x90080) // 硬盘参数表基址。 #define ORIG_ROOT_DEV (*(unsigned short *)0x901FC...
  •  语 法:dmesg [-cn][-s <缓冲区大小>]  补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里...
  • size定义的是内核管道缓冲区大小,这个值的大小是由内核设定的;而pipe capacity指的是管道的最大值,即容量,是内核内存中的一个缓冲区。 1.首先我们通过命令来看一下内核管道缓冲区大小: 2.我们可以通过...
  • 要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 ...缓冲区大小>] 补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log...
  • free显示系统中可用和可用的物理内存和交换内存的总量,以及内核使用的缓冲区和高速缓存。 total:总计物理内存的大小。 used:已使用多大。 free:未使用内存。 Shared:多个进程共享的内存总额。 Buff/cached:...
  • Free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存 如果加上 -h 选项,输出的结果会友好很多: 有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数...
  • 1、pipe的容量2.6标准版本的linux内核,pipe缓冲区是64KB,尽管命令ulimit -a看到管道大小8块,缓冲区大小不是4 k,因为内核动态分配最大16“缓冲条目”,乘64 k。这些限制是硬编码的2、如何查看自己pc上的pipe多大1...
  • 要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 ...缓冲区大小&gt;]  补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存...
  • free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 语法:【free options】 free 默认输出以字节为单位的数值,可通过参数控制数值单位。 示例: 输出简介: 行介绍: Mem 行(第...
  • 尽管命令ulimit -a看到管道大小8块,缓冲区大小不是4 k,因为内核动态分配最大16“缓冲条目”,乘64 k验证管道的容量: 管道是一种最基本的 IPC机制,由pipe函数创建: 调用pipe函数时在内核中开辟⼀一块缓冲区(称为...
  • IPC(进程间通信 Inter Process Comnunication) 目前常用的通信方式: 管道 最简单 信号 开销最小 共享映射区域 在无关系的进程间通信 本地套接字 最复杂,最稳定 ...查看缓冲区大小 #ulimit -a 512字节*8...
  • Linux之dmesg命令

    2014-01-14 20:05:00
    功能说明:显示内核缓冲区系统控制信息的工具 ,比如系统在启动时的信息会写到/var/log/中。语 法:dmesg [-cn][-s <缓冲区大小>]补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看...
  • Linux基础2

    2019-03-06 10:16:29
    作用:free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 Mem 行(第二行)是内存的使用情况。Swap 行(第三行)是交换空间的使用情况。total 列显示系统总的可用物理内...
  • linux free 命令

    2020-12-05 14:02:10
    free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 #这个可以很直观的看到结果 free -h 如果需要持续查看 (下面表示每5秒打印一次) free -h -s 5 Mem:是内存的使用情况。...
  • Linux学习笔记8

    千次阅读 2016-04-02 21:00:46
    打印或控制内核缓冲区 查看某个分区格式化时指定的块大小 获取命令的安装包 文本编辑工具vim 上一条命令的最后一个参数 gzip压缩工具的使用 bzip2压缩工具 使用zip压缩工具常用 使用tar压缩工具常用 三种压缩工具...
  • Linux编程从入门到精通

    千次下载 热门讨论 2011-09-21 10:19:24
    2.8.1 减少缓冲区和页缓存大小 25 2.8.2 换出System V共享内存页 26 2.8.3 换出和淘汰页 27 2.9 交换缓存 27 2.10 页换入 28 第3章 进程 29 3.1 Linux进程 29 3.2 标识符 31 3.3 调度 32 3.4 文件 34 3.5 虚拟内存 ...
  • demsg命令功能说明 demsg命令用于显示开机信息,内核会将开机信息存储...用法如下: dmesg [选项]命令参数选项含义-c显示开机信息后,清除ring buffer信息-s设置缓冲区大小,默认设置为8192-n设置记录信息的层级内核...
  • 12.2.8 so_rcvbuf和so_sndbuf缓冲区大小选项 340 12.2.9 so_rcvlowat和so_sndlowat缓冲区下限选项 340 12.2.10 so_rcvtimeo和so_sndtimeo收发超时选项 341 12.2.11 so_reuseraddr地址重用选项 341 12.2.12 so_...
  • 10.7.1 缓冲区高速缓存 10.7.2 页面高速缓存 10.7.3 交换高速缓存 10.7.4 硬件高速缓存 10.8 系统页表 10.9 页面的分配和释放 10.9.1 页的分配 10.9.2 页的释放 10.10 内存映射 10.11 请示调页 10.12 页面高速缓存 ...
  • 10.7.1 缓冲区高速缓存 86 10.7.2 页面高速缓存 86 10.7.3 交换高速缓存 86 10.7.4 硬件高速缓存 86 10.8 系统页面表 86 10.9 页面的分配和释放 87 10.9.1 页面的分配 88 10.9.2 页面的释放 88 10.10 内存映射 88 ...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级...
  • 1.5.1 Linux内核的主要模块............................................ 7 1.5.2 Linux的文件结构................................................ 9 1.6 G N U 通用公共许可证...................................
  • 6.16 fbset指令:设置帧缓冲区 6.17 grpconv指令:开启群组的投影密码 6.18 grpunconv 指令:关闭群组的投影密码 6.19 hwclock指令:显示与设定硬件时钟(rtc) 6.20 insmod指令:载入模块 6.21 kbdconfig指令:设置...
  • 缓冲区大小不是由内核自己决定的吗?还是write和read函数调用不当?请大神们指正!这个问题困扰了我好多天了! 以下是客户端和服务端的代码,末尾是运行结果的截图。 客户端: #include <stdlib.h> #include ...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

linux查看内核缓冲区大小

linux 订阅