首页 > 系统相关 >Linux 【关于内核参数详解和优化】

Linux 【关于内核参数详解和优化】

时间:2024-08-08 21:56:05浏览次数:17  
标签:sysctl echo etc 详解 ipv4 conf Linux net 内核

Linux内核参数是操作系统中用于调整和优化系统性能和行为的关键设置。

Linux内核参数可以通过以下几种方式进行查看和修改:

  1. /proc/sys目录:大多数内核参数都可以在/proc/sys目录下找到,使用sysctl命令查看和设置这些参数。
  2. sysctl.conf文件:此文件通常位于/etc目录中,可以在系统启动时自动应用内核参数。
  3. 命令行:在系统启动时通过引导加载程序(如GRUB)传递参数(以 GRUB_CMDLINE_LINUX_DEFAULT 开头的那一行)。

1.文件系统参数:

1.1 fs.file-max

描述:控制系统中打开文件描述符的数量上限。

默认值:通常为65535。

优化建议:对于高负载服务器,可以增加此限制,以防止文件句柄耗尽的问题。

设置方法:

sysctl -w fs.file-max=6553560
echo "fs.file-max=6553560" >> /etc/sysctl.conf

1.2 fs.nr_open

描述:定义了每个进程可以打开的文件描述符的最大数量。

优化建议:可以根据具体需求进行调整,尤其是对于需要打开大量文件的应用程序。

设置方法:

sysctl -w fs.nr_open=1048576
echo "fs.nr_open=1048576" >> /etc/sysctl.conf

2.内存管理参数

2.1 vm.max_map_count

描述:控制单个进程可以拥有的内存映射区域的最大数量。

默认值:65536。

优化建议:增加此值可以允许更多的内存映射,适用于需要大量内存映射的应用。

设置方法:


sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" >> /etc/sysctl.conf

2.2 vm.swappiness

描述:控制系统使用交换空间的倾向。值越高,系统越倾向于使用交换空间。

默认值:60。

优化建议:对于需要高性能的应用服务器,可以设置为10或更低,以减少交换的频率。

设置方法:

sysctl -w vm.swappiness=10
echo "vm.swappiness=10" >> /etc/sysctl.conf

2.3 vm.dirty_ratio 和 vm.dirty_background_ratio

描述:这两个参数控制内核回写脏( 已修改但尚未写入磁盘 )页的阈值。

优化建议:适当调整这两个参数可以优化磁盘I/O性能。

设置方法:

sysctl -w vm.dirty_ratio=15
sysctl -w vm.dirty_background_ratio=5
echo "vm.dirty_ratio=15" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio=5" >> /etc/sysctl.conf

vm.dirty_ratio作用:调整系统在什么时候开始和停止将脏(已修改但尚未写入磁盘)页面刷新回磁盘。

vm.dirty_background_ratio 表示系统内存的一定比例被脏页所占用时,系统允许后台写入操作继续进行。后台写入操作是指在正常系统负载下,不会因为脏页过多而影响系统响应性能的写入操作。

当脏页占用的内存达到 vm.dirty_ratio 所设定的百分比时,系统会触发后台写入操作,将脏页写入磁盘。

3.进程和线程参数

3.1 kernel.pid_max

描述:控制系统中可以同时存在的进程数量的上限。

默认值:32768。

优化建议:对于需要启动大量进程的系统中,可以增加此值。

设置方法:


sysctl -w kernel.pid_max=4194303
echo "kernel.pid_max=4194303" >> /etc/sysctl.conf

3.2 kernel.threads-max

描述:定义了系统中进程数量(包括线程)的最大值。

优化建议:对于多线程应用程序,适当增加此值以支持更多的线程。

设置方法:


sysctl -w kernel.threads-max=2097152
echo "kernel.threads-max=2097152" >> /etc/sysctl.conf

4.网络参数

4.1 net.ipv4.tcp_max_tw_buckets

描述:控制系统中TIME_WAIT套接字的最大数量。

