前言

应用系统跑在操作系统上面,系统的性能也关系到应用程序的性能,这里讲一些Linux性能关键的配置信息。
永久关闭selinux
selinux提高系统安全性,但会造成很多麻烦,一般关闭

vim /etc/selinux/config

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

reboot

设定系统runlevel为3
节约系统资源

grep 3:initdefault /etc/inittab
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
  1. net.ipv4.tcp_syncookies = 1
    表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
  2. net.ipv4.tcp_tw_reuse = 1
    表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
  3. net.ipv4.tcp_tw_recycle = 1
    表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
  4. net.ipv4.tcp_fin_timeout = 30
    表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
  5. net.ipv4.tcp_keepalive_time = 1200
    表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
  6. net.ipv4.ip_local_port_range = 1024 65000
    表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
  7. net.ipv4.tcp_max_syn_backlog = 8192
    表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
  8. net.nf_conntrack_max = 655360
    在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)

火墙配置

/etc/syctl 尾部加上如下防火墙相关配置
有可能是sysctl.conf.first文件
开启重用,回收 socket资源用于新的TCP链接

net.ipv4.tcp_tw_recycle=1

开启回收:

```javascript
net.ipv4.tcp_tw_recycle=1

网络链接最大值及超时配置
```javascript
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
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产生。先检查程序及系统以上配置
    常见命令
    uptime
    iostat
    统计机器网络状态状态
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'LAST_ACK

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
总结
Linux提供了丰富的内核参数供使用者调整,调整得当可以大幅提高服务器的处理能力

系统优化怎么做-Linux系统配置优化相关推荐

  1. 系统优化怎么做-Tomcat优化

    系统优化怎么做-Tomcat优化 前言 Tomcat作为Web应用的服务器,目前绝大多数公司都是用其作为应用服务器的,应用服务器的执行效率会影响系统执行,这里会讲Tomcat怎样进行配置能提高处理性能 ...

  2. 数据库-优化-数据库系统配置优化-操作系统优化

    数据库系统配置优化 定义 数据库是基于操作系统的,目前大多数MySQL都是安装在linux系统之上,所以对于操作系统的一些参数配置也会影响到MySQL的性能,下面就列出一些常用的系统配置. 优化配置参 ...

  3. matlab分布式电源储能系统配置优化研究 面向新能源储能容量配置 储能系统定容和电力系统优化调度双层决策优化模型

    matlab分布式电源储能系统配置优化研究 面向新能源储能容量配置 储能系统定容和电力系统优化调度双层决策优化模型 粒子群+cplex matlab代码 注释明确 有参考文献和说明文档 ID:8212 ...

  4. Linux性能优化之CPU、内存、IO优化

    Linux 的性能进行监测,以下是 VPSee 常用的工具: 工具    简单介绍 top    查看进程活动状态以及一些系统状况 vmstat    查看系统状态.硬件和系统信息等 iostat   ...

  5. linux性能优化--cpu篇

    linux性能优化--cpu篇 前言 负载 CPU使用率 proc perf 一些链接 `perf list` 比较有用的event `perf stat` `perf record` Profili ...

  6. Linux系统配置安装Nginx反向代理服务器

    Linux系统配置安装Nginx反向代理服务器 Nainx官网下载:http://nginx.org/ 安装nginx之前首先需要安装 pcre-8.37.tar.gz openssl-1.0.1t. ...

  7. Linux 性能优化全景指南

    大家好 我是坤哥 之前一些朋友觉得奇怪,说你主要做 Java 的,公号怎么时不时地也推送一些 Linux 文章,其实不管你是哪个 xx 语言的工程师,要想进阶,Linux 性能优化是必备知识,举个例子 ...

  8. 【系统优化】新装Linux系统注意事项增加系统安全

    1.系统安装最小化 1)根据经验,选择安装包时应该按最小化原则,即不需要的或者不确定是否需要的就不安装,这样可以最大程度上确保系统安全. 2)如果安装过程落了部分包组或者其他伙伴安装时没选,再安装后可 ...

  9. Linux 性能优化的全景指南,都在这一篇里了,建议收藏~

    Linux 性能优化 性能优化 性能指标 高并发和响应快对应着性能优化的两个核心指标:吞吐和延时 应用负载角度:直接影响了产品终端的用户体验 系统资源角度:资源使用率.饱和度等 性能问题的本质就是系统 ...

最新文章

  1. 请问Pycharm如何实现变量的批量重命名?
  2. iOS - 打电话, 发短信
  3. LeetCode MySQL刷题——day2
  4. web前端之js快速入门(BOM和DOM)
  5. bootsect.exe linux,bootsect.exe
  6. Wcf使用Net.Tcp做回调操作
  7. Windows Server 2008 R2 安装IIS管理器
  8. Segmentation-Driven 6D Object Pose Estimation论文详解
  9. 决定使用JBPM3、JBPM4、Drools Folw 还是等待JBPM5?
  10. blog放在 http://cunsh.ycool.com/
  11. Ruby + Passenger 5 分钟 入门
  12. [附源码]计算机毕业设计基于Springboot校园运动会管理系统
  13. c#与python 交互(调用第三方库)
  14. python的turtle画小人_利用Python如何画一颗心、小人发射爱心
  15. 知到网课礼仪文化修养考试题库|真题试题(含答案)
  16. php 发送邮箱验证怎么做,PHP 实现 注册等的邮箱验证 (二)—— 使用 PHPMailer 发送邮件...
  17. 如何做好企业抖音内容运营?
  18. 6-26 统计专业人数 (15分)
  19. 【十四】MySQL Innodb RR隔离级别下到底是不是解决了幻读
  20. 基于STM32的数模转换芯片AD5328驱动程序

热门文章

  1. 列出5个python标准库_Python常用标准库使用(一)
  2. NLP-基础知识-007(机器学习-朴素贝叶斯)
  3. ntu 课程笔记 :MAS714(7) 最短路径和优先队列
  4. matlab基础入门之教你如何实现最小二乘法(附MATLAB代码)
  5. 对梯度下降法的简单理解
  6. html怎么压缩ttf,如何使用CSS包含.ttf字体?
  7. 二十万字!耗时90天
  8. Python编程基础:第六节 math包的基础使用Math Functions
  9. Youtube推荐系统是如何挖掘用户内心另一面的
  10. 面试总结-13年的最后一天,在面试与被虐中度过