美文网首页
Centos7.2高并发优化记录

Centos7.2高并发优化记录

作者: 黑小马_ | 来源:发表于2018-12-15 16:12 被阅读0次

系统层优化
系统 socket 层优化
echo 65535 > /proc/sys/net/core/somaxconn 准许最大链接数
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle 快速回收链接
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse 重用链接
echo 0 > /proc/sys/net/ipv4/tcp_syncookies 关闭洪水抵御
系统文件层优化
ulimit -n 65535

vim /etc/sysctl.conf

net.ipv4.tcp_syncookies = 0

sysctl -p

然后就可以超过1000个并发测试了。

vim /etc/sysctl.conf

net.ipv4.tcp_syncookies = 0

sysctl -p

然后就可以超过1000个并发测试了。

另附其他系统内核参数说明:

net.ipv4.tcp_syncookies = 0

此参数是为了防止洪水攻击的,但对于大并发系统,要禁用此设置

net.ipv4.tcp_max_syn_backlog

参数决定了SYN_RECV状态队列的数量,一般默认值为512或者1024,即超过这个数量,系统将不再接受新的TCP连接请求,一定程度上可以防止系统资源耗尽。可根据情况增加该值以接受更多的连接请求。

net.ipv4.tcp_tw_recycle

参数决定是否加速TIME_WAIT的sockets的回收,默认为0。

net.ipv4.tcp_tw_reuse

参数决定是否可将TIME_WAIT状态的sockets用于新的TCP连接,默认为0。

net.ipv4.tcp_max_tw_buckets

参数决定TIME_WAIT状态的sockets总数量,可根据连接数和系统资源需要进行设置。

  1. 修改/etc/sysctl.cnf文件,在最后追加如下内容:

net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 65536

  1. 保存退出,执行sysctl -p生效

tomcat优化

<Executor name="tomcatThreadPool" # 配置TOMCAT共享线程池,NAME为名称 
namePrefix="HTTP-8088-exec-" # 线程的名字前缀,用于标记线程名称
prestartminSpareThreads="true" # executor启动时,是否开启最小的线程数
maxThreads="5000" # 允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,这里设置可以支持到5000并发
maxQueueSize="100" # 任务队列上限
minSpareThreads="50" # 最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源
maxIdleTime="10000" # 超过最小活跃线程数量的线程,如果空闲时间超过这个设置后,会被关别。默认是1分钟。
/>

<Connector port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="5000" redirectPort="443" proxyPort="443" executor="tomcatThreadPool" # 采用上面的共享线程池
URIEncoding="UTF-8"/>

对tomcat启动参数优化我们可以在tomcat的启动脚本 catalina.sh 中设置 JAVA_OPTS参数。

JAVA_OPTS="-Xmx2048m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=768m -Xss2m"
CATALINA_OPTS="-Djava.awt.headless=true"

Tomcat启动缓慢

tomcat7在centos7里面启动有时候会很慢,要好几分钟。 原因是什么什么熵什么什么随机的,反正运行下面命令之后再启动就好了。
如果没有tomcat7启动过慢的问题,可以忽略此步骤

yum -y install rng-tools

systemctl start rngd

可以通过配置JRE使用非阻塞的Entropy Source。

在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。

相关文章

  • Centos7.2高并发优化记录

    系统层优化系统 socket 层优化echo 65535 > /proc/sys/net/core/somaxco...

  • 高并发秒杀API(六)

    前言 本篇将完成高并发优化,包括: Redis后端缓存优化 并发优化 一、高并发优化分析 在优化之前要明白高并发发...

  • MySQL实战14 慢查询优化join、order by、gro

    1.慢查询的优化思路 1.1优化更需要优化的SQL 优化SQL是有成本的高并发低消耗的比低并发高消耗影响更大 优化...

  • JAVA-每日一面 2022-01-14

    问:高并发系统如何做性能优化?如何防止库存超卖?答: 高并发系统性能优化:优化程序,优化服务配置,优化系统配置1....

  • 高并发优化

    慕课网Java高并发秒杀API之高并发优化笔记。基于该系列课程的Demo。 分析高并发发生在哪里 业务流程分析 详...

  • (二)微信红包架构、抢红包算法和高并发和降级方案(2)

    异地架构、cache系统优化、拆红包并发策略优化(高并发+红包算法)、存储优化一系列措施 一、架构(南北分布) 1...

  • CentOS7.2配置LNMP环境记录

    记录:CentOS7.2配置LNMP环境记录 CentOS7.2配置LNMP环境记录 LNMP是Linux、Ngi...

  • face 29高并发大流量

    高并发大流量 并发 并发访问,在某个时间点 有多少个访问同时到来 php如何处理网站大流量高并发问题 流量优化 防...

  • 2021-01-13

    【高并发】高并发环境下如何优化Tomcat性能?看完我懂了! Tomcat运行模式 Tomcat的运行模式有3种。...

  • Tomcat高并发优化

    https://blog.csdn.net/zsj777/article/details/80254887

网友评论

      本文标题:Centos7.2高并发优化记录

      本文链接:https://www.haomeiwen.com/subject/dtiwhqtx.html