在上一篇中http://maoyidao.iteye.com/blog/1744309,主要介绍了和系统资源限制相关的参数。本文是通讯系统经验谈的第三部分,继续解读和系统性能相关的内核配置。
上篇介绍了和系统设置有关的几个参数,在一台系统上,连接到一个服务时的本地端口是有限的。由于端口是16位整数,也就只能是0到65535,而0到1023是预留端口,所以能分配的只是
1024到65534,也就是64511个。也就是说,一台机器只能创建六万多个长连接。查看本机端口设置:
maoyidao 写道
sysctl -a | grep port_range
net.ipv4.ip_local_port_range = 1024 65000
/etc/sysctl.conf配置
1. syncookies
net.ipv4.tcp_syncookies = 1
防止 SYN Flooding攻击,详见:http://maoyidao.iteye.com/admin/blogs/1744277
2. syn-ack
#net.ipv4.tcp_synack_retries=
# net.ipv4.tcp_syn_retries=
maoyidao注:syn-ack握手状态重试次数,默认5,网上有朋友说可改为1或2;通常我的建议是如果没有试验证明在特定场景下明显优势,不要修改默认值,因此本场此参数未指定
3. 内核消息/内存管理设置
kernel.msgmnb = 65536
kernel.msgmax = 65536
指定内核中消息队列中消息的最大值(msgmax=64k),default:8192
所有在消息队列中的消息总和的最大值(msgmnb=64k),默认值:16384
即从一个进程发送到另一个进程的消息的最大长度(bytes),进程间的消息传递是在内核的内存中进行的,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。
maoyidao注:增大消息队列内存值,提高IPC效率
kernel.shmmax = 68719476736
Shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降 。32bit系统中可以设置为系统可支撑的最大值:4G;本系统中设置为64G(这个值实际上超过了前端机的最大内存12G),内存型服务器,比如96G,或128G服务器应该设置的更大。
kernel.shmall = 4294967296
含义:系统中共享内存页总
getconf PAGESIZE
4096
total bytes = 4294967296 * 4096 = 16G
4. 网络设置
# 三个整数的向量: min, default, max
net.ipv4.tcp_rmem = 8192 87380 8738000
# min = 4k (same as pagesize), default = 64k, max = 6.25m
net.ipv4.tcp_wmem = 4096 65536 6553600
#
#
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
以上参数的配置可以参考:
http://fasterdata.es.net/host-tuning/linux/ 写道
# increase TCP max buffer size settable using setsockopt()
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
# increase Linux autotuning TCP buffer limit
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# 安全策略
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.ip_no_pmtu_disc = 1
# 含义:当启用keepalive的时候,TCP发送keepalive消息的频度
net.ipv4.tcp_keepalive_time = 1800
# Controls IP packet forwarding
# 作为前端服务器,禁制IP转发,这个没什么好说的;
net.ipv4.ip_forward = 0
# Controls source route verification
# 开启反向路径过滤
net.ipv4.conf.default.rp_filter = 1
# 含义:记录的那些尚未收到客户端确认信息的链接请求的最大值。 默认值为4096 如果设置这个值大于4096最好同时调
# 整include/net/tcp.h中的TCP_SYNQ_HSIZE,保证TCP_SYNQ_HSIZE*16 小于或等于tcp_max_syn_backlo,
# 然后重新编译内核。
net.ipv4.tcp_max_syn_backlog = 8192
分享到:
相关推荐
sysctl.conf优化方案,非常详细,是播布客上一位老师写出来的总结。
sysctl.conf是Linux系统中的一份核心配置文件,用于控制和设置系统的各种参数。下面是sysctl.conf文件中的重要参数解释: 1. dev.scsi.logging_level = 0 这个参数控制SCSI设备的日志级别。设置为0表示不记录任何...
通过合理设置`/etc/sysctl.conf`文件中的各项参数,可以显著提高Linux系统的性能和安全性。然而,在进行任何更改之前,务必详细了解每个设置的影响,并在必要时进行测试,以确保不会对系统造成不利影响。
网上关于sysctl.conf的优化方案有各种版本,大多都是抄来抄去的,让新人看了很迷茫
sysctl.conf是一个至关重要的配置文件,它在Linux系统中扮演着调整内核参数的角色。通过对sysctl.conf的精细调整,我们可以优化服务器性能,提升安全性,以及确保系统的稳定运行。本文将详细探讨sysctl.conf的结构、...
5. **调整系统参数**:Oracle数据库需要一些特定的系统参数,如内存限制和最大文件句柄数,需要在`/etc/sysctl.conf`中进行调整,并通过`sysctl -p`应用更改。 6. **创建挂载点**:为Oracle数据库创建一个挂载点,...
《sysctl-cookbook》是一本深入探讨Linux系统调用`sysctl`的书籍,其源码rar压缩包包含了丰富的实践示例和详细解释。`sysctl`是Linux内核提供的一种机制,允许用户空间程序动态调整内核参数,从而对系统行为进行微调...
- **5.3 OOM 相关**:避免 Redis 在内存不足时被系统杀死,需要设置 `/etc/sysctl.conf` 文件中的 `vm.overcommit_memory` 参数为 `1`。 - **5.4 透明大页设置**:通过编辑 `/etc/sysctl.conf` 文件,添加如下内容...
"sysctl.conf"文件是Linux系统中的一个重要配置文件,它允许管理员调整内核参数以优化系统性能。本篇文章将深入探讨如何通过调整`sysctl.conf`来优化高并发、低延迟环境的性能。 首先,我们需要理解`sysctl.conf`的...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
通过编辑`/etc/sysctl.conf`文件,调整内核参数以满足Oracle对共享内存、信号量和文件描述符的需求,例如: ``` kernel.shmmax=2147483648 kernel.shmmni=4096 kernel.shmall=2097152 kernel.sem=250 32000 100 128 ...
传统的Oracle数据库安装过程中,数据库管理员(DBA)需要手动编辑`/etc/sysctl.conf`和`/etc/security/limits.conf`这两个关键文件来调整操作系统级别的内核参数和资源限制。这种做法不仅耗时费力,而且容易出现人为...
* -p:从配置文件 /etc/sysctl.conf 加载内核参数设置 * -a:打印当前全部可用的内核参数变量和值 * -A:以表格方式打印当前全部可用的内核参数变量和值 参数是变量=值的形式,例如 kern.maxproc=1044。 实例 ----...
在`/etc/sysctl.conf`文件中添加或修改以下内核参数: ```bash # 如果存在,请确保值不小于下面设定的值 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.accept_redirects = 0 ...
vim /etc/sysctl.conf 修改内容如下: net.ipv4.ip_local_port_range= 9000 65500 fs.file-max = 6815744 kernel.shmall = 10523004 kernel.shmmax = 6465333657 kernel.shmmni = 4096 kernel.sem = 250 32000 ...
修改 `/etc/sysctl.conf` 文件,以便对内核参数进行必要的调整,例如增加文件句柄数量等,这对于 Oracle EBS 的稳定运行至关重要。 #### 安装与升级步骤 1. **系统环境准备:** 遵循上述列出的操作系统和软件包需求...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用
为了确保 Oracle 10g 的稳定运行,需要对系统的内核参数进行一定的优化: 1. **修改内核参数**: - 编辑 `/etc/sysctl.conf` 文件,添加或修改以下内容: - `kernel.shmall = 2097152` - `kernel.shmmax = ...