高性能linux服务器内核调优
高性能linux服务器内核调优
首先,介绍一下两个命令
1、dmesg 打印系统信息。
有很多同学们服务器出现问题,看了程序日志,发现没啥有用信息,还是毫无解决头绪,这时候,你就需要查看系统内核抛出的异常信息了,使用dmesg命令,可以查看系统信息,dmesg -c 清除已经看过的信息。
2、sysctl -p 生效内核配置
在我们修改内核参数文件/etc/sysctl.conf后,需要执行以下sysctl -p 来使参数生效。
nginx服务器内核调优
用户请求,最先进入的是nginx服务器,那我们首先就要对其进行内核调优。
首先,当然是文件描述符咯~
#增大文件描述符
ulimit -n 65536
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf
#修改系统线程限制
echo -ne "
* soft nproc 2048
* hard nproc 4096
" >>/etc/security/limits.conf
链接追踪表问题
nginx服务器在开启防火墙时最容易遇到如下情况
执行dmesg命令,查看系统打印信息
nf_conntrack: table full, dropping packet
(链接追踪表已满)
这是相当常见的问题,而且十分严重,导致服务器随机丢弃请求,你的并发突破不了几千。
调优方式:
增加或者修改内核参数
vim /etc/sysctl.conf
net.nf_conntrack_max = 655360 (状态跟踪表的最大行数,16G的服务器)
net.netfilter.nf_conntrack_tcp_timeout_established = 1200(设置超时时间)
修改完毕后执行sysctl-p生效命令。
time_wait
接下来,我们又会面临time_wait过多的情况。
time_wait过多,会导致系统可用端口的减少,众所周知,linux随机端口的可用范围是32768-65535之间,用户通过80端口请求进来,服务器需要开启一个随机端口返回数据给用户,可用端口的减少必然影响到了用户的访问,接下来我们通过调整这两个内核参数来减少time_wait的数量
降低time_wait最大值,此操作会导致内核告警TCP: time wait bucket table overflow。但是可以提升并发,节约端口。
net.ipv4.tcp_max_tw_buckets = 8000
增大可用端口范围,效果顾名思义
net.ipv4.ip_local_port_range = 1024 65000
最后两个参数我忘记了是什么意思了,不过也加上吧 :)
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_max_syn_backlog = 81920
至此,你的nginx服务器可以愉快地跑起来了!
redis服务器内核调优
就一条
vm.overcommit_memory = 1
为了避免当系统内存不足时,系统杀掉内存占用最大的程序(往往都是redis QAQ)。
不要忘了执行命令生效一下
elastic服务器内核调优
增大一个进程可以拥有的VMA(虚拟内存区域)的数量
vm.max_map_count = 262144
降低使用交换分区的优先级(你还要在elastic程序中配置禁用交换分区)
vm.swappiness = 1
其他的暂时没有了,nginx服务器的内核调优参数可加入初始化脚本中去。
未完待续~
高性能linux服务器内核调优的更多相关文章
- 20个Linux服务器性能调优技巧
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...
- [转]20个你不得不知的Linux服务器性能调优技巧
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...
- Linux服务器初始化调优及安全加固
一,开启iptables 仅开放必要的SSH端口和监控端口 示例:SSH tcp 22snmpd udp 161nrpe tcp 5666本人公网IP全端口开放 二,除非特别熟悉selinux配置,否 ...
- linux 服务器性能调优总结
1.性能分析的几个方面 https://blog.csdn.net/w174504744/article/details/53894127 2.cpu 性能分析工具 perf https://blog ...
- linux性能查看调优
一 linux服务器性能查看1.1 cpu性能查看1.查看物理cpu个数:cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l ...
- 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》
优化Linux内核参数/etc/sysctl.conf sysctl <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...
- 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》
优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...
- Linux内核调优参数说明
该脚本是我常用的系统安装后执行脚本,包括开机启动服务.内核.SSH优化. !/bin/sh 服务优化,(sshd.network.crond.syslog.rsyslog)服务保持默认开机启动 Ser ...
- Perf -- Linux下的系统性能调优工具,第 2 部分 特殊用法以及内核调优示例
https://www.ibm.com/developerworks/cn/linux/l-cn-perf2/ 本文内容简介 之前介绍了 perf 最常见的一些用法,关注于 Linux 系统上应用程序 ...
随机推荐
- Ef+T4模板实现代码快速生成器
转载请注明地址:http://www.cnblogs.com/cainiaodage/p/4953601.html 效果如图,demo(点击demo可下载案例) 项目结构如图 T4BLL添加BLL.t ...
- JS页面打开方式丶对话框及页面跳转方式
一.js页面的三种打开方式 1. window.open 2. window.navigate("url") 跳转到目标页面 3. window.location.href=&qu ...
- iOS打包后收不到推送信息
今天遇到的一个特别神奇的问题: 应用在测试环境下打的包收不到推送了,打包之后都没有推送,但是我真机测试又是可以收到推送消息的.经过好久才找到原因,感觉很坑.这里记录一下问题: 1.由于我的推送第三方使 ...
- ubuntu-terminal快捷键
常用快捷键功能:Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 Ctrl+d 删除当 ...
- 【一通百通】c/php的printf用法
1.先说说PHP printf()函数: printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); %d 十进制有符号整数 ...
- 【C++】智能指针详解(二):auto_ptr
首先,我要声明auto_ptr是一个坑!auto_ptr是一个坑!auto_ptr是一个坑!重要的事情说三遍!!! 通过上文,我们知道智能指针通过对象去管理指针,在构造对象时完成资源的分配及初始化,在 ...
- 老李分享:《Linux Shell脚本攻略》 要点(六)
老李分享:<Linux Shell脚本攻略> 要点(六) 1.打印网络接口列表 [root@localhost touch_more]# ifconfig | cut -c-10 | ...
- Framework7首页隐藏navbar其他页面显示navbar
Framework7首页隐藏navbar其他页面显示navbar 帮别人解决问题,自己也记录一下, 首页.navbar加.navbar-hidden, 首页.page加.no-navbar, 如果首页 ...
- linux awk 命令详解
awk是一个非常棒的数字处理工具.相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分为数个"字段"来处理.运行效率高,而且代码简单,对格式化的文本处理能力超强.先来一个 ...
- ubuntu中文字符集格式转换