`

tomcat+mysql性能优化

阅读更多

在单数据库,单计算机服务下随着用户的增加,随之而来的会出现很多问题,诸如连接、jvm空间不足等等,这些问题带来的后果就是性能大打折扣,客户投诉。当然处理办法有多种,比如添加服务,做负载均衡,添加缓存服务,动静分离等等。这里我们只谈谈对服务器(tomcat)和数据库(mysql)的优化。

  1. tomcat相关
  • 增加jvm堆栈的内存

我们在做大数据测试时常常会碰到这样一类错误:outofmemoryerror:java heap space

 这类问题出现的原因就是jvm的堆内存已满,导致内存溢出。解决这类问题首先要查的还是程序,看是否有死循环之类的bug问题,还有就是增加jvm的堆内存。这个配置需要在tomcat的bin目录下的catalina.bat文件中设置。编辑这个文件,在文件的rem -----------------------------------------------------------------和rem Guess CATALINA_HOME if not defined之间插入:set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m,这里做下介绍  -Xms(JVM初始化堆的大小 不要超过物理内存的80% ),-Xmx(JVM堆的最大值 不要超过物理内存的80% ),-XX:PermSize(jvm非堆内存初始值 默认是物理内存的1/64),XX:MaxPermSize(jvm非堆内存最大值 默认是物理内存的1/4)

  • 打开tomcat的NIO

熟悉IO与NIO的都知道,他们的区别和对性能的影响,这里就不多说了,其实tomcat是支持java NIO特性的,只不过默认情况下并未开启该功能,比如我们在未配置过的tomcat中常常会发现如下的配置

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
			   URIEncoding="UTF-8"
               redirectPort="8443" />
 

  而且启动时你会发现如下信息

2012-10-26 18:14:07 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2012-10-26 18:14:07 org.apache.catalina.startup.Catalina load
 

 以下便是开启tomcatNIO特性

<Connector  URIEncoding="UTF-8" 
    		    acceptCount="1000" 
    			connectionTimeout="20000" port="8080" 
    			protocol="org.apache.coyote.http11.Http11NioProtocol" 
    			redirectPort="8443"/>
 
  •   配置tomcat线程池

在tomcat启动时创建线程池,解决tomcat在获取请求时候创建线程的压力消耗,从而提升tomcat处理能力

在tomcat的server.xml文件中添加如下线程池声明

<Executor name="tomcatThreadPool" 
                namePrefix="catalina-exec-" 
                maxThreads="1000" 
                minSpareThreads="300" />
 

 

相关参数说明

     name:线程池的名称

     namePrefix:线程池的前缀

     maxThread:最大线程数

     minSpareThreads:初始化线程数

声明完线程池后,接着就使用该线程池,在tomcat的server.xml的连接器中配置该线程池,效果如下

<Connector  executor="tomcatThreadPool"  
    		   URIEncoding="UTF-8" 
    		   acceptCount="1000" 
    		   connectionTimeout="20000"   
                   port="8080"   			
                   protocol="org.apache.coyote.http11.Http11NioProtocol" 
    		   redirectPort="8443"/>
分享到:
评论

相关推荐

    JDK + Tomcat + MySQL环境集成工具

    "JDK + Tomcat + MySQL环境集成工具"是一个组合了三个核心组件的解决方案,它们分别是Java Development Kit(JDK)、Apache Tomcat服务器和MySQL数据库。这个集成工具旨在简化开发和部署过程,帮助开发者快速建立一...

    keepalived+nginx+tomcat+redis+mysql所需的jdk包

    它的高速读写能力使其成为优化Web应用性能的理想选择,可以减少对数据库的访问,提高响应速度。 Keepalived是一个用于网络服务高可用性的工具,它可以监控系统服务,并在服务出现故障时进行快速切换,确保无中断的...

    java网站基础环境tomcat+mysql+redis.zip

    Java网站基础环境构建通常涉及到三个核心组件:Tomcat(应用服务器),MySQL...同时,随着技术的发展,了解如何优化和维护这样的环境,如调整数据库索引、监控服务器性能、备份策略等,也是开发者必须掌握的技能。

    Android+Tomcat+MySql+jsp一万行代码无线点餐系统

    《Android+Tomcat+MySql+jsp一万行代码无线点餐系统详解》 在现代餐饮行业中,技术的应用已经成为提升服务效率、优化客户体验的重要手段。本文将深入解析一个基于Android客户端、Tomcat服务器、MySQL数据库以及JSP...

    jsp+tomcat+mysql网站实例

    例如,文件上传需要防止恶意文件,聊天功能需要防止SQL注入,而性能优化则可能涉及到缓存策略、数据库索引等。 总结来说,这个实例涵盖了Web开发的多个关键环节,包括前端展示、后端逻辑处理和数据存储。通过学习和...

    Android+Tomcat+MySql登录注册和Socket聊天

    4. 性能优化:考虑服务器性能和网络延迟,优化数据传输和处理速度。 综上所述,这个项目涵盖了移动应用开发、服务器端编程、数据库管理和网络通信等多个领域,是学习和实践Android、Tomcat、MySql和Socket技术的...

    Android+Tomcat+MySql一万行代码模仿QQ聊天软件

    在聊天应用中,可能需要创建用户表、好友关系表以及聊天记录表,并通过合适的索引优化查询性能。 标签中提及的“一万行代码”意味着这是一个相对复杂的项目,涉及的代码量较大,涵盖了许多功能模块,如用户注册、...

    redis缓存服务器Nginx+Tomcat+redis+MySQL实现session会话共享

    5. **测试与优化**:确保所有服务器都能正确读取和写入session,同时监控Redis的性能,以防止session过载导致的问题。 这个视频教程可能涵盖了这些步骤的详细过程,包括配置文件的示例和可能遇到的问题解决方案。...

    Java面试专题-面试人员必看-微服务架构面试专题系列:Tomcat+Mysql+设计模式+并发+Netty+JVM.rar

    了解其工作原理,如生命周期管理、线程模型、部署流程和性能优化是必要的。理解Context、Loader、Wrapper等组件的作用,以及如何配置和调整Tomcat以适应高并发场景。 2. **Mysql**:数据库知识是任何后端开发者的...

    java筑基(基础)面试专题系列(一):Tomcat+Mysql+设计模式.rar

    在面试中,面试官可能会询问你关于数据库设计、性能优化以及如何处理大数据量场景的问题。 设计模式是软件设计中的经验总结,它们是解决常见问题的最佳实践。在Java面试中,设计模式是必不可少的知识点。常见的设计...

    Tomcat+MySQL为自己的APP打造服务器(4)完结篇Demo

    在本教程中,我们将深入探讨如何使用Tomcat作为应用服务器,以及MySQL作为数据库,来构建一个支持Android客户端的...在实际开发中,还需要考虑安全性、性能优化、异常处理等多个方面,确保服务器端的稳定和高效运行。

    网上商城java MyEclipse+Tomcat+Mysql

    此外,性能优化也是关键,例如使用缓存技术、数据库索引、异步处理等方法提升系统响应速度。 8. **前端技术**: 虽然主要讨论的是后端技术,但一个完整的网上商城还会涉及到前端技术,如HTML、CSS、JavaScript,可能...

    在RedHat_AS5.0下搭建Apache+MySQL+PHP+Tomcat+JSP平台

    1. 调整Apache和Tomcat的配置以优化性能,如调整并发连接数、内存使用等。 2. 设置防火墙规则,只允许必要的端口对外访问。 3. 对数据库进行安全配置,如修改默认root用户密码,限制远程访问等。 完成上述步骤后,...

    JSP+MYSQL+Tomcat网上书店完整源码

    此外,数据库设计和优化也是关键,例如,合理的表结构设计、索引的创建以及查询性能的调优。 Tomcat作为Apache软件基金会的开源项目,是一款轻量级的Java应用服务器,它支持Servlet和JSP标准。在这个网上书店项目中...

    TOMCAT+mysql+ODBC搭建网站

    在实践中,可能需要进行调试和性能优化,例如调整Tomcat的线程池大小、内存分配、数据库查询效率等。 总的来说,搭建TOMCAT+MySQL+ODBC的网站需要理解Web服务器、数据库服务器和它们之间的通信方式。这涉及到服务器...

    linux+tomcat+mysql+solr调优

    虽然给定的部分内容中没有提及具体的Solr调优方法,但在实际应用中,Solr的性能优化可以从以下几个方面着手: 1. **索引结构优化**:合理设计索引结构,包括字段类型、分词器的选择等。 2. **查询优化**:使用高效...

    tomcat+mysql配置

    ### Tomcat+MySQL配置详解 #### 一、前言 在搭建Web应用开发环境时,经常需要配置Tomcat与MySQL数据库的连接。这对于初学者来说可能会遇到不少问题。本文将详细介绍如何从零开始配置Tomcat与MySQL,并确保两者能够...

Global site tag (gtag.js) - Google Analytics