Linux内核调优

网络

1cat >> /etc/sysctl.conf << EOF 2kernel.msgmnb = 65536 3kernel.msgmax = 65536 4kernel.shmmax = 68719476736 5kernel.shmall = 4294967296 6net.ipv4.tcp_max_tw_buckets = 6000 7net.ipv4.tcp_fin_timeout = 30 8net.ipv4.tcp_rmem = 4096 87380 4194304 9net.ipv4.tcp_wmem = 4096 16384 4194304 10net.core.wmem_default = 8388608 11net.core.rmem_default = 8388608 12net.core.rmem_max = 16777216 13net.core.wmem_max = 16777216 14net.core.netdev_max_backlog = 262144 15net.core.somaxconn = 262144 16net.ipv4.tcp_mem = 94500000 915000000 927000000 17net.ipv4.tcp_keepalive_time = 1200 18net.ipv4.ip_local_port_range = 1024 65535 19EOF 20/sbin/sysctl -p

参数名

说明

net.ipv4.tcp_max_tw_buckets = 6000

系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。

net.ipv4.tcp_rmem = 4096 87380 4194304

接收窗口的最大大小

net.ipv4.tcp_wmem = 4096 16384 4194304

默认的接收窗口大小,默认值为 4096(4K)

net.ipv4.tcp_mem = 94500000 915000000 927000000

net.ipv4.tcp_mem[0]:低于此值,TCP 没有内存压力。net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段。net.ipv4.tcp_mem[2]:高 于此值,TCP 拒绝分配 socket。上述内存单位是页,而不是字节

net.ipv4.tcp_keepalive_time = 1200

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

net.ipv4.ip_local_port_range = 1024 65535

表示用于向外连接的端口范围

net.core.wmem_default = 8388608

为 TCP socket 预留用于发送缓冲的内存默认值(单位:字节)一般要低于 net.core.wmem_default 的值。默认值为 16384(16K)

net.core.rmem_default = 8388608

为 TCP socket 预留用于接收缓冲的内存默认值(单位:字节)

net.core.rmem_max = 16777216

为 TCP socket 预留用于接收缓冲的内存最大值(单位:字节)

net.core.wmem_max = 16777216

TCP socket 预留用于发送缓冲的内存最大值(单位:字节)

net.core.netdev_max_backlog = 262144

每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

net.core.somaxconn = 262144

listen(函数)的默认参数,挂起请求的最大数量限制

kernel.msgmnb = 65536

所有在消息队列中的消息总和的最大值(msgmnb=64k)

kernel.msgmax = 65536

指定内核中消息队列中消息的最大值(msgmax=64k)

kernel.shmmax = 68719476736

是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,64 位 linux 系统:可取的最大值为物理内存值-1byte,建 议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存-1byte。例如,如果为 64GB 物理内存,可取 64_1024_1024*1024-1=68719476735

kernel.shmall = 4294967296

该参数控制可以使用的共享内存的总页数。Linux 共享内存页大小为 4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是 16G,那么需要共享内存页数是 16GB/4KB=16777216KB /4KB=4194304(页) ,也就是 64Bit 系统下 16GB 物理内存,设置 kernel.shmall = 4194304 才符合要求(几乎是原来设置 2097152 的两倍)

net.ipv4.tcp_fin_timeout = 30

TCP协议的time_wait超时时间。操作系统默认240秒后,才会关闭处于time_wait状态的连接,在高并发访问下,服务器端会因为处于time_wait的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。

文件

1cat >> /etc/security/limits.conf << EOF 2* soft nofile 65536 3* hard nofile 65536 4EOF

参数名

说明

soft nofile

表示软限制

hard nofile

表示硬限制

软限制要小于等于硬限制。上面两行语句表示,root用户的软限制为1000,硬限制为1200,即表示root用户能打开的最大文件数量为1000,不管它开启多少个shell。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )