配置 sysctl.conf 系统参数详解

配置 sysctl.conf 系统参数(vi /etc/sysctl.conf)
参数:
1.内存&缓存
kernel.sysrq = 0 内核设置验证为0
kernel.core_uses_pid = 1 控制内核的系统请求调试功能开启,控制核心转储附加PID到核心文件名,适用于多线程
kernel.msgmnb = 65536 每个消息队列的最大字节限制
kernel.msgmax = 65536 每个消息的最大size
kernel.shmmax = 68719476736定义了共享内存段的最大尺寸(以字节为单位,缺省值为2097152)
kernel.shmall = 4294967296 表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152)
kernel.shmmni = 4096 设置系统范围内共享内存段的最大数量,默认4096

2.信号量相关:
kernel.sem = 50100 64128000 50100 1280
系统默认值,SA未优化

含义:

#ipcs -ls

------ Semaphore Limits --------

max number of arrays = 128

max semaphores per array = 250

max semaphores system wide = 32000

max ops per semop call = 32

semaphore max value = 32767

SEMMNI

SEMMNI定义了max number of arrays的大小,表示系统内的最大semaphore set大小,这个缺省值128差不多了.

SEMMSL

SEMMSL 定义了max semaphores pre array的大小,表示每个semaphore set的最大semaphore数.oracle进程获得系统的一个semaphore set,oracle进程内的每个线程需要一个semaphore,假如你的系统内只有一个oracle实例,你的SEMMSL的值需要等于或稍大于 (oracle中定义的最大PROCESSES数+10),如果是MTS模式,可以适当放小.

SEMMNS

SEMMNS定义 了max semaphores system wide的大小,表示系统内允许的最大semaphore set大小,系统缺省大小为(SEMMNI*SEMMSL),oracle推荐的设置为系统内所有数据库的PROCESSES参数的总和,加上最大的的那个PROCESSES,然后加上10.

SEMOPM

SEMOPM定义了每个semop系统调用能够操作的最大semaphore数,semop系统调用主要是一个semaphore set的semaphore操作,这个值系统缺省为32,建议设置等于SEMMSL.

另:
Httpd重启失败,信号量过多,是因为我们关闭apache的时候使用了kill -9 来关闭程序来造成的,后续优化改进。

3.网桥设置,iptable不对网桥进行处理
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
4.窗口
net.core.rmem_default = 1048576 默认的接受窗口大小为1M
net.core.rmem_max = 4194304 接收窗口大小最大
net.core.wmem_default = 262144 默认的发送窗口大小
net.core.wmem_max = 1048576 发送窗口最大
5.网络
net.core.netdev_max_backlog = 10000
当网卡接受数据包的速度大于内核处理数据包的速度,会有一个队列保存这些数据包,这个参数表示这个队列最大值

net.ipv4.conf.default.rp_filter = 1控制源路由验证

net.ipv4.conf.default.accept_source_route = 0不接受源路由

net.ipv4.netfilter.ip_conntrack_max = 655360 允许最大跟踪连接条目,是在内核内存中netfiter可以同时处理的任务(跟踪连接条目),对于带有超过1G的系统,CONNTRACK_MAX 的默认值会被限制在65536(可手动设置最大值)

net.ipv4.ip_forward = 0 控制IP包转发
net.ipv4.ip_local_port_range = 9000 65000 查看端口范围,不要超过1024到65535,1024以下系统使用,65535以上会提示失败

net.ipv4.tcp_tw_recycle = 1开启TCP连接中TIME-WAIT sockets 的快速收回功能
net.ipv4.tcp_max_syn_backlog = 4096表示SYN队列的长度,默认为1024 ,加大队列的长度为4096,可以容纳更多等待连接的网络连接数

net.ipv4.tcp_keepalive_intvl = 7 探索消息发送的频率,乘以 tcp_keepalive_probes 就得到从开始探索以来没有响应的连接杀除时间,默认为75秒,改小可以加速丢弃没有活动的连接

net.ipv4.tcp_timestamps=1 启动TCP时间戳

