调优丶负载均衡丶主从

本文介绍了JVM的调优,包括年轻态、年老态和永久态的内存管理,垃圾回收机制的选择以及堆大小设置。接着讨论了Tomcat的优化,如禁用AJP,启用多线程和APR通讯模式,以及调整JVM参数。此外,还探讨了通过Nginx实现的Tomcat负载均衡及其session管理策略。最后,讲解了MySQL的主从复制配置,实现了数据的读写分离,以提升系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jvm调优:

     linux系统啊安装的是centos7版本的,64位操作系统,64位软件,安装了6个cpu和128G内存。

     jvm最要有三个状态:年轻态,年老态和永久态。其中年轻态和年老态属于堆内存。永久态不属于堆内存,属于jvm虚拟机直接分配的。

   年轻态:jvm刚刚分配的java对象。

   年老态:年轻态经过垃圾回收处理后,没有处理的java对象 cope到年老态。

   永久态:存放class对象,method方法。永久态的大小和项目的规模,类和方法的量有关。一般设置为128m。设置的原则是预留空间的30%。

垃圾回收机制有三种:

      串行算法,并行算法,并发算法

吞吐量优先的是并行算法。   响应时间优先的是并发算法

我们设置的是响应时间的并发收集器,将堆大小通过 -xms和-xmx设置为6G。将年轻态通过-xmn4g设置为4g。将年老态设置为并发收集器。 当系统运行10次GC后就对内存进行压缩丶整理。开启年老态的压缩。清理碎片。

tomcat调优:

  禁用ajp协议

 开启apr通讯模式。tomcat默认使用的是bio模式【阻塞io】。

 开启多线程。tomcat默认没有开启多线程。开启多线程可以有效的提高性能。 将maxthreads设置为800.将排队数和maxthreads设置为一样。请求进入tomcat当将maxthreads站满后会进入排队状态。当将排队数也站满后,其他请求就会拒绝。

 开启tomcat的jvm参数:比如通过-server开启server模式,通过-xms和-xmx开启初始堆大小和最大堆大小。一般设置为一样。避免堆空间不断增加或者缩小带来的性能消耗。我们在项目中一般设置为6G。

tomcat负载均衡:

没有做负载均衡之前所有的请求都是一台tomcat处理,这样tomcat承受的压力是非常巨大的,我萌通过nginx做了负载均衡之后将请求分发到多态tomcat进行处理,从而减低每台tomcat所承受的压力,这样的话当一台tomcat宕机额情况下其他的tomcat还可以正常的运行,保证服务不间断。

想买车部署完成,用户登录时验证码输入不正确。考虑到负载均衡默认使用的是轮训策略。也就是说当第一个请求发送到T1上面的时候,session信息就储存到了T1上。点击验证的时候这个请求会发送到T2上。验证码信息存在T1上而验证请求发送到了T2上所以就会提示验证码验证不正确。后来想到ip_hash可以代替原有的轮训策略。ip_hash相当于给请求一个标识。当请求发送到T1上他的下次请求都会发送到T1上。就解决的上述问题的发生。然而会发现当一台服务器宕机,用户信息是储存在这台服务器的session当中,就会需要用户重新登录。这样用户的体验度是极差的。最后通过将session信息储存到redis当中。从而让多台服务器可以共享session信息。就解决该问题的发生。

mysql主从:

 当时做的是一主两从。主库开启一个二进制日志,将自身所有的操作存到二进制日志当中。设置一个serverID保证唯一性。创建用户并给于权限。并且需要知道二进制日志的地址以及名称。

 从库也需要设置serverID保证唯一性。冲过io线程复制二进制日志里的信息存到自身的中继日志当中,这个时候就用到了刚刚创建的用户以及二进制日志的名称和地址。然后通过start sleve启动同步进程。查看查询io和sql线程是否为yes。如果为yes就表示配置成功了。

主从有一定的数据延迟问题。所以我们后台的操作一般用的都是主库。前台项目以及接口项目用的是从库。这样的保证了数据的读写分离。提高了访问性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值