linux 内核参数修改

合集下载

linux系统内核参数优化-linux快速入门教程

linux系统内核参数优化-linux快速入门教程

linux系统内核参数优化-linux快速⼊门教程内核的 shmall 和 shmmax 参数SHMMAX= 配置了最⼤的内存segment的⼤⼩ ------>这个设置的⽐SGA_MAX_SIZE⼤⽐较好。

SHMMIN= 最⼩的内存segment的⼤⼩SHMMNI= 整个系统的内存segment的总个数SHMSEG= 每个进程可以使⽤的内存segment的最⼤个数配置信号灯( semphore )的参数:SEMMSL= 每个semphore set⾥⾯的semphore数量 -----> 这个设置⼤于你的process的个数吧,否则你不得不分多个semphore set,好像有process+n之说,我忘了n是⼏了。

SEMMNI= 整个系统的semphore set总数SEMMNS=整个系统的semphore总数shmall 是全部允许使⽤的共享内存⼤⼩,shmmax 是单个段允许使⽤的⼤⼩。

这两个可以设置为内存的 90%。

例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的⼤⼩为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。

修改 /etc/sysctl.confkernel.shmmax=15461882265kernel.shmall=3774873kernel.msgmax=65535kernel.msgmnb=65535执⾏ sudo sysctl -p可以使⽤ ipcs -l 看结果。

ipcs -u 可以看到实际使⽤的情况========================================================================linux 内存管理⼀、前⾔本⽂档针对OOP8⽣产环境,具体优化策略需要根据实际情况进⾏调整;本⽂档将在以下⼏个⽅⾯来阐述如何针对RedHat Enterprise Linux 进⾏性能优化。

Linux利用Sysctl命令调整内核参数

Linux利用Sysctl命令调整内核参数

Linux利⽤Sysctl命令调整内核参数前⾔sysctl 命令被⽤于在内核运⾏时动态地修改内核的运⾏参数,可⽤的内核参数在⽬录 /proc/sys 中。

它包含⼀些TCP/IP堆栈和虚拟内存系统的⾼级选项,这可以让有经验的管理员提⾼引⼈注⽬的系统性能。

⽤sysctl可以读取设置超过五百个系统变量。

1、常见⽤法列出所有的变量并查看sysctl -a | less修改某变量的值sysctl -w 变量名=变量值#sysctl -w vm.max_map_count=262144读⼀个指定的变量,例如 kernel.msgmnb:[xt@butbueatiful ~]$ sysctl kernel.msgmnbkern.maxproc: 65536要设置⼀个指定的变量,直接⽤variable=value这样的语法:[xt@butbueatiful ~]$ sudo sysctl kernel.msgmnb=1024kernel.msgmnb: 1024可以使⽤sysctl修改系统变量,也可以通过编辑sysctl.conf⽂件来修改系统变量。

sysctl.conf 看起来很像 rc.conf。

它⽤variable=value的形式来设定值。

指定的值在系统进⼊多⽤户模式之后被设定。

并不是所有的变量都可以在这个模式下设定。

sysctl 变量的设置通常是字符串、数字或者布尔型。

(布尔型⽤ 1 来表⽰'yes',⽤ 0 来表⽰'no')。

sysctl -w kernel.sysrq=0sysctl -w kernel.core_uses_pid=1sysctl -w net.ipv4.conf.default.accept_redirects=0sysctl -w net.ipv4.conf.default.accept_source_route=0sysctl -w net.ipv4.conf.default.rp_filter=1sysctl -w net.ipv4.tcp_syncookies=1sysctl -w net.ipv4.tcp_max_syn_backlog=2048sysctl -w net.ipv4.tcp_fin_timeout=30sysctl -w net.ipv4.tcp_synack_retries=2sysctl -w net.ipv4.tcp_keepalive_time=3600sysctl -w net.ipv4.tcp_window_scaling=1sysctl -w net.ipv4.tcp_sack=12、关于sysctl⽂件的配置sysctl设置定义在 sur/lib/sysctl.d/ , /run/sysctl.d 和 /etc/sysctrl.d ⽬录下。

Linux和Unix下核心参数的调整

Linux和Unix下核心参数的调整

核心参数说明shmmax - 共享内存段.shmmin - 最小的共享内存段.shmmni - 共享内存标志符的数量.shmseg - 一个进程可分配的最大内存段数.shmall - 最大可允许的内存数.semmns - 信号量.semmsl- 一个信号灯集中最大的信号量数.共享内存SHMMAX:单个共享内存段的最大字节数。