net.ipv4.tcp_keepalive_time = 72 当 keepalive 启用的时候,TCP发送 keepalive 消息的频率,缺省是7200,也就是2小时
net.ipv4.tcp_keepalive_probes = 9 TCP 发送keepalive探测已确定该连接已断开的次数,在认定连接失效前,发送多少个TCP的探测包。

net.ipv4.tcp_syncookies = 0关闭TCP SYNCOOKIES 的使用

net.ipv4.tcp_tw_reuse = 0表示开启重用,允许将 TIME-WAIT sockets 重新用于新的tcp连接
net.ipv4.tcp_tw_recycle = 1开启TCP连接中TIME-WAIT sockets 的快速收回功能
net.ipv4.tcp_fin_timeout = 30表示如何套接字由本端要求关闭,这个参数决定他保持在FIN-WAIT-2 状态的时间

6.进程
fs.file-max = 76724600 进程可以同时打开的做句柄数,直接限制了最大并发连接数,文件句柄设置表示在Linux系统的可以打开的文件数量

fs.aio-max-nr = 1048576此参数限制并发未完成的异步请求数目,应该设置避免I/O子系统故障

vm.overcommit_memory = 0内存分配策略,可选0 1 2
0,表示内存将检查是否有足够的可用内存供应用进程使用,如果有,允许申请,否则,内存申请失败,将错误返回给应用进程
1,表示内存允许分配所有的物理内存,而不管当前的内存状态如何
2,示内存允许分配所有的物理内存和交换空间所有的内存

vm.zone_reclaim_mode=1开启当内存不够用时就直接回收内存
vm.dirty_background_ratio = 10此参数指定了当文件系统缓存脏页数量达到内存的百分之多少时,就会出发 pdflush/flush/kdmflush 等后台回写进程运行,将一定的脏页异步刷入内存,如果我虚拟服务器内存为32G,也就是3.2G的数据,在完事之前可以设置在RAM中

