前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux内核调优

Linux内核调优

作者头像
兜兜毛毛
发布2020-10-26 17:06:57
3.1K0
发布2020-10-26 17:06:57
举报
文章被收录于专栏:兜兜毛毛兜兜毛毛

网络

代码语言:javascript
复制
cat >> /etc/sysctl.conf << EOF
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65535
EOF
/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 物理内存,可取 6410241024*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的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。

文件

代码语言:javascript
复制
cat >> /etc/security/limits.conf << EOF
*           soft   nofile       65536
*           hard   nofile       65536
EOF

参数名

说明

soft nofile

表示软限制

hard nofile

表示硬限制

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档