Linux常用内核参数

TCP状态描述

CLOSED:无连接是活动的或正在进行的

LISTEN:服务器在等待进入呼叫

SYN-RECV:一个连接请求已经到达,等待确认

SYN-SENT:应用已经开始,打开一个连接

ESTABLISHED:已经建立的连接

FIN-WAIT1:主动断开一方,第一次发送完FIN

FIN-WAIT2:主动断开一方,收到对端确认的ACK

TIME-WAIT:主动断开一方,收到FIN-ACK

CLOSE-WAIT:被动断开一方,收到对方FIN且发送完ACK后

LAST-ACK:被动断开了方,发送完FIN后

net.ipv4.ip_forward = 1

开启ip转发功能

net.core.netdev_max_backlog = 400000

该参数决定了网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

net.core.optmeme_max = 10000000

该参数指定了每个套接字所允许的最大缓冲区的大小

net.core.rmem_default = 1000000

指定了接收套按字缓冲区大小的缺少值

net.core.rmem_max = 10000000

指定了接收套按字缓冲区大小的最大值

net.core.somaxconn = 1000000

指定socket监听的backlog(监听队列)上限

net.core.wmem_default = 11059200

定义默认的发送窗口大小

net.ipv4.tcp_windows_scaling = 0

关闭tcp_windows_scaling

net.ipv4.tcp_ecn = 0

把TCP的显式拥塞通告关闭

net.ipv4.tcp_max_tw_buckets = 10000

同时保持TEAM_WAIT套接字的最大数量

net.ipv4.tcp_max_syn_backlog = 1024

SYN队列长度,默认1024

net.ipv4.tcp_syncookies = 1

开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理

net.ipv4.tcp_tw_reuse = 1

开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭

net.ipv4.tcp_tw_recyle = 1

表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

net.ipv4.tcp_fin_timeout = 10

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

net.ipv4.tcp_keepalive_time = 1800

表示当keepalive开启的时候,TCP发送keepalive消息的频率。缺少是2小时。

net.ipv4.tcp_keepalive_probes = 3

如果对方不予应答,探测包的发送次数

net.ipv4.tcp_keepalive_intvl = 15

keepalive探测包发送间隔

net.ipv4.ip_local_port_range = 32768 65000

用于向外连接的端口范围

net.ipv4.tcp_slow_start_after_idle = 0

关闭tcp的连接传输的慢启动,即先休止一段时间,再初始化拥塞窗口

net.ipv4.route.gc_timeout = 100

路由缓存刷新频率,当一个路由失败后,多长时间跳到另一个路由,默认是300

net.ipv4.tcp_syn_retries = 1

在内核放弃建立连接之前发送SYN包的数量

修改完成后执行如下命令生效

$ sudo sysctl -p

使用while检测192.168.2.0/24网段存活的主机

#!/bin/bash
#使用while循环检测192.168.2.0/24网段内存活的主机
#对于ping测试成功的主机立即进行下一轮,对于ping
#测试不成功的主机连续进行三次测试,如果全部失败
#,则提示存机该IP不存在 TESTNET=192.168.2. ip_check() {
ping -c 1 -w 1 $1 &> /dev/null
}
i=1
while [ $i -le 255 ]
do
FAIL_NUM=0
ip_check $TESTNET$i
if [ $? -eq 0 ] ;then
echo -e "\033[32m$TESTNET$i is alive\033[0m"
else
ip_check $TESTNET$i || let FAIL_NUM++
ip_check $TESTNET$i || let FAIL_NUM++
ip_check $TESTNET$i || let FAIL_NUM++
[ $FAIL_NUM -eq 3 ] && echo -e "\033[31m$TESTNET$i is down\033[0m"
fi
let i++
done

使用for循环检测192.168.2.0/24网段存活的主机

#!/bin/bash
#使用for循环检测192.168.2.0/24网段内的主机
#如果成功直接输出,如果失败,连续检测三次 TESTNET=192.168.2. ip_check() {
ping -c 1 -w 1 $1 &> /dev/null
} for i in {1..5};do
FAIL_NUM=0
ip_check $TESTNET$i
if [ $? -eq 0 ];then
echo -e "\033[32m$TESTNET$i is alive\033[0m"
else
ip_check $TESTNET$i && echo -e "\033[32m$TESTNET$i is alive\033[0m" || let FAIL_NUM++
ip_check $TESTNET$i && echo -e "\033[32m$TESTNET$i is alive\033[0m" || let FAIL_NUM++
ip_check $TESTNET$i && echo -e "\033[32m$TESTNET$i is alive\033[0m" || let FAIL_NUM++
[ $FAIL_NUM -eq 3 ] && echo -e "\033[31m$TESTNET$i is down \033[0m"
fi
done

initrd

Linux初始化RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个initrd RAM磁盘卸载,并释放内存。