vm.dirty_background_bytes = 1024000000优化内核进程刷脏页阈值,尽量让后台进程刷脏页
vm.dirty_ratio = 60 优化用户进程刷脏页阈值,脏页超过60%才需要用户刷
vm.dirty_bytes = 0 同上,如果设置了上面的参数,这个就要设置为0,反而
vm.dirty_writeback_centisecs = 500 优化老化脏页刷新唤醒间隔500表示5秒
vm.dirty_expire_centisecs = 3000优化老化脏页阈值,30秒以前的脏页将被刷到磁盘
vm.swappiness=0 关闭交换分区

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: /etc/sysctl.conf 是一个系统配置文件,用于设置内核参数。它包含了一系列的键值对,每个键值对都代表一个内核参数和其对应的值。这些参数可以影响系统的性能、安全性、网络连接等方面。 在 /etc/sysctl.conf 中,每个键值对的格式如下: key = value 其中,key 代表内核参数的名称,value 代表内核参数的值。例如: net.ipv4.tcp_syncookies = 1 这个键值对设置了 TCP SYN cookies 的开启状态。当 value 为 1 时,表示开启;当 value 为 0 时,表示关闭。 除了上述的 TCP SYN cookies,还有很多其他的内核参数可以在 /etc/sysctl.conf 中进行配置,例如: - 网络参数:如 TCP/IP 协议栈的参数、网络连接数限制等。 - 安全参数:如内核安全、文件系统安全等。 - 性能参数:如内存管理、磁盘 I/O 等。 在 /etc/sysctl.conf配置这些参数可以优化系统的性能、提高安全性、改善网络连接等方面。但需要注意的是,修改这些参数可能会对系统产生不良影响,因此在修改之前需要仔细考虑和测试。 ### 回答2: /etc/sysctl.conf是Linux系统中的一个配置文件,用于配置系统内核参数,以调整系统的性能和安全性能。通常情况下,所有的运行在Linux系统上的软件和服务都需要依赖于Linux内核的支持,因此对内核的参数进行调优,可以提高系统的稳定性和性能。 在/etc/sysctl.conf文件中,每一行都是一项内核参数配置,每一行的格式为:参数名 = 参数值,其中参数名和参数值之间用等号隔开。下面是一些常用的内核参数及其说明: 1. net.ipv4.tcp_syncookies:表示是否开启TCP SYN Cookie防护。当值为1时代表开启,该功能可以有效防止TCP SYN攻击。 2. vm.swappiness:表示内存使用率达到多少时开始启动交换分区。值越小表示尽可能地使用物理内存,值越大则表示更倾向于使用交换分区。 3. kernel.sysrq:按下ALT+SysRq时的行为。其中0表示禁止,1表示允许SysRq输出,2表示Silently continues等等。 4. fs.file-max:表示系统中最多能打开多少个文件句柄。 5. net.ipv4.ip_forward:表示是否开启IP转发功能。当值为1时代表开启,在路由器或网关中需要开启此功能。 6. net.ipv4.conf.all.accept_redirects:表示是否允许接收重定向数据包,默认为1,建议关闭。 在修改完/etc/sysctl.conf文件之后,需要执行以下命令使其生效: sysctl -p 此命令会读取修改后的/etc/sysctl.conf文件并且使其生效。需要注意的是,不能随意修改内核参数,否则可能会导致系统崩溃或出现其他严重问题。建议在修改之前,先进行系统备份,并且谨慎地调整参数。 ### 回答3: /etc/sysctl.conf是Linux系统中一个非常重要的配置文件,它可以控制系统的一些参数和设置,可以帮助我们优化系统的性能,提高系统的安全性和稳定性。下面就是/etc/sysctl.conf配置文件的详解。 1. 参数说明 # 最大端口范围 net.ipv4.ip_local_port_range = 1024 65535 # 允许本机IP伪装 net.ipv4.conf.all.accept_source_route = 0 # 禁止ICMP重定向 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 # 开启SYN Cookies,防止TCP SYN攻击 net.ipv4.tcp_syncookies = 1 # 禁止IP源路由 net.ipv4.conf.all.rp_filter = 1 # 增加系统最大文件打开数 fs.file-max = 65535 # 增加网络最大连接数 net.ipv4.tcp_max_syn_backlog = 1024 net.core.somaxconn = 1024 # 改善网络吞吐量 net.core.netdev_max_backlog = 5000 net.ipv4.tcp_wmem = 4096 65536 131072 net.ipv4.tcp_rmem = 4096 87380 174760 net.core.optmem_max = 81920 2. 参数解释 以上是一些常用的在/etc/sysctl.conf里面设置的参数,下面逐个进行解释: (1). net.ipv4.ip_local_port_range 这个参数表示本地TCP/UDP端口的范围,如设置1024 65535,则本地TCP/UDP端口可以从1024开始,到65535结束,大约有64000个端口可以使用。 (2). net.ipv4.conf.all.accept_source_route 该参数表示是否允许本机接收IP伪装的数据包,设置为0则关闭。 (3). net.ipv4.conf.all.accept_redirects 该参数表示是否接收ICMP重定向数据包,设置为0防止被攻击者通过ICMP重定向攻击来伪造路由表。 (4). net.ipv4.tcp_syncookies 该参数表示是否开启TCP SYN Cookies,开启此选项可以帮助防止SYN攻击。 (5). net.ipv4.conf.all.rp_filter 该参数表示是否允许IP源路由,设置为1则关闭。 (6). fs.file-max 该参数表示系统可以打开的最大文件数量,通常调整到65535。 (7). net.ipv4.tcp_max_syn_backlog和net.core.somaxconn 这两个参数用于调整系统的最大连接数,net.ipv4.tcp_max_syn_backlog代表TCP连接请求的队列长度,net.core.somaxconn用来设定最大积压的连接数,通常设置为1024。 (8). net.core.netdev_max_backlog 该参数用于增加网络中队列的最大长度,使得网络中的吞吐量更高。 (9). net.ipv4.tcp_wmem和net.ipv4.tcp_rmem 这两个参数用于调节TCP连接的发送缓存和接收缓存,默认缓存值分别为87380和174760,通常使用较大值来优化网络吞吐量。 (10). net.core.optmem_max 该参数用于调整内核和用户空间交互的最大缓存空间,通常设置为适当的值可以提高网络吞吐量。 3. 总结 /etc/sysctl.conf是一个非常重要的系统配置文件,它能够帮助我们优化系统的性能,提高系统的安全性和稳定性。因此,我们需要适当地调整一些参数来满足我们的需求,提高系统的运行效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值