SHMSEG:每个进程可链接的最多共享内存段数SHMALL:操作系统内全部共享内存的大小,应大于SHMMAX*SHMSEG。

消息队列MSGTQL:一个队列中可存放消息的个数MSGMAX:一个消息队列的最大字节数, 大于消息个数×一个消息的字节数。

MSGMNB:一个消息队列的最大字节数,大于消息个数*一个消息的字节数。

信号灯SEMMNI:信号灯集的个数。

SEMMSL:每个信号灯集中信号灯的最大个数SEMMNS:操作系统中信号灯的总数一、Linux下核心参数的调整1)操作对于正在运行内核 2.4 或更高版本的 Linux 系统,作为 root 用户在命令行上发出下列命令:∙sysctl -w kernel.msgmni=2048∙sysctl -w kernel.shmmax=1073741824∙sysctl -w fs.file-max=32768∙sysctl -w kernel.sem="512 32000 32 1024"要自动执行命令,编辑/etc/rc.d/rc.local文件,并将上述命令放在文件末尾。

在后续的每次系统引导时,就会自动设置这些值。

二.Solaris下核心参数的调整修改Solaris里/etc/system,设置格式如下:set shmsys:shminfo_shmmax=4294967295set shmsys:shminfo_shmmin=1set shmsys:shminfo_shmmni=100set shmsys:shminfo_shmseg=15set semsys:seminfo_semmns=200set semsys:seminfo_semmni=70set ulimit=3000000set semsys:seminfo_semmni=315set semsys:seminfo_semmsl=300set semsys:seminfo_semmns=630set semsys:seminfo_semopm=315set semsys:seminfo_semvmx=32767set shmsys:shminfo_shmmax=4294967295set shmsys:shminfo_shmmni=315set shmsys:shminfo_shmseg=10set shmsys:shminfo_shmmin=1set maxusers = <以MB为单位计的可用物理内存数量>set max_nprocs = 10 + 16 * maxusers//set max_nprocs=1200 系统所允许的最大进程数,通常最多30000set maxuprc = max_nprocs –10//每个用户可以拥有的最大进程数(为超级用户保留10个)set rlim_fd_max=2048set rlim_fd_cur=1024solaris 7下select()可以使用最多达65536的文件句柄,64-bit 应用程序缺省情况如此。

linux修改配置文件常用的命令

linux修改配置文件常用的命令

linux修改配置文件常用的命令在Linux系统中,配置文件是非常重要的。

它们包含了系统的各种配置信息,如网络配置、服务配置等等。

在进行系统管理时,需要不断地修改这些配置文件。

下面是 Linux 修改配置文件常用的命令: 1. vi/vim:这是最常用的文本编辑器之一,可用于编辑任何文本文件。

可以使用以下命令打开一个文件:vi 文件名或 vim 文件名。

编辑完成后,可以按 ESC 键退出插入模式,然后输入 :wq 保存并退出,或者输入 :q! 放弃更改并强制退出。

2. nano:这是另一个常用的文本编辑器,它比 vi/vim 更简单易用。

可以使用以下命令打开一个文件:nano 文件名。

编辑完成后,可以按 Ctrl+X 键退出,然后输入 Y/N 来保存或放弃更改。

3. sed:这是一个强大的文本处理工具,可以用于修改配置文件中的文本。

可以使用以下命令来替换某个字符串:sed -i 's/旧字符串/新字符串/g' 文件名。

其中,-i 选项表示在原文件中直接修改,s 表示替换操作,g 表示替换所有匹配项。

4. awk:这是另一个文本处理工具,可以用于提取配置文件中的信息。

可以使用以下命令来查找某个关键字所在的行:awk '/关键字/{print}' 文件名。

其中,/关键字/ 表示查找含有该关键字的行,print 表示打印该行。

5. grep:这是一个强大的文本搜索工具,可以用于查找配置文件中的信息。

可以使用以下命令来搜索某个关键字:grep 关键字文件名。

其中,关键字表示要搜索的关键字,文件名表示要搜索的文件名。

总之,掌握这些 Linux 修改配置文件常用的命令,可以更加方便地进行系统管理。

linux kernel 参数

linux kernel 参数

linux kernel 参数Linux内核参数是用于调整和控制Linux操作系统内核行为的设置。

这些参数可以在系统启动时通过启动脚本(如`init`进程)或在内核启动过程中通过命令行指定。

它们影响系统的性能、稳定性、安全性以及资源管理等方面。

内核参数可以分为几个大类:1. **进程管理**:例如,`max_map_count`限制了系统可以创建的最大文件映射数量,`nr_cpus`设置了系统中可用的CPU核心数。