优化建议:增加该值可以减少TIME_WAIT套接字的数量,适用于高并发的服务器。

设置方法:

sysctl -w net.ipv4.tcp_max_tw_buckets=5000
echo "net.ipv4.tcp_max_tw_buckets=5000" >> /etc/sysctl.conf

4.2 net.ipv4.tcp_tw_reuse 和 net.ipv4.tcp_tw_recycle

描述:这两个参数控制TCP TIME-WAIT快速重用。

优化建议:开启这些参数可以允许快速重用TIME_WAIT状态的连接。

设置方法:


sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1
echo "net.ipv4.tcp_tw_reuse=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle=1" >> /etc/sysctl.conf

4.3 net.ipv4.tcp_fin_timeout 和 net.ipv4.tcp_keepalive_time

描述:分别控制TCP连接的关闭时限和空闲超时时间。

优化建议:适当减少这些时间可以加快资源的回收。

设置方法:


sysctl -w net.ipv4.tcp_fin_timeout=10
sysctl -w net.ipv4.tcp_keepalive_time=150
echo "net.ipv4.tcp_fin_timeout=10" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time=150" >> /etc/sysctl.conf

4.4 net.ipv4.ip_local_port_range

描述:定义UDP和TCP连接的本地端口的取值范围。

优化建议:扩大端口范围以支持更多的并发连接。

设置方法:


sysctl -w net.ipv4.ip_local_port_range="1024 65000"
echo "net.ipv4.ip_local_port_range=1024 65000" >> /etc/sysctl.conf

5.消息队列参数

5.1 kernel.msgmnb.kernel.msgmax 和 kernel.msgmni

描述:分别控制消息队列的最大长度.单个消息的最大长度和系统中同时运行的消息队列的个数。

优化建议:根据具体需求调整这些参数,以优化消息队列的性能。

设置方法:

sysctl -w kernel.msgmnb=65536
sysctl -w kernel.msgmax=65536
sysctl -w kernel.msgmni=2048
echo "kernel.msgmnb=65536" >> /etc/sysctl.conf
echo "kernel.msgmax=65536" >> /etc/sysctl.conf
echo "kernel.msgmni=2048" >> /etc/sysctl.conf

6.共享内存参数

6.1 kernel.shmmax 和 kernel.shmall

描述:分别控制单个共享内存段的最大值和系统上可以使用的共享内存的总量

优化建议:在需要大量共享内存的应用中,如数据库服务器,适当增加这些值。

设置方法:

sysctl -w kernel.shmmax=1800000000000
sysctl -w kernel.shmall=1800000000000
echo "kernel.shmmax=1800000000000" >> /etc/sysctl.conf
echo "kernel.shmall=1800000000000" >> /etc/sysctl.conf

7.TCP缓冲区参数

7.1 net.ipv4.tcp_rmem 和 net.ipv4.tcp_wmem

描述:定义TCP接收和发送缓冲区的大小。

优化建议:根据网络带宽和延迟调整这些参数,以优化网络性能。

设置方法:

sysctl -w net.ipv4.tcp_rmem="10240 87380 12582912"
sysctl -w net.ipv4.tcp_wmem="10240 87380 12582912"
echo "net.ipv4.tcp_rmem=10240 87380 12582912" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem=10240 87380 12582912" >> /etc/sysctl.conf

8.套接字监听队列参数

8.1 net.core.somaxconn

描述:控制套接字监听队列的最大长度。

优化建议:对于高并发的Web服务器,增大此值以提高接受连接的能力。

设置方法:

sysctl -w net.core.somaxconn=40960
echo "net.core.somaxconn=40960" >> /etc/sysctl.conf

9.网络设备参数

9.1 net.core.netdev_max_backlog

描述:控制网络设备队列的最大长度。

优化建议:适当增大此值可以优化网络吞吐量。

设置方法:

sysctl -w net.core.netdev_max_backlog=8096

标签:sysctl,echo,etc,详解,ipv4,conf,Linux,net,内核
From: https://blog.csdn.net/qq_43606536/article/details/141037178

