0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux系统配置优化技巧

马哥Linux运维 来源:博客园蒲公英PGY 2025-03-04 11:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

应用系统跑在操作系统上面,系统的性能也关系到应用程序的性能,这里讲一些Linux性能关键的配置信息。

永久关闭selinux

selinux提高系统安全性,但会造成很多麻烦,一般关闭

[root@localhost ~]# vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled,保存后退出,重启生效

[root@localhost ~]# reboot

设定系统runlevel为3

节约系统资源

[root@localhost ~]# grep 3:initdefault /etc/inittab
id:3
[root@localhost  ~]# init 3

加大系统文件描述符最大值

vim /etc/security/limits.conf

调整大小

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

说明:

*代表针对所有用户

noproc 是代表最大进程数

nofile 是代表最大文件打开数

调整内核参数文件 /etc/syctl.conf

配置网络参数来提高系统负载能力
如果出现服务器丢包的情况,需要考虑是不是如下配置需要调整

vim /etc/syctl.conf

net.ipv4.tcp_syncookies = 1

表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1

表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1

表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout = 30

表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。

net.ipv4.tcp_keepalive_time = 1200

表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

net.ipv4.ip_local_port_range = 1024 65000

表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192

表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

net.nf_conntrack_max = 655360

在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)

防火墙配置

/etc/syctl 尾部加上如下防火墙相关配置

有可能是sysctl.conf.first文件

开启重用,回收 socket资源用于新的TCP链接

net.ipv4.tcp_tw_reuse=1

开启回收:

net.ipv4.tcp_tw_recycle=1

网络链接最大值及超时配置

net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

net.nf_conntrack_max

决定连接跟踪表的大小,默认值是65535,可以根据系统内存大小计算一个合理值:> CONNTRACK_MAX = RAMSIZE(in bytes)/16384/(ARCH/32),如32G内存可以设置1048576;

nf_conntrack_buckets

决定存储conntrack条目的哈希表大小,默认值是nf_conntrack_max的1/4,延续这种计算方式:BUCKETS = > CONNTRACK_MAX/4,如32G内存可以设置262144;

net.netfilter.nf_conntrack_max

最大连接数

net.netfilter.nf_conntrack_tcp_timeout_established

决定ESTABLISHED状态连接的超时时间,默认值是5天,可以缩短到1小时,即3600。

net.netfilter.nf_conntrack_tcp_timeout_time_wait

决定WAIT状态连接的超时等待时间

net.netfilter.nf_conntrack_tcp_timeout_close_wait

决定关闭状态连接的超时等待时间

net.netfilter.nf_conntrack_tcp_timeout_fin_wait

决定WAIT状态连接的超时等待时间

使以上配置生效

sysctl –p

常见异常

too many open files(打开的文件过多)

程序在Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。

在高并发情况或者程序代码中没有正确关闭IO, 并系统限制比较小的情况下,系统在运行一段时间后,程序打开句柄数超过系统限制的时候抛出该异常

解决方法:加大系统文件描述符最大值

连接服务器超时

一般TimeWait进程数过多,原因一般为应用程序没有正确关闭连接,导致服务器TIME_WAIT进程过多,主动关闭连接导致TIME_WAIT产生。先检查程序及系统以上配置

解决方法:解决程序问题,检查系统内核网络及防火墙内核设置

常见命令

查看机器网络状态状态

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"	",state[key]}'LAST_ACK

状态:描述

CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

总结

Linux提供了丰富的内核参数供使用者调整,调整得当可以大幅提高服务器的处理能力

链接:https://www.cnblogs.com/pgyLang/p/15769748.html

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217938
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128621
  • Linux系统
    +关注

    关注

    4

    文章

    609

    浏览量

    29638

原文标题:Linux系统配置优化:实用技巧大揭秘

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA最小系统配置电路的设计资料

    FPGA最小系统配置电路的设计资料
    发表于 05-04 16:04

    NI MAX 系统配置问题

    NI MAX 系统配置出现问题显示不可用,请问该如何解决
    发表于 06-26 19:36

    单片机系统配置及接口相关介绍

    单片机原理及应用C语言版9ppt课件单片机原理及应用 (C语言版)第9章单片机系统配置及接口 第9章 单片机系统配置及接口 目录9.1键盘接口 9.2LED显示接口 9.3A/D转换接口 9.4D
    发表于 07-14 08:08

    硬实时RTlinux系统配置

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦:硬实时RTlinux系统配置1. Linux内核下载2. 下载与Linux
    发表于 09-14 06:43

    从I2C写入系统配置内存失败可能是什么原因?是否按照正确的程序写入系统配置

    我正在研究 ST25DV64KC NFC 芯片。我正在尝试从 i2c 写入系统配置内存。脚步:1) 我通过发送当前密码命令打开了 i2c 安全会话。我已经从动态寄存器内存中读取
    发表于 12-08 08:16

    MP4播放器系统配置

    MP4播放器系统配置              系统配
    发表于 12-21 16:29 2256次阅读

    LPC111x系统配置

    LPC111x系统配置,有需要的朋友下来看看。
    发表于 01-13 16:04 15次下载

    FPGA最小系统配置电路的设计

    FPGA最小系统配置电路的设计,有兴趣的同学可以下载学习
    发表于 05-04 11:31 37次下载

    ABB机器人系统配置cclink课件下载

    ABB机器人系统配置cclink课件下载
    发表于 05-19 09:36 3次下载

    FPGA CPLD可编程逻辑器件的在系统配置方法

    FPGA CPLD可编程逻辑器件的在系统配置方法(深圳市村田电源技术有限公司)-FPGA CPLD可编程逻辑器件的在系统配置方法                   
    发表于 09-18 10:51 13次下载
    FPGA CPLD可编程逻辑器件的在<b class='flag-5'>系统配置</b>方法

    通信电源系统配置设计参数

    通信电源系统配置设计参数(安徽力普拉斯电源技术有限公司招聘)-该文档为通信电源系统配置设计参数总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,
    发表于 09-22 16:41 4次下载
    通信电源<b class='flag-5'>系统配置</b>设计参数

    服务器Linux系统配置IP地址的方法

    服务器Linux系统配置IP地址的方法。
    的头像 发表于 09-21 14:50 9754次阅读

    UART系统配置步骤详解

    CPU通过挂载到APB总线上的UART模块,实现其与外部设备的串行通信。系统配置部分将实现UART模块与CPU的通信,APB总线的读写和模块的功能配置,中断信号的产生。
    的头像 发表于 06-05 16:05 4104次阅读
    UART<b class='flag-5'>系统配置</b>步骤详解

    简单的菜单系统配置开源设计

    电子发烧友网站提供《简单的菜单系统配置开源设计.zip》资料免费下载
    发表于 06-09 10:31 0次下载
    简单的菜单<b class='flag-5'>系统配置</b>开源设计

    C2000系统配置应用说明

    电子发烧友网站提供《C2000系统配置应用说明.pdf》资料免费下载
    发表于 09-14 10:12 1次下载
    C2000<b class='flag-5'>系统配置</b>应用说明