高性能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 系统上应用程序 ...
随机推荐
- java学习笔记 --- 面向对象
一.对象和类 类(class):类是用于描述现实事物的,它将现实事物进行抽象化,模板化描述.将事物的特点(属性)和行为封装在其中.比如小汽车的图纸,图纸就是小汽车的模版.图纸上画着小汽车的各种特点和功 ...
- centos登录时一闪而过,显示module is unknown
原因是修改了在/etc/pam.d/login中加入了: session required /lib/security/pam_limits.so session required pam_limit ...
- Java 枚举详解
为什么要用枚举 在博客系统中,一篇文章有且可能有这几种状态, 数据库中article文章表中state字段存储数值,表示其状态: 0(已发表Published) 1(草稿Draft) 2(撤回撤回(D ...
- win8效果的横向布局
有一个月没写过博客了,自己的博客也没有看过,前段时间一直在忙着写代码,公司有一个制漆的产品,与传统纵向布局不一样,要求页面横向布局,类似win8的那种布局效果,最开始,我也没有什么头绪,然后硬着头皮做 ...
- 关于commonjs,AMD,CMD之间的异同
1.简介 随着前端业务复杂度的增加,模块化成为一个大的趋势.而在ES6还未被浏览器所支持的情况下,commonjs作为ES6中标准模块加载方案,在客服端中的支持情况并不好,现在在客服端中有2中模块化的 ...
- 高可用系列之Nginx
1.1Keepalived高可用软件 Keepalived起初是专为LVS设计的,专门用来监控LVS集群系统中各个服务节点的状态,后来又加入了VRRP的功能,因此除了配合LVS服务外,也可以作为其他服 ...
- Entity Framework快速入门--ModelFirst
Entity Framework带给我们的不仅仅是操作上的方便,而且使用上也很是考虑了用户的友好交互,EF4.0与vs2010的完美融合也是我们选择它的一个理由吧.相比Nhibernate微软这方面做 ...
- elasticsearch5.3安装插件head
1.下载并配置nodejscd /usr/local/src/wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz & ...
- 【linux 爱好者群】程序猿的那些聊天记录
分享&&交流&&开放 you should get it 声明:好吧,我们的群只有5个人,但是有句话不是说的很对吗,一个项目最理想的不就是5个人么.我是写文本那个. 下 ...
- 纯JS实现图片验证码功能并兼容IE6-8
最近要搞一个图片验证码功能,但是又不想自己写后台代码.于是自己准备搞一个纯前端的验证码功能,于是网上搜索了一下,找到一个插件gVerify.js,简单好用,实现完美.不过后面接到说要兼容IE8,想想也 ...