2. **内存管理**:比如,`vm.swappiness`设置了系统倾向于使用交换空间的程度,`kmem.max`限制了内核可使用的最大内存量。

3. **文件系统**:`fs.file-max`设置了系统级别的文件描述符最大数量,`fs.aio-max-nr`限制了系统层面的异步I/O操作的最大数量。

4. **网络**:`net.ipv4.tcp_fin_timeout`设置了TCP连接中FIN包的超时时间,`net.ipv4.ip_local_port_range`定义了用于出口连接的本地端口范围。

5. **安全和稳定性**:`kernel.shmmax`和`kernel.shmall`限制了系统中的最大共享内存段和共享内存页的数量。

6. **虚拟化**:例如,`vm.dirty_ratio`和`vm.dirty_background_ratio`控制了内存中脏数据的最大比例和开始后台写入操作的比例。

这些参数可以通过编辑启动脚本(如`/etc/sysctl.conf`),使用`sysctl`命令实时调整,或者在引导时通过`init`系统的命令行接口设置。

正确地设置这些参数可以优化系统性能,适应特定的硬件资源和workload 需求。

不过,不当的设置也可能会导致系统不稳定或者其他问题。

因此,在调整内核参数时需要谨慎,并确保理解每个参数的作用。

Linxu内核参数详解

Linxu内核参数详解

Linxu内核参数详解1. #表⽰SYN队列的长度,默认为1024,加⼤队列长度,可以容纳更多等待连接的⽹络连接数。

2. net.ipv4.tcp_max_syn_backlog = 655363.4. #每个⽹络接⼝接收数据包的速率⽐内核处理这些包的速率快时,允许送到队列的数据包的最⼤数⽬5. dev_max_backlog = 327686.7. #默认128,这个参数会影响到所有AF_INET类型socket的listen队列8. net.core.somaxconn = 327689.10. #系统套接字写默认缓冲区11. net.core.wmem_default = 838860812.13. #系统套接字读默认缓冲区14. net.core.rmem_default = 838860815.16. #系统套接字读最⼤缓冲区17. net.core.rmem_max = 1677721618.19. #系统套接字写最⼤缓冲区20. net.core.wmem_max = 1677721621.22. #此参数与net.ipv4.tcp_wmem都是⽤来优化TCP接收/发送缓冲区,包含三个整数值,分别是:min,default,max:23. #tcp_rmem:min表⽰为TCP socket预留⽤于接收缓冲的最⼩内存数量,default为TCP socket预留⽤于接收缓冲的缺省内存数量,max⽤于TCP socket接收缓冲的内存最⼤值。

24. #tcp_wmem:min表⽰为TCP socket预留⽤于发送缓冲的内存最⼩值,default为TCP socket预留⽤于发送缓冲的缺省内存值,max⽤于TCP socket发送缓冲的内存最⼤值。

25. net.ipv4.tcp_rmem=4096 87380 419430426. net.ipv4.tcp_wmem=4096 16384 419430427.28. #时间戳可以避免序列号的卷绕。

linux 内核变量命令规则

linux 内核变量命令规则

linux 内核变量命令规则在Linux系统中,内核变量通常指的是/sys文件系统中的一些特殊文件,这些文件包含了系统内核运行时的参数和选项设置。

内核变量用于控制系统的行为,可以对系统的一些特性进行配置和调整。

在Linux系统中,可以通过读取和写入内核变量来对系统进行一些调优和配置。

内核变量的命令规则包括两个方面:读取内核变量的命令和设置内核变量的命令。

读取内核变量的命令在Linux系统中,可以通过命令行工具来读取内核变量的值。

常用的读取内核变量值的命令包括:1. cat命令cat命令可以用来查看文件的内容。

在/sys文件系统中,每个内核变量都对应一个文件,可以通过cat命令来查看文件内容,从而获取内核变量的值。

例如,可以使用以下命令来读取某个内核变量的值:shellcat /sys/kernel/variable_name2. echo命令echo命令可以将文本输出到文件中。

在/sys文件系统中,一些内核变量是可写的,可以使用echo命令来设置这些内核变量的值。

例如,可以使用以下命令来设置某个内核变量的值:shellecho "new_value" > /sys/kernel/variable_name3. sysctl命令sysctl命令是一个用于管理系统内核参数的工具。

通过sysctl命令可以查看和设置内核变量的值。

例如,可以使用以下命令来查看某个内核变量的值:shellsysctl kernel.variable_name4. proc文件系统除了/sys文件系统之外,还可以通过/proc文件系统来查看系统的内核变量。

