Centos7环境下Tomcat 启动慢的解决方案
1、增加熵值(本质增加random)安装软件
>> Yum –y install rng-tools
启动熵服务
>> Systemctl start rngd(或service rngd start)
2、修改java环境配置文件
$JAVA_HOME/jre/lib/security/Java.security文件
>> vi securerandom.source
#securerandom.source=file:/dev/urandom
securerandom.source=file:/dev/./urandom
3、修改tomcat配置文件
>> vi Catalina.sh
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"

server.xml相关配置
<Connector port="8002"
protocol="org.apache.coyote.http11.Http11AprProtocol" #apr模式
URIEncoding="UTF-8" #编码
acceptorThreadCount="4" #接收线程数目
pollerThreadCount="4" #用来处理轮询事件的线程的数量
acceptCount="200" #处理队列中的请求数
maxConnections="3000" #最大连接数
maxThreads="1000" #最大线程数
minSpareThreads="500" #Tomcat初始化时创建的线程数
processorCache="500" #规定多少processor对象有能得到缓存,-1无限制,默认为200
connectionTimeout="20000"/> #连接超时
<Host><Context path="" docBase="appname"/></Host>

catalina.sh文件
JAVA_OPTS="
$JAVA_OPTS
-server -Xms3500m -Xmx3500m ##-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落
-Djava.awt.headless=true #一种系统模式
-Djava.library.path=/usr/local/apr/lib #apr依赖
-Djava.security.egd=file:/dev/./urandom #解决熵值不够的问题,使用伪随机函数(针对centos7或者Linux4以上版本)
-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8" #解决中文日志乱码

APR安装(默认安装目录 /usr/local/apr/lib)
安装依赖
yum install apr-devel
yum install openssl-devel 注意:ssl版本要求1.0.2以上
yum install gcc
yum install make
1、上传apr压缩包
2、解压
3、进入解压目录
4、执行./configure
5、执行make(可以不修改)
注:出现报错需要修改configure文件
1、编辑 configure文件,查找 $RM "$cfgfile" 这个地方,用#注释掉
2、在configure里面 RM='$RM -f'这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依
6、执行make install
7、安装JNI wrapper库
7.1、在Tomcat/bin目录下有tomcat-native.tar.gz,解压并进入解压目录
7.2、进入native目录
7.3、执行./configure --with-apr=/usr/local/apr
7.4、执行make,执行make install

SSL版本升级(1.0.1e升级为1.0.2或1.0.2h)
1、手动下载压缩包或wget https://www.openssl.org/source/openssl-1.0.2.tar.gz
2、更新zlib >>yum install -y zlib
3、 >> tar zxf openssl-1.0.2.tar.gz
>> cd openssl-1.0.2
>> ./config shared zlib
>> make
>> make install
>> mv /usr/bin/openssl /usr/bin/openssl.bak
>> mv /usr/include/openssl /usr/include/openssl.bak
>> ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
>> ln -s /usr/local/ssl/include/openssl /usr/include/openssl
>> echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
>> ldconfig -v
4、检查是否升级成功
>> openssl version -a

