Linux内核参数优化记录

//fs.file-max       最大打开文件数
//fs.nr_open=20480000           单个进程允许打开的文件句柄上限

//信号量及共享内存,可以使用ipcs -l来获取
//kernel.sem        信号量: 每个信号集中最大信号量数目 系统范围最大信号量数目 每个信号发生时的最大系统操作数 系统范围内最大信号集总数目 第一列*第四列=第二列
//                  512G好配置:4096 2147483647 2147483646 512000  1G差配置:250 512000 100 2048

//kernel.shmall     控制全部共享内存页数。系统所有共享内存段相加的大小限制,建议为内存的80%,例如:64G *80%/4k 即是页数
//kernel.shmmax     单个共享内存段大小,建议为内存的一半,9.2之后对共享内存使用降低了,单位是byte
//kernel.shmmni     全部共享内存段的总个数,缺省值为4096就够了,参考的是819200,单个共享段最小大小?

//脏页刷新
//vm.dirty_background_bytes     40960000,系统脏页达到这个值,系统后台刷脏页调度进程自动将dirty_expire_centisecs/100秒前的脏页刷到磁盘,建议设置为内存的2%?
//vm.dirty_expire_centisecs     比这个值老的脏页,将被刷到磁盘,3000表示30秒

//vm.dirty_ratio = 95           如果单个进程产生的脏数据到达系统整体内存的百分比,此时进程自行把脏数据写回磁盘.
//                              如果系统进程刷脏页太慢,使得系统脏页超过内存 95 % 时,则用户进程如果有写磁盘的操作(如fsync, fdatasync等调用),则需要主动把系统脏页刷出。
//                              有效防止用户进程刷脏页,在单机多实例,并且使用CGROUP限制单实例IOPS的情况下非常有效
//vm.dirty_background_ratio     所有全局系统进程的脏页数量到达系统整体内存的百分比,此时触发pdflush进程把脏数据写回磁,默认值为10,注意这里是全局进程的脏页

//Linux对大部分申请内存的请求都回复"yes",以便能跑更多更大的程序。因为申请内存后,并不会马上使用内存。这种技术叫做Overcommit
//vm.dirty_writeback_centisecs = 100    pdflush(或其他)后台刷脏页进程的唤醒间隔,缺省值为500,100表示1秒。
//vm.overcommit_memory = 0              在分配内存时,允许少量over malloc, 如果设置为 1, 则认为总是有足够的内存,内存较少的测试环境可以使用 1 .
//                                      0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
//                                      1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。当kernel发现内存使用率接近100%时,就触发OOM,杀掉一些用户态进程,释放内存
//                                      2, 用户一次申请的内存大小不允许超过可用内存的大小。表示内核允许分配超过所有物理内存和交换空间总和的内存(参照overcommit_ratio)。
//vm.overcommit_ratio = 90     默认50,当overcommit_memory = 2 时,用于参与计算允许指派的内存大小。系统可分配内存=交换空间+物理内存*overcommit_ratio/100,超过这个值就拒绝这次内存申请
//vm.swappiness = 0            关闭交换分区
//vm.zone_reclaim_mode = 0      禁用 numa, 或者在vmlinux中禁止.

//nr_pdflush_threads            当前正在运行的pdflush进程数量,在I/O负载高的情况下,内核会自动增加更多的pdflush进程。缺省值2,只读

//vm.extra_free_kbytes = 4096000
//vm.min_free_kbytes = 2097152      Linux VM最低保留多少空闲内存(Kbytes)
//如果是小内存机器,以上两个值不建议设置
//vm.nr_hugepages = 66536    建议shared buffer设置超过64GB时 使用大页,页大小 /proc/meminfo Hugepagesize
//vm.lowmem_reserve_ratio = 1 1 1   对于内存大于64G时,建议设置,否则建议默认值 256 256 32

 

 

未完待续:

 

参考:

https://www.cnblogs.com/ywcz060/p/5566086.html

https://github.com/digoal/blog/blob/master/201611/20161121_01.md?spm=a2c4e.11153940.blogcont80563.13.5c96100aDpE202&file=20161121_01.md#postgresql-on-linux-最佳部署手册---珍藏级

上一篇:Linux虚拟内存(swap)调优篇-“swappiness”,“vm.dirty_background_ratio”和“vm.dirty_ratio”


下一篇:java – 使用Substance LAF向标题栏添加按钮