博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux内核参数都有哪些参数需要调优
阅读量:6567 次
发布时间:2019-06-24

本文共 2174 字,大约阅读时间需要 7 分钟。

hot3.png

  • 网络
    linux作为客户端时,默认有最大连接数的限制,可以参考,修改的方法是在/etc/sysctl.conf下,增加一下设置
net.ipv4.tcp_timestamps = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1

其具体含义,参考,还有timestamps要不要开启,参考

  • 打开文件数
    linux系统默认单个进程能够打开最大的文件句柄数量为1024个,通过命令ulimit -n可以查看,修改方法,当时用
ulimit -HSn 102400

需要在root环境下,sudo不起作用

永久生效

*     soft nofile 1024000 *     hard nofile 1024000root soft nofile 1024000root hard nofile 1024000

只有重启机器有才生效

  • 页是物理内存或虚拟内存中一组连续的线性地址,Linux内核以页为单位处理内存,页的大小通常是4KB。当一个进程请求一定量的页时,如果有可以使用的页,也就是还有空余的物理或虚拟内存时,内核会直接把这些页分配给这个进程,否则,内核会从其它进程或者缓存中拿来一部分给这个进程,这些调用的过程以及分配,内存的位置等都是由内核来完成,有个一专门管理的叫虚拟内存管理器。linux内核使用名为伙伴系统(Buddy System)的机制维护空闲页,可以通过/proc/buddyinfo查看

  • Netfilter模块是被直接写进内核的模块,其在外的表现形式即为iptables。

  • Netfilter把每一个包分为下面四类,NEW:尝试建立新连接的包,ESTABLISHED:已建立连接的包,RELATED:与前面相关的包, INVALID:因为异常或者非法的不知状态的包。

  • Netfilter对匹配到的规则的处理,ACCEPT:接受包,放行,DROP:丢掉包,REJECT:丢掉包并回复一个消息,LOG:记录匹配到的包,MASQUEREAD,SNAT,DNAT,REDIRECT:地址翻译(NAT)

  • TCP/IP滑动窗口

  • Offload 如果网卡支持硬件Offload功能,内核可以卸载适配器的一部分任务,这样就可以减轻CPU的压力

  • 校验值卸载(Checksum offload) TCP/IP在协议的头部会有校验值字段,这个值由数据包中计算得到,通过比较校验值可以得到是否有数据丢失。

  • TCP分片卸载(TCP segmentation offload,TSO) 即MTU(最大传输单元,maximum transmission unit),如果数据比网卡支持的MTU更大,那么,数据就要分割成等于或者小于MTU大小的包,这个选项由内核指定。

  • 绑定模式 利用bonding驱动,Linux内核提供网卡聚合的功能。

  • 调整进程优先级 进程优先级由两部分组成,分别是priority和nice,在通过ps -l查看时

[root@localhost ~]# ps -lF S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD4 S     0  2976  2974  0  80   0 -  2861 wait   pts/1    00:00:00 bash4 R     0  2996  2976  0  80   0 -  2818 -      pts/1    00:00:00 ps

其中PRI就是priority,NI就是nice,所以,进程优先级的值在priority(0 - 99)和nice(20 - -19)之和的一个区间里,即0 - 140,这个值越低就表示该进程优先级越高,而这个值(0 -140)又关系到这个进程是实时进程还是非实时进程的问题,所有优先级值在0 -99的都是实时进程,其他的则为非实时进程。priority的值可以通过chrt修改,nice值可以通过nicerenice来设置,具体其原理请参考

  • 根据业务需求,适当减少磁盘I/O 在一般情况下,大的I/O流都会比小的要高效。

  • 控制/proc/sys/vm/swappiness的大小

  • 控制脏内存的刷新大小/proc/sys/vm/dirty_background_ratio,可以在脏内存达到你设定的值再刷到磁盘

  • 设置应用程序的脏内存刷新大小/proc/sys/vm/dirty_ratio,使其文件系统缓存达到主内存更大的值再写入到磁盘中

  • 设置Hugepages,即HugeTLBfs,具体参考kernel

  • 选择正确的I/O调度算法,I/O elevator,目前比较流行的有如下四种:

  • CFQ(Complete Fair Queuing) elevator

  • deadline elevator

  • NOOP

  • as(Anticipatory)

    具体原理用法可以参考这篇

  • 减少中断

  • 把网卡绑定到特定的CPU上

  • 把其他的绑定到特定的CPU上

    其目的就是为了减少Linux内核处理大量的中断和上下文切换

转载于:https://my.oschina.net/wangzongtao/blog/790639

你可能感兴趣的文章
python接口自动化测试(三)-requests.post()
查看>>
第 5 章 Spring Boot
查看>>
谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略
查看>>
css ul li checkbox 格式
查看>>
Android 手机号码格式验证
查看>>
SVN 常识
查看>>
CDN新品发布:阿里云SCDN安全加速开放公测
查看>>
《剑指offer》写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。...
查看>>
markdown编辑器的小建议
查看>>
《剑指offer》-逐层打印二叉树
查看>>
Linux 如何实现 VLAN - 每天5分钟玩转 OpenStack(12)
查看>>
Instant Run is disabled for non-debug variants
查看>>
JavaScript深入之执行上下文栈
查看>>
【Python】轻量级分布式任务调度系统-RQ
查看>>
写在2016年头
查看>>
[20150113]关于oracle的存储结构.txt
查看>>
orion的简单测试
查看>>
Word中向左缩进
查看>>
MySQL 5.7 SYS SCHEMA
查看>>
SM$TS_USED,SM$TS_FREE,SM$TS_AVAIL
查看>>