首页 > Linux操作系统 > Linux操作系统 > 优化:linux主机
关闭电源保护模式内存
修改 /etc/sysctl.conf 后,使用 sysctl -p 来使得参数生效
关闭OOM
// echo "1" > /proc/sys/vm/oom-kill, free -l 查看 low memory, `cat /proc/sys/vm/lowmem_reserve_ratio`((DMA Normal HighMem))
echo "vm.oom-kill = 0" >> /etc/sysctl.conf
# echo "vm.overcommit_memory=2" >> /etc/sysctl.conf
尽量不使用SWAP,但不能关闭. 原因:centos 7 之前,推荐设为0,但新版本中,会导致OOM(内存溢出),kernel会杀掉内存最多的进程(mysqld)
echo "vm.swappiness = 1" >> /etc/sysctl.conf
尽量回收内存
echo "vm.zone_reclaim_mode=0" >> /etc/sysctl.conf
操作系统关闭numa
echo "numa=off" >> /etc/grub.conf增大每个信号发生时的最大系统操作数目。提高高并发性能
echo "kernel.sem=250 32000 100 128″>>/etc/sysctl.conf
用noatime,nobarrier挂载系统
文件系统的mount参数上加上noatime,nobarrier两个选项。
nobarrier
对于ext3, ext4和 reiserfs文件系统可以在mount时指定barrier=0;对于xfs可以指定nobarrier选项。
IO调度策略修改为deadline。
实时设置:
echo deadline >/sys/block/sda/queue/scheduler
永久生效:
/etc/grub.conf的kernel行最后添加elevator=deadline
echo "elevator=deadline" >> /etc/grub.conf
# 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;net.ipv4.tcp_syncookies = 1# 时间戳可以避免序列号的卷绕。一个1Gbps 的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。net.ipv4.tcp_timestamps = 1# 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;net.ipv4.tcp_tw_recycle = 1# 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_tw_reuse = 1# 如果套接字由本端要求关闭,保持在FIN-WAIT-2 状态的时间。net.ipv4.tcp_fin_timeout = 30### 一个tcp连接在空闲 tcp_keepalive_time 秒后,发起keepalive探测,超过 tcp_keepalive_intvl * tcp_keepalive_probes (秒)没有回应,则被中断 #### 当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。net.ipv4.tcp_keepalive_time = 120# 当探测没有确认时,探测包发送间隔。缺省是75秒。net.ipv4.tcp_keepalive_intvl = 30# 当探测没有确认时,探测包发送次数。缺省是9net.ipv4.tcp_keepalive_probes = 3
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26250550/viewspace-1432004/ ,如需转载,请注明出处,否则将追究法律责任。