CentOS7内核优化修改参数
⼀:内核简介
内核是操作系统最基本的部分。它是为众多应⽤程序提供对计算机硬件的安全访问的⼀部分软件,这种访问是有限的,并且内核决定⼀个程序在什么时候对某部分硬件操作多长时间。
内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。
什么是内核?
内核,是⼀个操作系统的核⼼。是基于硬件的第⼀层软件扩充,提供操作系统的最基本的功能,是操作系统⼯作的基础,它负责管理系统的进程、内存、内核体系结构、设备驱动程序、⽂件和⽹络系统,决定着系统的性能和稳定性。
什么是线程?
线程:是操作系统能够进⾏运算调度的最⼩单位。它被包含在进程之中,是进程中的实际运作单位。⼀条线程指的是进程中⼀个单⼀顺序的控制流,⼀个进程中可以并发多个线程,每条线程并⾏执⾏不同的任务在⼀个程序⾥的⼀个执⾏路径就叫做线程。线程是⼀个进程内部的控制序列。⼀切进程⾄少有⼀个执⾏线
程。线程在进程内部运⾏,本质是进程地址空间内运⾏。在Linux系统中,在cpu眼⾥,看到的PCB都有⽐传统的进程更加轻量化。通过进程虚拟地址空间,可以看到进程⼤部分资源,将进程资源合理分配给每个执⾏流,就形成了线程执⾏流。
什么是进程?
centos linux的第⼀个进程通常是init或者systemd,它是所有进程的⽗进程,PID为1,是唯⼀⼀个由系统内核直接运⾏的进程
Linux 给每个进程都打上了运⾏者的标志,⽤户可以控制⾃⼰的进程:给⾃⼰的进程分配不同的优先级,也可以随时终⽌⾃⼰的进程
Linux 不可能在⼀个 CPU 上同时处理多个任务(作业)请求,⽽是采⽤ “分时” 技术来处理这些任务请求
除了init或者systemd,其他进程都是由⽗进程创建,即每个进程都有⽗进程(PPID)
⼆:查看系统资源
1.查看当前系统的所有限制值
命令:ulimit -a
核⼼⽂件⼤⼩(块,-c)0
数据段⼤⼩(kbytes,-d)不受限制
计划优先级0
⽂件⼤⼩(块,-f)不受限制
挂起信号(-i)7190
最⼤锁定内存(KB,-l)64
最⼤内存⼤⼩(kbytes,-m)不受限制
打开⽂件(-n)1024
管道⼤⼩(512字节,-p)8
POSIX消息队列(字节,-q)819200
实时优先级0
堆栈⼤⼩(kbytes,-s)8192
cpu时间(秒,-t)⽆限制
最⼤⽤户进程(-u)7190
虚拟内存(KB,-v)不受限制
⽂件锁定(-x)不受限制
2.查看⽤户同时打开的⽂件数(linux系统默认的只要1024)也是临时修改(不需要重启),命令后⾯加参数即可:ulimit -n 65535
命令:ulimit -n
3.查看Linux系统级的最⼤打开⽂件数限制
命令:cat /proc/sys/fs/file-max
4.ulimit的选项⽤法
-a 显⽰⽬前资源限制的设定
-c <core⽂件上限> 设定core⽂件的最⼤值,单位为区块
-d <;数据节区⼤⼩> 程序数据节区的最⼤值,单位为KB
-f <⽂件⼤⼩> shell所能建⽴的最⼤⽂件,单位为区块
-H 设定资源的硬性限制,也就是管理员所设下的限制
-m <;内存⼤⼩> 指定可使⽤内存的上限,单位为KB
-n <⽂件数⽬> 指定同⼀时间最多可开启的⽂件数
-p <;缓冲区⼤⼩> 指定管道缓冲区的⼤⼩,单位512字节
-s <;堆叠⼤⼩> 指定堆叠的上限,单位为KB
-S 设定资源的弹性限制
-t <CPU时间> 指定CPU使⽤时间的上限,单位为秒
-
u <;程序数⽬> ⽤户最多可开启的程序数⽬
-v <;虚拟内存⼤⼩> 指定可使⽤的虚拟内存上限,单位为KB
三:系统资源限制设置(使⽤root权限)
命令:vim /etc/f
在最后添加下⾯这⼏句:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
知识扩展:
noproc 是代表最⼤进程数
nofile 是代最⼤⽂件打开数
* 是表⽰修改所有⽤户的限制
命令:vim /etc/security/limits.f
修改⼀下参数:
#* soft nproc 65535
#root soft nproc unlimited
* soft nproc 65535
* hard nproc 65535
注释原本的,添加新增的
然后执⾏reboot命令重启,root和普通⽤户的线程和最⼤打开⽂件数了都是65535
重启之后执⾏ulimit -a命令查看
命令:ulimit -a
如果是⽣产环境的话,就添加以下内容
命令:vim /etc/f
* soft core unlimit
* hard core unlimit
* soft fsize unlimited
* hard fsize unlimited
* soft data unlimited
* hard data unlimited
* soft nproc 65535
* hard nproc 63535
* soft stack unlimited
* hard stack unlimited
* soft nofile 409600
* hard nofile 409600
四:内核优化
命令:cat /f
打开内核配置⽂件
命令:vim /etc/sysctl.f
centos vim命令将以下配置输⼊进去:
#关闭ipv6
f.all.disable_ipv6 = 1
f.default.disable_ipv6 = 1
# 避免放⼤攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 开启恶意icmp错误消息保护
net.ipv4.icmp_ignore_bogus_error_responses = 1 # 关闭路由转发
net.ipv4.ip_forward = 0
f.all.send_redirects = 0
f.default.send_redirects = 0
#开启反向路径过滤
f.all.rp_filter = 1
f.default.rp_filter = 1
关闭sysrq功能
kernel.sysrq = 0
#core⽂件名中添加pid作为扩展名
<_uses_pid = 1
p_syncookies = 1
#修改消息队列长度
kernel.msgmnb = 65536
kernel.msgmax = 65536
#设置最⼤内存共享段⼤⼩bytes
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
#timewait的数量,默认180000
p_max_tw_buckets = 6000
p_sack = 1
p_window_scaling = 1
p_rmem = 4096 87380 4194304
p_wmem = 4096 16384 4194304
#限制仅仅是为了防⽌简单的DoS 攻击
p_max_orphans = 3276800
#未收到客户端确认信息的连接请求的最⼤值
p_max_syn_backlog = 262144
p_timestamps = 0
#内核放弃建⽴连接之前发送SYNACK 包的数量
p_synack_retries = 1
#内核放弃建⽴连接之前发送SYN 包的数量
p_syn_retries = 1
#启⽤timewait 快速回收
p_tw_recycle = 1
#开启重⽤。允许将TIME-WAIT sockets 重新⽤于新的TCP连接
p_tw_reuse = 1
p_mem = 94500000 915000000 927000000
p_fin_timeout = 1
#当keepalive 起⽤的时候,TCP 发送keepalive 消息的频度。缺省是2 ⼩时p_keepalive_time = 30
#允许系统打开的端⼝范围
net.ipv4.ip_local_port_range = 1024 65000
#修改防⽕墙表⼤⼩,默认65536
netfilter.nf_conntrack_max=655350
netfilter.nf_conntrack_tcp_timeout_established=1200
# 确保⽆⼈能修改路由表
f.all.accept_redirects = 0
f.default.accept_redirects = 0
f.all.secure_redirects = 0
f.default.secure_redirects = 0
然后保存退出之后执⾏sysctl -p是参数⽣效,永久⽣效
命令:sysctl -p
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论