初始RAM磁盘(RAM)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核会将这个initrd文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。

initrd中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的insmod工具。

在桌面或服务器Linux系统中,initrd是一个临时文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd是永久的根文件系统。

Linux常用内核参数的更多相关文章

  1. (转)linux IO 内核参数调优 之 参数调节和场景分析

    1. pdflush刷新脏数据条件 (linux IO 内核参数调优 之 原理和参数介绍)上一章节讲述了IO内核调优介个重要参数参数. 总结可知cached中的脏数据满足如下几个条件中一个或者多个的时 ...

  2. [记录]优化Linux 的内核参数来提高服务器并发处理能力

    优化Linux 的内核参数来提高服务器并发处理能力PS:在服务器硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题.要提高Linux 系统下的负载 ...

  3. Nginx常用内核参数优化,安装,基本命令

    1.内核参数配置,默认的Linux内核参数考虑的是通用的场景,明显不符合用于支持高并发访问web服务的定义,所以需要修改Linux内核参数,使得Nginx可以拥有更高的性能.可以通过修改 /etc/s ...

  4. nginx的linux服务器内核参数调整【转】

    概述 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,让Nginx可以拥有更高的性能: 在优化内核时,可以做的事情很 ...

  5. linux 修改内核参数 如何生效?

    Linux 操作系统修改内核参数有3种方式: 修改 /etc/sysctl.conf 文件,加入配置选项,格式为 key = value ,修改保存后调用 sysctl -p 加载新配置使用 sysc ...

  6. Linux 系统调整内核参数

    调整系统内核参数 内核优化:Linux系统(内核 + shell + 应用程序)       针对业务服务应用而进行的系统内核参数调整(主要是/etc/sysctl.conf文件) 1. vim /e ...

  7. linux常见内核参数

    参数 描述 net.ipv4.ip_forward 接口间转发报文net.ipv4.tcp_tw_reuse 表示是否允许将处于 TIME-WAIT 状态的 socket (TIME-WAIT 的端口 ...

  8. 优化Linux的内核参数来提高服务器并发处理能力

    提高Linux系统下的负载能力,可以使用nginx等原生并发处理能力就很强的web服务器 使用Apache的可以启用其Worker模式,来提高其并发处理能力 修改Linux的内核相关TCP参数,来最大 ...

  9. linux IO 内核参数调优 之 原理和参数介绍

    1.  page cache linux操作系统默认情况下写都是有写缓存的,可以使用direct IO方式绕过操作系统的写缓存.当你写一串数据时,系统会开辟一块内存区域缓存这些数据,这块区域就是我们常 ...

随机推荐

  1. Qt 拷贝内容到粘贴板 || 获取粘贴板内容

    QString source = ui->textEdit_code->toPlainText(); QClipboard *clipboard = QApplication::clipb ...

  2. CSS实现经典的三栏布局

    实现效果: 左右栏定宽,中间栏自适应 (有时候是固定高度) 1 . 绝对定位布局:position + margin <div class="container"> & ...

  3. Android -- 从源码带你从EventBus2.0飚到EventBus3.0

    1,最近看了不少的面试题,不管是百度.网易.阿里的面试题,都会问到EventBus源码和RxJava源码,而自己只是在项目中使用过,却没有去用心的了解它底层是怎么实现的,所以今天就和大家一起来学习学习 ...

  4. fcrackzip (zip密码破解工具)

    现在做一个例子,首先生成一个带有密码的zip的包 zip -P hujhh test.zip test1.txt test2,txt 可以看到密码是5位的纯字母 现在就用我们的这个软件开始破解 fcr ...

  5. 一定要知道的,那些Linux操作命令

    一定要知道的,那些Linux基本操作命令(一) 目录 1.文件和目录操作命令 2.用户和用户组操作命令 3.vim编辑器操作命令 4.打包和解压操作命令 5.系统操作命令 为什么要学习linux? 1 ...

  6. ajax return 的问题

    平时都是在AJAX里执行逻辑,实然想到能不能return返回数据呢? ajax 是异步请求,return拿值得时候 ajax并没有取到值,所以是undefind. 需要把ajax的请求方式改为同步 v ...

  7. php 排列组合函数(无重复组合,可重复组合【全排列组合】)

    <?php /** * 无重复排列組合 * @Author MAX * @DateTime 2018-09-07T16:28:40+0800 * @param Array $arr 需要排列組合 ...

  8. URIError: Failed to decode param '/%PUBLIC_URL%/favicon.ico'

    今天搭建antd的项目结构,本来项目是一个基础react项目,结果执行 yarn create umi yarn yarn start 项目启动后访问突然报错URIError: Failed to d ...

  9. Python Redis 管道

    redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pi ...

  10. 委托&&异步

    private void ShowMessage(string message) { this.BeginInvoke(new MethodInvoker(delegate { txtSysMessa ...