/proc文件系统包含了系统内核运行时的信息,其中包括一些内核变量的值。

可以通过cat命令来查看/proc文件系统中的特定文件,从而获取内核变量的值。

设置内核变量的命令有一些内核变量是可以通过命令行工具来设置的,常用的设置内核变量值的命令包括:1. echo命令如上所述,可以使用echo命令来设置/sys文件系统中可写的内核变量的值。

Linux操作系统修改内核参数的三种方法详细说明

Linux操作系统修改内核参数的三种方法详细说明

Linux操作系统修改内核参数的三种方法详细说明linux内核的参数设置怎么弄呢,Linux 操作系统修改内核参数有以下三种方式:修改 /etc/sysctl.conf 文件;在文件中加入配置项,格式为 key = value,保存修改后的文件,执行命令 sysctl -p 加载新配置。

使用 sysctl 命令临时修改;如:sysctl -w net.ipv4.tcp_mem = “379008 505344 758016”直接修改/proc/sys/ 目录中的文件。

如:echo “379008 505344 758016” 》 /proc/sys/net/ipv4/tcp_mem 注意:第一种方式在重启操作系统后自动永久生效;第二种和第三种方式在重启后失效。

内核参数kernel.core_uses_pi d = 1core_uses_pid 可以控制 core 文件的文件名中是否添加 pid 作为扩展名。

设置为1,表示添加 pid 作为扩展名,生成的 core 文件格式为core.xxx;设置为0(默认),表示生成的 core 文件统一命名为 core。

kernel.core_pat te rn = corecore_pattern 可以控制 core 文件的保存位置和文件格式。

如:kernel.core_pattern = “/corefile/core-%e-%p-%t”,表示将core 文件统一生成到 /corefile 目录下,产生的文件名为 core-命令名-pid-时间戳。

