总结linux内核的一些参数优化
sysctl命令被用于在动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。
它包含一些TCP/IP堆栈和虚拟内存系统的高级选项, 用sysctl可以读取设置超过五百个系统变量。
sysctl变量的设置,通常是字符串,数字或者布尔型(布尔型用1来表示Yes',用0来标识'No')
这里把常用的系统变量, 列队整理为脚本,便于使用.
#!bin/bash
#作者:liusingbon
#功能:优化内核参数,适用RHEL7
cat >> /usr/lib/sysctl.d/00-system.conf <<EOF
fs.file-max=65535
#最大并发访问量
net.ipv4.tcp_timestamps = 0
#禁用时间戳
net.ipv4.tcp_synack_retries = 5
#对于远端的连接请求SYN,内核会发送SYN+ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手.这里决定内核在放弃连接之前所送出的 SYN+ACK 数目.
net.ipv4.tcp_syn_retries = 5
#表示本机向外发起TCP SYN连接超时重传的次数,不应该高于255;该值仅仅针对外出的连接,对于进来的连接由tcp_retries1控制.
net.ipv4.tcp_tw_recycle = 1
#打开快速 TIME-WAIT sockets 回收。这里的 1示意启用.
net.ipv4.tcp_tw_reuse = 1
#表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接. 1示意启用
net.ipv4.tcp_fin_timeout = 30
#本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。
net.ipv4.ip_local_port_range = 1024 65535
#本地发起连接时使用的端口范围,tcp初始化时会修改此值
kernel.shmall = 2097152
#系统上可以使用的共享内存的总量(单位:字节)
kernel.shmmax = 2147483648
#系统所允许的最大共享内存段的大小(单位:字节)
kernel.shmmni = 4096
#整个系统共享内存段的最大数量
kernel.sem = 5010 641280 5010 128
#该文件包含4个值:
#1.同一类信号的最多数量(semmsl)
#2.系统中信号的最多数目=semmni*semmsl (semmns)
#3.每个semop系统调用所包含的最大的操作数(能调用的信号量的最多次数) (semopm)
#4.系统中信号类型的数目的最大值,一个信号量标识符代表一个类型(semmni)
net.core.wmem_default=262144
#设置发送的socket缺省缓存大小(字节)
net.core.wmem_max=262144
#设置发送的socket最大缓存大小(字节)
net.core.rmem_default=4194304
#设置接收socket的缺省缓存大小(字节)
net.core.rmem_max=4194304
#设置接收socket的最大缓存大小(字节)
net.ipv4.tcp_window_scaling = 0
#表示设置tcp/ip会话的滑动窗口大小是否可变,0示意禁用
net.ipv4.tcp_sack = 0
#表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能,这样可以让发送者只发送丢失的报文段;
#对于广域网通信来说,这个选项应该启用,但是这会增加对 CPU 的占用.
#net.ipv4.tcp_keepalive_time = 1200
#表示从最后一个包结束后多少秒内没有活动,才发送keepalive包保持连接,默认7200s,理想可设为1800s,即如果非正常断开,1800s后可通过keepalive知道.这里使用#注释掉.
EOF
sysctl –p
总结linux内核的一些参数优化的更多相关文章
- 高并发情况下Linux系统及kernel参数优化
众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参数方面和IO事件分配机制等.下面就从几方面来调整使Linux系统能够支持高并发环境. Iptabl ...
- (转)linux内核调优参数对比和解释
[net] ######################## cat /proc/sys/net/ipv4/tcp_syncookies # 默认值:1 # 作用:是否打开SYN Cookie功能,该 ...
- u-boot向linux内核传递启动参数(详细)
U-BOOT 在启动内核时,会向内核传递一些参数.BootLoader 可以通过两种方法传递参数给内核,一种是旧的参数结构方式(parameter_struct),主要是 2.6 之前的内核使用的方式 ...
- u-boot向linux内核传递启动参数
U-BOOT 在启动内核时,会向内核传递一些参数.BootLoader 可以通过两种方法传递参数给内核,一种是旧的参数结构方式(parameter_struct),主要是 2.6 之前的内核使用的方式 ...
- Linux内核TCP/IP参数分析与调优
转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0225/167.html?1456482565 如下图展示的是TCP的三个阶段.1,TCP三次握手. ...
- 云服务器-Ubuntu更新系统版本-更新Linux内核-服务器安全配置优化-防反弹shell
购入了一台阿里云的ESC服务器,以前都用CentOS感觉Yum不怎么方便,这次选的Ubuntu16.04.7 搭好服务之后做安全检查,发现Ubuntu16.04版本漏洞众多:虽然也没有涉及到16.04 ...
- Linux内核协议栈 NAT性能优化之FAST NAT
各位看官非常对不起,本文是用因为写的,如果多有不便敬请见谅 代码是在商业公司编写的,在商业产品中也不能开源,再次抱歉 This presentation will highlight our ef ...
- 《C预处理》Linux内核中可变参数宏的用法
http://blog.csdn.net/tankai19880619/article/details/12015305
- Linux内核 TCP/IP参数调优
http://www.360doc.com/content/14/0606/16/3300331_384326124.shtml
随机推荐
- leetcode-easy-dynamic-53 Maximum Subarray
mycode 66.85% class Solution(object): def maxSubArray(self, nums): """ :type nums: L ...
- java的replace和replaceAll
都是全部替换,只不过后者参数为正则 replaceFirst()是替换第一个
- internetwork 与 the Internet的区别
internetwork 表示:互连网络 the Internet 表示:因特网
- 阶段3 2.Spring_08.面向切面编程 AOP_10 总结和作业安排
由转账添加事物,使得我们的操作变的非常麻烦.重复代码产生了很多 实际的开发中如果想记录日志每个方法都要执行 如果判断用户是否登陆也是每个方法都需要判断 这些重复的代码我们都需要去解决. 解决的方式,以 ...
- Linux进程的虚拟内存
简介 用户进程的虚拟地址空间是Linux的一个重要的抽象:它为每个运行进程提供了同样的系统视图,这使得多个进程可以同时运行,而不会干扰到其他进程内存中的内容. 每个应用程序都有自己的线性地址空间,与所 ...
- mysql中基本的语句
操作字段: 添加字段 ALTER TABLE 表名 ADD 字段 varchar(20) COMMENT '别名'; 修改表字段的属性等(除了修改表名称) ALTER TABLE 表名 MODIFY ...
- jmeter-在beanshell里用代码提取参数
接口返回json(response_data): { "Code":1, "Message":null, "Error":null, &qu ...
- 字符串转Interger
public static void main(String[] args) { String t = "5"; Integer integer = Integer.valueOf ...
- nodejs以对象做对象的key导致value一直被覆盖
问题描述 在开发中,实现技能状态的事件监听功能时,将状态对象作为key,存入事件管理器的监听列表,如下图: 实现后,运行程序,并没有报错,但是当某个事件发生时,只有一个状态被触发监听,而大多数状态 ...
- PTA(Basic Level)1008.数组元素循环右移问题
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最 ...