Linux性能调优

一、tuned 优化

RHEL/CentOS 在 6.3 版本以后引入了一套新的系统调优工具 tuned/tuned-adm,其中 tuned 是服务端程序,用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的;tuned-adm 是客户端程序,用来和 tuned 打交道,用命令行的方式管理和配置 tuned,tuned-adm 提供了一些预先配置的优化方案可供直接使用,比如:笔记本、虚拟机、存储服务器等。

#安装
[root@localhost ~]$ yum -y install tuned 


#查看性能优化模板列表
[root@localhost ~]$ tuned-adm list
优化模板用途
balanced功耗和性能的平衡,只对CPU和磁盘做了调节
desktop适用与桌面设备,基于balanced策略
throughput-performance高吞吐量优化模式。它禁用电能节约机制,使sysctl设置提高吞吐量性能的磁盘、网络IO和转向最后期限的调度器。以获得最大吞吐量
latency-performance非常适合需要牺牲能耗来获取低延迟和服务器系统,低延迟的性能模式。它禁用电能节约机制,使sysctl设置提高延迟。
network-latency(网络延迟)它可以启用额外的网络调优参数,以提供低网络延迟,基于throughput-performance
network-throughput(网络吞吐量)优化网络吞吐量,基于 throughput-performance
powersave最节能的策略
oracle基于throughput-performance配置文件,针对Oracle数据库负载进行优化
virtual-guest当系统在虚拟机上运行时,调优系统以获得最高性能
virtual-host当系统充当虚拟机的主机时,调优系统以获得最高性能

查看当前优化方案

[root@localhost ~]$ tuned-adm active
Current active profile: balanced

查看推荐的优化方案

[root@localhost ~]$ tuned-adm recommend
balanced

切换优化方案:

[root@localhost ~]$ tuned-adm profile  <profile_name>

二、sysctl 优化

sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下。sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。

命令格式:

[root@localhost ~]$ sysctl [-n] [-e] -w variable=value
[root@localhost ~]$ sysctl -w net.ipv4.ip_forward=1  # -w 用此选项来改变一个sysctl设置

[root@localhost ~]$ sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf)
[root@localhost ~]$ sysctl -p   #从指定的文件加载系统参数

[root@localhost ~]$ sysctl [-n] [-e] -a
[root@localhost ~]$ sysctl -a #显示所有的系统参数

常用参数的意义:
    -w   临时改变某个指定参数的值,如    sysctl -w net.ipv4.ip_forward=1
    -a   显示所有的系统参数
    -p   从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

2.1 sysctl.conf内核参数详解

超详细解释
https://wws.lanzous.com/ibAKsmunp5a
密码:3j9g

#修改用户的
[root@localhost ~]$ vim /etc/security/limits.conf
        * soft nproc 11000 #限制最多打开的软件数
        * hard nproc 11000 #限制打开软件的最多进程数
        * soft nofile 655350#限制最多打开的文件数
        * hard nofile 655350#限制最多运行的进程数,一般设置为65535
#hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。

#core是内核文件,nofile是文件描述符,noproc是进程,一般情况下只限制文件描述符数和进程数就够了


#修改系统的

[root@localhost ~]$ vim /etc/sysctl.conf
fs.file-max=65535
kernel.pid_max = 65535

[root@localhost ~]$ sysctl -p

修改最大线程数

查看用户打开到最大进程数

[root@localhost ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30624
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
#一个进程可打开的最大文件数
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 30624
#最大进程数量
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

#root 账号下 ulimit -u 出现到 max user processes 的值 默认是  # cat /proc/sys/kernel/threads-max 的值 / 2,即系统线程数的一半

#普通账号下 ulimit -u 出现的 max user processes 的值 默认是 /etc/security/limits.d/20-nproc.conf (centos6 是 90-nproc.conf) 文件中的
#/etc/sysctl.conf
[root@localhost ~]$ sysctl -a 
#路由转发功能,默认为0是关闭的,如需要打开需要更改为1
net.ipv4.ip_forward = 1   


#启用源路由核查功能
#1 通过反向路由回溯进行源地址验证(在RFC1812中定义)。对于单一主机和stub网络路由器推荐使用该选项。
#0 不通过反向路由回溯进行源地址验证。缺省值为0
net.ipv4.conf.all.rp_filter = 1  
net.ipv4.conf.default.rp_filter = 1 


#禁用所有IP源路由
net.ipv4.conf.all.accept_source_route = 0 
net.ipv4.conf.default.accept_source_route = 0  

#使用sysrq组合键是了解系统目前运行情况,为安全起见设为0关闭
kernel.sysrq = 0   

#控制core文件的文件名是否添加pid作为扩展
kernel.core_uses_pid = 1  

#开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理
net.ipv4.tcp_syncookies = 1

#每个消息队列的大小(单位:字节)限制
kernel.msgmnb = 65536 

#整个系统最大消息队列数量限制
kernel.msgmax = 65536  

#禁用IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

#调整系统级别的文件描述符的数量
fs.file-max = 6553500 


#调整系统级别的允许线程的数量
kernel.pid_max=1000000


###内存资源使用相关设定
vm.vfs_cache_pressure = 100000
vm.max_map_count = 262144
vm.swappiness = 0

#为TCP socket预留用于发送缓冲的内存默认值(单位:字节)
net.core.wmem_default = 8388608  
#为TCP socket预留用于发送缓冲的内存最大值(单位:字节) 
net.core.rmem_default = 8388608 
#为TCP socket预留用于接收缓冲的内存最大值(单位:字节) 
net.core.rmem_max = 16777216 
net.core.wmem_max = 16777216 
#TCP读buffer
net.ipv4.tcp_rmem = 4096 8192 4194304
#TCP写buffer 
net.ipv4.tcp_wmem = 4096 8192 4194304 
   
##应对DDOS攻击,TCP连接建立设置
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_synack_retries = 1  
net.ipv4.tcp_syn_retries = 1   
net.ipv4.tcp_max_syn_backlog = 262144 

##应对timewait过高,TCP连接断开设置
net.ipv4.tcp_max_tw_buckets = 6000  
net.ipv4.tcp_tw_recycle = 1  
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_timestamps = 0   
net.ipv4.tcp_fin_timeout = 30 
net.ipv4.ip_local_port_range = 1024 65000

###TCP keepalived 连接保鲜设置
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_intvl = 15 
net.ipv4.tcp_keepalive_probes = 5

###其他TCP相关调节
net.core.somaxconn = 8192 
net.core.netdev_max_backlog = 262144  
net.ipv4.tcp_max_orphans = 3276800    
net.ipv4.tcp_sack = 1  
net.ipv4.tcp_window_scaling = 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值