linux不常用内核参数说明

at 2年前  ca Linux  pv 974  by touch  

1.net.ipv4.ip_nonlocal_bind

  1. net.ipv4.ip_nonlocal_bind:此参数表示是否允许服务绑定一个本机不存在的IP地址;
  2. 使用场景:有些服务需要依赖一个vip才能启动,但是此vip不在本机上,当vip飘移到本机上时才存在;但是服务又需要提前启动,例如haproxy,nginx等代理需要绑定vip时;
  3. 0:默认值,表示不允许服务绑定一个本机不存的地址
  4. 1:表示允许服务绑定一个本机不存在的地址

2.vm.min_free_kbytes

  1. 保留给内核使用的;
  2. 此参数的默认值为67584,即64M;
  3. 当到达min,系统会启动 kswapd 进行内存回收;
  4. 此值不宜设置过大,否则会造成kswapd进程持续运行,造成服务器故障;

3.vm.overcommit_memory

  1. vm.overcommit_memory:表示系统允许内存的分配情况
  2. 0:默认值;
  3. 表示内核将检查是否有足够的可用内存供应用进程使用;
  4. 如果有足够的可用内存,内存申请允许;
  5. 否则,内存申请失败,并把错误返回给应用进程。
  6. 1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。redis要把此参数设为1
  7. 2
  8. 表示允许分配的内存为:物理内存*vm.overcommit_ratio+交换空间; 
  9. 与参数vm.overcommit_ratio结合使用;
  10.  
  11. 查看系统中可提交的内存和已经申请的内存:
  12. 执行命令:cat /proc/meminfo | awk '{print $1,$2/1024 " Mb"}' | grep "Commit"
  13. CommitLimit: 7934.45 Mb
  14. Committed_AS: 581.512 Mb
  15. CommitLimit:表示系统可分配的内存
  16. Committed_AS:表示系统已经分配的内存

4.vm.overcommit_ratio

  1. overcommit_memory=2的时候,它一般是代表的是系统中物理内存的百分比;
  2. 默认值为:50
  3. 如:此值为50,系统内存为8Gswap4G;则总的可分配内存为:4G + 8G*0.5 = 8G

5.kernel.msgmax

  1. 进程间的通信需要依靠内核来进行管理;是通过消息列队来传递消息;
  2. 以字节为单位,规定消息的单大值;
  3. 默认为65536,即64k
  4. 此值不能超过kernel.msgmnb的值,msgmnb限定了消息队列的最大值;

6.kernel.msgmnb

  1. 以字节为单位,规定了一个消息队列的最大值;
  2. 默认值为:65536,即64k

7.kernel.mni

  1. 指定消息队列的最大个数;

8.kernel.shmall

  1. 以**页**为单位,控制共享内存总量;Linux一个内存页大小为4kb

9.kernel.shmmax

  1. 定义单个共享内存段的最大值; 
  2. shmmax 设置应该足够大,设置的过低可能会导致需要创建多个共享内存段;

10.kernel.shmmni

  1. 定义共享内存段的个数,默认为4096


版权声明

本文仅代表作者观点,不代表码农殇立场。
本文系作者授权码农殇发表,未经许可,不得转载。

 

扫一扫在手机阅读、分享本文

冀ICP备14009681号-2 Powered By 码农殇 Theme By zb脚本
您是本站第2599名访客 今日有0篇新文章