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. Software Testing, Lab 1

    1.Install Junit(4.12), Hamcrest(1.3) with Eclipse 2.Install Eclemma with Eclipse 3.Write a java prog ...

  2. vue的一些感想

    如今vue2.0是主流,但是它的路由确实直接从1.0过来的,其中包括组件包括全局组件和局部组件,写好组件之后,我们就需要 使用路由,将组件关联起来,关联起来之后,然后我们才可以将组件的内容通过hash ...

  3. Linux cached过高问题

    1. cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 . Free中的buffer和cache:(它们都是占用内存):buffer : 作为buffer cac ...

  4. 提取路由器固件中的squashfs

    之前用binwalk -Me提取固件中的squashfs,但会生成大量的压缩包等,只提取文件系统的话,可以定位squashfs的文件头(hsqs)位置,然后用dd将它分离出来,然后在unsquashf ...

  5. 【题解】JSOIWC2019 Round1

    题面(T1变成5s(毒瘤出题人发现std超时了qaq)): 啥都不会qaq.但也送了不少分 题解: T1: 当T=0时直接异或前缀和,但T=1时就有点恶心 暴力能有80pts(防止大家爆零) 还珂以用 ...

  6. ts文件编译后变量在vscode里报错

    需要将编译过的同名js文件删除才可以

  7. 剑指offer(57)二叉树的下一个节点

    题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 题目分析 这题一定要画图,因为只有画图我们才能分清楚下 ...

  8. webpack搭建项目时出现的报错“Module build failed (from ./node_modules/css-loader/dist/cjs.js) CssSyntaxError”

    控制台出现的错误如下: webpack.config.js中的配置如下: module.exports={ entry:'./src/main.js', output:{ path:__dirname ...

  9. 王之泰201771010131《面向对象程序设计(java)》第八周学习总结

    第一部分:理论知识学习部分 第六章 第六章知识点主要分为1. 接口 2. lambda表达式 3. 内部类 4. 代理 1. 接口 1) Java为了克服单继承的缺点,Java使用了接口, 一个类可以 ...

  10. 补充一下 sizeof

    sizeof是一个运算符,给出某个类型或变量在内存中所占据的字节数 sizeof(int) //告诉你int占据几个字节 sizeof(i) //告诉你i这个变量占据几个字节 注:sizeof是静态运 ...