在单数据库,单计算机服务下随着用户的增加,随之而来的会出现很多问题,诸如连接、jvm空间不足等等,这些问题带来的后果就是性能大打折扣,客户投诉。当然处理办法有多种,比如添加服务,做负载均衡,添加缓存服务,动静分离等等。这里我们只谈谈对服务器(tomcat)和数据库(mysql)的优化。
-
tomcat相关
我们在做大数据测试时常常会碰到这样一类错误: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)
熟悉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的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环境集成工具"是一个组合了三个核心组件的解决方案,它们分别是Java Development Kit(JDK)、Apache Tomcat服务器和MySQL数据库。这个集成工具旨在简化开发和部署过程,帮助开发者快速建立一...
它的高速读写能力使其成为优化Web应用性能的理想选择,可以减少对数据库的访问,提高响应速度。 Keepalived是一个用于网络服务高可用性的工具,它可以监控系统服务,并在服务出现故障时进行快速切换,确保无中断的...
Java网站基础环境构建通常涉及到三个核心组件:Tomcat(应用服务器),MySQL...同时,随着技术的发展,了解如何优化和维护这样的环境,如调整数据库索引、监控服务器性能、备份策略等,也是开发者必须掌握的技能。
《Android+Tomcat+MySql+jsp一万行代码无线点餐系统详解》 在现代餐饮行业中,技术的应用已经成为提升服务效率、优化客户体验的重要手段。本文将深入解析一个基于Android客户端、Tomcat服务器、MySQL数据库以及JSP...
例如,文件上传需要防止恶意文件,聊天功能需要防止SQL注入,而性能优化则可能涉及到缓存策略、数据库索引等。 总结来说,这个实例涵盖了Web开发的多个关键环节,包括前端展示、后端逻辑处理和数据存储。通过学习和...
4. 性能优化:考虑服务器性能和网络延迟,优化数据传输和处理速度。 综上所述,这个项目涵盖了移动应用开发、服务器端编程、数据库管理和网络通信等多个领域,是学习和实践Android、Tomcat、MySql和Socket技术的...
在聊天应用中,可能需要创建用户表、好友关系表以及聊天记录表,并通过合适的索引优化查询性能。 标签中提及的“一万行代码”意味着这是一个相对复杂的项目,涉及的代码量较大,涵盖了许多功能模块,如用户注册、...
5. **测试与优化**:确保所有服务器都能正确读取和写入session,同时监控Redis的性能,以防止session过载导致的问题。 这个视频教程可能涵盖了这些步骤的详细过程,包括配置文件的示例和可能遇到的问题解决方案。...
了解其工作原理,如生命周期管理、线程模型、部署流程和性能优化是必要的。理解Context、Loader、Wrapper等组件的作用,以及如何配置和调整Tomcat以适应高并发场景。 2. **Mysql**:数据库知识是任何后端开发者的...
在面试中,面试官可能会询问你关于数据库设计、性能优化以及如何处理大数据量场景的问题。 设计模式是软件设计中的经验总结,它们是解决常见问题的最佳实践。在Java面试中,设计模式是必不可少的知识点。常见的设计...
在本教程中,我们将深入探讨如何使用Tomcat作为应用服务器,以及MySQL作为数据库,来构建一个支持Android客户端的...在实际开发中,还需要考虑安全性、性能优化、异常处理等多个方面,确保服务器端的稳定和高效运行。
此外,性能优化也是关键,例如使用缓存技术、数据库索引、异步处理等方法提升系统响应速度。 8. **前端技术**: 虽然主要讨论的是后端技术,但一个完整的网上商城还会涉及到前端技术,如HTML、CSS、JavaScript,可能...
1. 调整Apache和Tomcat的配置以优化性能,如调整并发连接数、内存使用等。 2. 设置防火墙规则,只允许必要的端口对外访问。 3. 对数据库进行安全配置,如修改默认root用户密码,限制远程访问等。 完成上述步骤后,...
此外,数据库设计和优化也是关键,例如,合理的表结构设计、索引的创建以及查询性能的调优。 Tomcat作为Apache软件基金会的开源项目,是一款轻量级的Java应用服务器,它支持Servlet和JSP标准。在这个网上书店项目中...
在实践中,可能需要进行调试和性能优化,例如调整Tomcat的线程池大小、内存分配、数据库查询效率等。 总的来说,搭建TOMCAT+MySQL+ODBC的网站需要理解Web服务器、数据库服务器和它们之间的通信方式。这涉及到服务器...
虽然给定的部分内容中没有提及具体的Solr调优方法,但在实际应用中,Solr的性能优化可以从以下几个方面着手: 1. **索引结构优化**:合理设计索引结构,包括字段类型、分词器的选择等。 2. **查询优化**:使用高效...
### Tomcat+MySQL配置详解 #### 一、前言 在搭建Web应用开发环境时,经常需要配置Tomcat与MySQL数据库的连接。这对于初学者来说可能会遇到不少问题。本文将详细介绍如何从零开始配置Tomcat与MySQL,并确保两者能够...