当前位置: 首页 > Linux

如何做系统优化-Linux系统配置优化

时间:2023-04-06 11:36:36 Linux

前言应用系统运行在操作系统之上,系统的性能好坏也关系到应用程序的性能。以下是Linux性能的一些关键配置信息。永久关闭selinuxselinux提高了系统安全性,但是会带来很多麻烦,一般关闭[root@localhost~]#vim/etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled,保存退出,重启生效[root@localhost~]#reboot设置系统运行级别为3以节省系统资源[root@localhost~]#grep3:initdefault/etc/inittabid:3:initdefault:[root@localhost~]#init3增加最大值系统文件描述符的值vim/etc/security/limits.confresize*softnofile65536*hardnofile65536*softnproc65536*hardnproc65536说明:*表示noproc表示对所有用户nofile表示最大打开文件数调整内核parameters文件/etc/syctl.conf配置网络参数以提高系统负载能力。如果服务器丢包,需要考虑是否需要调整以下配置。/etc/syctl.confnet.ipv4.tcp_syncookies=1表示启用SYNCookies。当SYN等待队列溢出时,启用cookies进行处理,可以防止少量的SYN攻击。默认值为0,表示关闭;net.ipv4.tcp_tw_reuse=1表示启用重用。允许TIME-WAIT套接字被重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_tw_recycle=1表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭。net.ipv4.tcp_fin_timeout=30表示如果socket被本端关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。net.ipv4.tcp_keepalive_time=1200表示启用keepalive时TCP发送keepalive报文的频率。默认为2小时,将其更改为20分钟。net.ipv4.ip_local_port_range=102465000表示出站连接的端口范围。Small默认:32768到61000,改为1024到65000。net.ipv4.tcp_max_syn_backlog=8192表示SYN队列的长度,默认是1024,增加队列长度到8192可以容纳更多等待连接的网络连接。net.nf_conntrack_max=655360内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)conf.first文件启用重用,RecyclesocketresourcesfornewTCPconnectionsnet.ipv4.tcp_tw_reuse=1enablerecycle:net.ipv4.tcp_tw_recycle=1networkconnectionmaximumandtimeoutconfigurationnet.nf_conntrack_max=25000000net.netfilter.nf_conntrack_max=25000000net.netfilter.nf_conntrack_tcp_timeout_established.netfilter.nf_conntrack_tcp_timeout_time_wait=120net.netfilter.nf_conntrack_tcp_timeout_time_wait=120net.netfilter.nf_conntrack_tcp_timeout_close_wait=60net.netfilter.nf_conntrack_tcp_timeout_fin_wait=120net.nf_conntrack_maxdeterminesthesizeoftheconnectiontrackingtable,thedefaultvalueis65535,areasonablevaluecanbe根据系统内存大小=CONN_SI/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决定关闭状态连接的超时等待时间打开文件(toomanyopenfiles)程序是Linux系统中的常见错误。从字面上理解就是程序打开的文件太多,但是这里的文件不仅仅是文件的意思,还有打开的通信链接(比如socket),被监听的端口等等,所以有时候可以也可以称为句柄(handle),这种错误通常可以称为句柄数超过系统限制。在高并发或者程序代码中没有正确关闭IO,系统限制比较小的情况下,系统运行一段时间后,当程序打开句柄数超过系统限制时,抛出此异常。解决方法:增加系统文件描述符号连接服务器超时的最大值。一般是TimeWait进程太多。原因一般是应用程序没有正确关闭连接,导致服务器TIME_WAIT进程过多,主动关闭连接导致TIME_WAIT发生。首先查看程序和系统的上述配置解决方法:解决程序问题,查看系统内核网络和防火墙内核设置查看机器网络状态常用命令netstat-n|awk'/^tcp/{++state[$NF]}END{for(keyinstate)printkey,"\t",state[key]}'LAST_ACKstate:descriptionCLOSED:没有连接处于活动状态或正在进行中LISTEN:服务器正在等待传入呼叫SYN_RECV:连接请求已到达,等待确认SYN_SENT:应用程序已启动,打开连接ESTABLISHED:正常数据传输状态FIN_WAIT1:应用程序表示已完成FIN_WAIT2:另一方已同意释放ITMED_WAIT:等待所有分组死亡CLOSING:双方同时尝试关闭TIME_WAIT:另一方已初始化一个ReleaseLAST_ACK:等待所有分组死亡总结Linux提供了丰富的内核参数供用户调整。适当的调整可以大大提高服务器的处理能力思考在线申请系统的问题,如何快速定位系统的资源问题