相关文章

  • 知攻善防Web1应急靶机笔记--详解
    知攻善防Web1应急靶机笔记概述这是一台知攻善防实验室的应急响应靶机,方便大家练习一下应急响应的流程和操作。靶机的前景概述:前景需要:小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就立刻将服务器关机,这是他的服务器系统,请你找出以下内容,并作为通关条件:1.攻击者的shell密......
  • Linux进程管理
    Linux进程管理进程定义分配内存,已分配内存的地址空间安全属性,进程的运⾏身份和权限进程代码,运⾏⼀个或多个的线程进程状态,进程运⾏后的多种状态进程是已启动的可执行程序的运行实例。包含:分配内存、安全属性、进程代码、进程状态。静态程序:二进制文件(如/bin/ls,......
  • 【Linux】【系统纪元】Linux起源与环境安装
    快乐的流畅:个人主页个人专栏:《C游记》《进击的C++》《Linux迷航》远方有一堆篝火,在为久候之人燃烧!文章目录一、Linux的起源1.1计算机硬件1.2计算机软件二、Linux的环境安装2.1安装方式2.2安装版本2.3安装过程2.4远程登录三、Linux的应用场景......
  • Linux标准输入输出与重定向、管道技术
    Linux标准输入输出与重定向、管道技术1.标准输入输出1.1概念每个Linux程序执行时,默认打开三个标准文件描述符:标准输入(STDIN):文件描述符为0,通常对应终端键盘。标准输出(STDOUT):文件描述符为1,默认输出到屏幕。错误输出(STDERR):文件描述符为2,默认输出到屏幕。1.2示例cat......
  • Linux系统中的find命令
    Linux系统中的find命令1.find命令的基本语法其中:路径:指定要搜索的目录。选项:指定搜索参数,如时间、用户、文件类型等。表达式:指定搜索条件,如文件名、大小、权限等。动作:指定对找到的文件执行的操作,如打印、删除、复制等。2.查找文件名称查找精确匹配文件名:-name"文件......
  • 深入LVS内核世界:揭秘其高效背后的技术细节与实现机制
    LVS简介Linuxvirtualserver,即Linux虚拟服务器,是一种基于Linux平台的高性能、高可用的服务器负载均衡技术。它主要工作在网络层、传输层(OSI参考模型的第三层、第四层),主要通过IP地址和端口号来转发网络流量。LVS可以在一台或多台服务器(称之为负载均衡器或调度器)上运行,将来自客......
  • Linux C++ 开发2 - 编写、编译、执行第一个程序
    上一篇《LinuxC++开发1-搭建C++开发环境》我们搭建好了C++的开发环境,本篇我们将编写、编译、执行第一个程序。1.第一个C++程序1.1.demo01.cpp这里写一个最简单的HelloWord程序#include<iostream>intmain(){std::cout<<"Hello,world!"<<std::endl;re......
  • 【AcWing】Linux基础课_讲义
    Linux基础课-AcWing部分内容有所修改1.常用文件管理命令:正确的学习方式:边学边查。先跟着官方文档的快速入门过一遍,然后在实际工程项目中有需要的再去查。命令行,方便批量化操作。Linux各目录及每个目录的详细介绍-lin_zone-博客园(cnblogs.com)常用文件夹/根目录/......
  • Linux远程终端MobaXterm下载安装配置使用(详细)
    今天给伙伴们分享一下Linux远程终端MobaXterm下载安装配置使用,希望看了有所收获。我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!如果伙伴们看了文档觉得有用,欢迎大家......
  • JavaWeb-01(Java进阶内容详解,Html、CSS、JS)
    一、前端技术结构分析网页的结构(HTML)、表现(CSS)、行为(JS)1.HTML定义界面整体结构2.CSS定义页面样式3.JS实现动态效果二、HTML2.1安装VSCode及前端开发插件Chinese(Simplified)(简体中文)LanguagePackforVisualStudioCodeCodeSpellChecker检查单......