以下是参数列表:%p - insert pid into filename 添加 pid%u - insert current uid into filename 添加当前 uid%g - insert current gid into filename 添加当前 gid%s - insert signal that caused the coredump into the filename 添加导致产生 core 的信号%t - insert UNIX ti me that the coredump occurred into filename 添加 core 文件生成时的 unix 时间%h - insert hostname where the coredump happened into filename 添加主机名%e - insert coredumping executable name into filename 添加命令名kernel.msgmax = 8192进程间的消息传递是在内核的内存中进行的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
# cat /proc/sys/fs/file-max
如果设置值太小, 修改文件/etc/sysctl.conf的变量到合适的值。
2、在/etc/security/limits.conf文件中设置最大打开文件数, 下面是一行提示:
# 添加如下这行。
* - nofile 2048
########## 针对Oralce的一些内核参数的设置 ## 2007.01.10 add for oracle10g if [ "$db_version" = "oracle10g" ] then if ! grep -q "/proc/sys/net/core/rmem_max" /etc/rc.d/rc.local then echo "echo \"250 32000 100 128\" >/proc/sys/kernel/sem" >>/etc/rc.d/rc.local echo "echo \"1024 65000\" >/proc/sys/net/ipv4/ip_local_port_range" >>/etc/rc.d/rc.local echo "echo 1048576 >/proc/sys/net/core/rmem_max" >>/etc/rc.d/rc.local echo "echo 1048576 >/proc/sys/net/core/rmem_default" >>/etc/rc.d/rc.local echo "echo 262144 >/proc/sys/net/core/w mem_max" >>/etc/rc.d/rc.local echo "echo 262144 >/proc/sys/net/core/w mem_default" >>/etc/rc.d/rc.local fi fi
绍这两种修改方法。
2.1 命令设置的方式
可以用两种方法实现。
1、使用“sysctl -w 参数名=值”的方式 假设我们把net.ipv4.ip_forward的值修改为1,使用命令“sysctl -w net.ipv4.ip_forward=1”。
2、修改内核参数对应的proc文件 内核参数位于/proc/sys/之下,参数名称是以文件所在的路径,并将“/”以“.”来取代。举例来说,/proc/sys/net/ip_forward的参数名称为 net.ipv4.ip_forward。 同样把net.ipv4.ip_forward的值修改为1,使用命令“echo “1” > /proc/sys/net/ipv4/ip_forward”。 注意,这里proc文件跟普通的文件不一样。一般一个文件用echo写入内容之后,会变成一个文本文件,但echo修改proc文件之后还是个空
文件。
2.2 文件设置的方式
更改的内核参数默认保存在/etc/sysctl.conf文件中。修改的时候可以直接用vi编辑sysctl.conf文件,增加要修改的内核参数内容,修改的格 式为:参数名=值。例如,把net.ipv4.ip_forward的值修改为1,在sysctl.conf中增加下面这行内容: net.ipv4.ip_forward=1 文件修改好后,进行保存。然后使用“sysctl -p 配置文件名”来使配置生效,如果配置文件是默认的,可以不用输配置文件名,即使 用“sysctl -p”。
通过文件设置的方式修改的内核参数是在系统重启后将失效(我之前认为修改后的内核参数放在文件中,系统启动的时候会读这个文件,
重启后设置应该不会失效。但经过验证,一般会失效,但如果把将默认的boot.sysctl服务打开,所以系统启动时就会执行这个文件的设 置)。把我们修改参数的命令写入启动执行脚本文件里/etc/rc.local,这样系统重启后配置就不会失效。 文件方式的好处是内核参数设置的值可以用文件保留下来,调用“sysctl -p”可以使文件中的所有配置的值马上生效。
这里,对每个参数值做个简要的解释和说明。
(1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于orac le来说,该缺省值太低了,通常将其设置为2G。 (2)shmmni:这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。 (3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。(共享内存段的数量,以页 为主,每个页是4K) (4)sem:该参数表示设置的信号量。一般大于maxproc 的一点就行了。 (5)file- max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。
修改好内核以后,执行下面的命令使新的配置生效。
[root @linux1 /root]# /sbin/sysctl -p 以 root 用户身份运行以下命令来验证您的设置: /sbin/sysctl -a | grep shm /sbin/sysctl -a | grep sem /sbin/sysctl -a | grep file-max /sbin/sysctl -a | grep ip_local_port_range
内核参数是不一样的。
所有的内核参数的说明文档是放到/usr/src/linux/Documentation/sysctl中的,如果想知道对内核参数的说明,可以到该目录下查看相应的说
明文档。
2 内核参数的的设置方法
由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。也可以通过文件的方式进行设置。下面就介
1 内核参数的查看方法
使用“sysctl -a”命令可以查看所有正在使用的内核参数。内核参数比较多(一般多达500项),按照前缀主要分为以下几大类:net.ipv4、 net.ipv6、net.core、vm、fs、dev.parport、dev.cdrom 、dev.raid、kernel等等。相同的linux,安装的组件和使用的方式不一样,正在使用的
这行设置了每个用户的默认打开文件数为2048。 注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。要使修改过的最大打开文 件数生效,必须对这两种限制进行设定。如果使用"-"字符设定, 则hard和soft设定会同时被设定。硬限制表明soft限制中所能设定的最大 值。soft限制指的是当前系统生效的设置值。hard限制值可以被普通用户降低。但是不能增加。soft限制不能设置的比hard限制更高。只有 root用户才能够增加hard限制值。
3.2 平台内核参数
平台在安装的过程中,会调用一个专门的shell来负责系统内核参数的设置。这个shell是checkkernel,在平台上/home/zxin10/bin目录下能找 到。对于Linux,需要关注的是其中的check_linux_kernel函数。下面是涉及到设置内核参数的主要代码,除开设置了平台相关的一些内核参 数,另外针对Oracle数据库也进行了相应的设置,大家可以一起分析一下。
3、使用“ulimit -n 2048”来限制用户的最大文件打开数为2048。ulimit -n对非root用户有限制,对root用户则没有限制,能享受到整个系统可
以同时打开的文件数的好处。设置句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,把上面命令加到最后。
而导致故障泄漏到现场。
操作系统名称
So la ris AIX Suse Linux HP -U X NT
默认系统句柄数
256 2000 1024 2000 10000
下面介绍修改文件句柄限制的方法。
1、按照最大打开文件数量的需求设置内核参数,并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。
3 内核参数设置的实际应用 3.1 文件和网络类参数
我们一般需要关注的文件类的内核参数有fs.file-max和file-nr。fs.file-max是一个系统能申请到的最大文件句柄数;file-nr是只读的,它与filemax相关,仅用于显示已分配文件句柄的数目、已使用文件句柄的数目、文件句柄的最大数目,如下图所示。
linux 内核参数修改
配置 Linux 内核参数(2种方法),修改后不用重启动更新: /sbin/sysctl -p 第一种:打开/etc/sysctl.conf 复制如下内容 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net .c ore.rmem_default =262144 net .c ore.wmem_default =262144 net .c ore.rmem_max=262144 net .c ore.wmem_max=262144 第二种:打开终端 cat >> /etc/sysctl.conf< kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net .c ore.rmem_default =262144 net .c ore.wmem_default =262144 net .c ore.rmem_max=262144 net .c ore.wmem_max=262144 EOF
相关文档
最新文档