Linux 性能优化

目录:

  1. 可以被性能优化的点
  2. 性能评估表
  3. Linux 内核优化
可以被性能优化的点
  • 硬件层面
    CPU、内存、硬盘容量、硬盘I/O读写、网卡自身带宽容量等,通常对硬件层面因素的优化主要是考虑增加其配置
  • 软件层面
    Linux系统下各个应用程序:Nginx、Tomcat、MYSQL、Redis、程序代码、网站代码等,对其网站代码、软件的配置文件参数优化、优化软件架构、是否增加集群、分布式结构以扩展软件的本身的性能
  • 系统层面
    选择比较稳定的Linux操作系统发行版、减少不必要的服务、端口、修改Linux内核自身的限制、对Linux内核实施优化(打开端口数、进程数、文件数等)
  • 网络层面
    引入性能比较强硬件网络设备、交换机、路由器、防火墙,增加网络设备的背板带宽、带宽容量、吞吐率、运营商购买带宽容量等


性能评估表
糟糕
CPUuser% + sys%< 70%user% + sys%= 85%user% + sys% >=90%
内存Swap In(si)=0 Swap Out(so)=0Per CPU with 10 page/sMore Swap In & Swap Out
磁盘iowait % < 20%iowait % =35%iowait % >= 50%

常用系统性能组合分析命令:

top uptime                          检查系统整体的负载、承受能力;
vmstat、sar、iostat	、top		    检测是否是CPU瓶颈;
free、vmstat					    检测是否是内存瓶颈;
iostat、iotop						检测是否是磁盘I/O瓶颈;
netstat、iftop					    检测是否是网络带宽瓶颈。


Linux 内核优化

Linux内核(操作系统)最初设计的时候,做了很多的限制,限制很多参数、资源使用,为了防止Linux系统资源不被恶意使用、大量的使用而导致资源枯竭而设计内核限制
在生产环境中,由于某些软件、应用程序发挥最大的性能,使用Linux内核默认资源显然不够的,要对Linux内核资源进行重新修改和调整,对Linux内核资源进行优化

文件打开数优化
默认Linux内核对每个用户设置了打开文件最大数为1024,对于高并发网站,是远远不够的,需要将默认值调整到更大,调整方法有两种:

  1. Linux每个用户打开文件最大数临时设置方法
    重启服务器该参数无效(可以加入rc.local中),命令行终端执行如下命令:
ulimit -n 65535
  1. Linux每个用户打开文件最大数永久设置方法,将如下代码加入内核限制文件/etc/security/limits.conf的末尾:
* 	soft 	noproc			65535
* 	hard 	noproc			65535
* 	soft 	nofile			65535
* 	hard 	nofile			65535

如上设置为对每个用户分别设置nofile、noproc最大数,如果需要对Linux整个系统设置文件最大数限制,需要修改/proc/sys/fs/file-max中的值,该值为Linux总文件打开数。
例如设置为:

echo 3865161233 >/proc/sys/fs/file-max
vi /etc/sysctl.conf

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.ip_local_port_range = 4000 65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。

net.ipv4.ip_conntrack_max = 25000000

net.ipv4.netfilter.ip_conntrack_max=25000000

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180

net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120

net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60

net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120

# 重新加载内核参数
sysctl -p

在这里插入图片描述
在这里插入图片描述

回到目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值