Linux内核调优

Stella981
• 阅读 780

网络

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 物理内存,可取 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的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。

文件

cat >> /etc/security/limits.conf << EOF
*           soft   nofile       65536
*           hard   nofile       65536
EOF

参数名

说明

soft nofile

表示软限制

hard nofile

表示硬限制

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这