Tomcat提高并发的更多相关文章

  1. tomcat 高并发配置 与优化

    公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64) TOMCAT_HOME/bin/catalina.sh 添加一行 ...

  2. 调整Tomcat的并发线程到5000+

    调整Tomcat的并发线程数到5000+ 1. 调整server.xml的配置 先调整maxThreads的数值,在未调整任何参数之前,默认的并发线程可以达到40. 调整此项后可以达到1800左右. ...

  3. SQL Server数据库读写分离提高并发性

    在一些大型的网站或者应用中,单台的SQL Server 服务器可能难以支撑非常大的访问压力.很多人在这时候,第一个想到的就是一个解决性能问题的利器——负载均衡.遗憾的是,SQL Server 的所有版 ...

  4. STM 软件事务内存——本质是为提高并发,通过事务来管理内存的读写访问以避免锁的使用

    对Java程序员来说,我们对面向对象的编程(OOP)自然都是烂熟于胸的,但语言也极大地影响了我们构建面向对象应用程序的方式.(现在的OOP已经和Alan Kay当初创造这个词时候的初衷大不相同了,他的 ...

  5. nginx配置优化提高并发量

    1 nginx配置优化提高并发量 worker_processes 2; 这个按照CPU的核数来决定 2 worker_connections 65535; 这个一般设置65535即可 每个进程允许的 ...

  6. tomcat高并发配置

    最近在项目中负责Tomcat高并发优化方案写一写新得. 优化1)tomcat默认的并发是75,可以启用线程池根据生产环境硬件设定线程池大小. <Executor name="tomca ...

  7. Redis+Kafka异步提高并发

    Redis+Kafka异步提高并发 Redis+Kafka异步提高并发 设计 实现 提交请求接口 Kafka消费队列 异步处理Service 客户端轮询获取结果 Redis集群节点配置 KafKa集群 ...

  8. 提高tomcat的并发能力

    1.Apache + Tomcat 结合起来用Apache负责静态页面,Tomcat负责动态页面,同时减少connectionTimeout的时间,以应对并发量大线程回收来不及的情况. 2.压力过大的 ...

  9. Tomcat高并发配置优化

    用的JMeter在自己电脑上测试的.Ubuntu10.04(x64)内存2G,cpu E5400 主频2.7.jdk1.6.0_27(x64) , tomcat6.0.33(x64) , oracle ...

随机推荐

  1. Ext4文件系统架构分析(一)

    本文描述Ext4文件系统磁盘布局和元数据的一些分析,同样适用于Ext3和Ext2文件系统,除了它们不支持的Ext4的特性外.整个分析分两篇博文,分别概述布局和详细介绍各个布局的数据结构及组织寻址方式等 ...

  2. vue 目录结构解析

    ├── README.md 项目介绍├── index.html 入口页面├── build 构建脚本目录│ ├── webpack.base.conf.js webpack基础配置,开发环境,生产环 ...

  3. delphi黑色背景模式

    uses Vcl.Styles, vcl.Themes; procedure TForm1.FormCreate(Sender: TObject); begin TStyleManager.LoadF ...

  4. 20155238 2016-2017-2 《JAVA程序设计》第七周学习总结

    教材学习内容总结 第十二章 认识Lambda语法 在只有Lambda表达式的情况下,参数的类型必须写出来. 匿名类有相应的应用场合.Lambda表达式只关心方法命名上的参数与返回定义,忽略方法名称. ...

  5. vue打包完样式冲突

    在页面的<style> 后,加上scoped, 例: scoped是实现样式的私有化,使样式不容易被覆盖,不容易被修改,只对当前页面有效

  6. c++ 自定义类型,函数指针类型

    用typedef定义函数指针类型 -函数指针和函数指针数组 46课里边有如下代码 int add(int a,int b,int d) { return a+b+d; } int mul(int a, ...

  7. python 线程及线程池

    一.多线程 import threading from time import ctime,sleep def music(func): for i in range(2): print(" ...

  8. 【HNOI2015】实验比较

    题面 题解 首先将所有相等的用并查集缩点,然后会发现题目有一个很有用的性质: 对每张图片\(i\),小D都最多只记住了某一张质量不比\(i\)差的另一张图片\(K_i\). 于是将\(K_i\)作为\ ...

  9. Object C学习笔记3-对象的使用和定义

    1. 如何定义一个对象 在面向对象的语言中,定义一个对象是使用Class关键字,而在Object-C中则是使用@interface,@interface用于定义对象的属性和方法,@implementa ...

  10. MySQL数据库查询某个库下有几张数据表

    如果统计某数据库中存在多少张数据表,使用如下SQL检索语句即可: SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES ...