Tomcat内存优化第二篇 - 个别优化参数详解_路克森的博客-程序员秘密_tomcat内存优化参数

技术标签: TOMCAT 调 优  tomcat  tomcat调优  

博主个人主页
上一篇

前言

今天我们接着来说tomcat这部分的小知识哦 上一篇我们提到了如何设置我们tomcat的内存大小 这一篇主要来说一下tomcat的优化思路 以及如何能够让tomcat抗住并发呢?

开发

众所周知 我们一个完整的系统肯定不是一个单体应用就能扛得住的 在大并发的压迫下 如果我们的程序还是个单机系统 那肯定会会快就挂了 所以我们就不得不做出改变 那么常见的tomcat优化或者说高可用方案就是做集群了 当然这是很好的方式 但是在做集群之前是不是需要对tomcat做一些什么 让我们的tomcat更加健壮 然后再给tomcat做集群 这里就使我们上一篇的设置的参数了 对我们tomcat自身进行强化 在来做集群 是不是集群就更稳固 分布式中大部分都是配置 我们写代码来做高并发的话 是不显示的 代码写的再好 也只是细微的性能影响重要的还是配置 但是我们程序在服务器中运行 服务器总还是需要内存的 当我们在给tomcat设置内存的时候 是必须要给宿主机留一些空间的 起码要有4分之1的空间 其次我们就可以通过nginx来做负载均衡到我们强化过的tomcat上 增大我们系统的可用性 能够有更高的QPS 本文中所谈到的仅仅只是tomcat了 其他的暂不涉及 使用nginx这种代理技术 能够明显的提高系统的性能 当然nginx也可以做集群 总之 分布式场景下 都是集群 为了保证系统可用性不得不这样做 所以说 分布式开发是加大了程序的复杂度 但是同时加高了程序的可用性 凡事都是有利有弊 鱼和熊掌不可兼得 建议安装的linux服务器安装64位系统 32位的会有内存限制

一个程序 成熟的应用总是有非常多的环节来完成每一个任务 每一项操作 我们的程序对用户是透明的 我们背后可能花费很大力气维护的程序 在用户面前就是点击一下的事情 用户不知道 也不关心 背后发生了啥 主要程序能够使用就行 这才是用户关心的 要想用户用的好 留住长久客 自己的产品一定要好 一定要有经得起大并发的挑战~ 这也是对程序员的一个挑战 所以作为一个优秀的程序员还是不容易的 多多学习 多多交流 多多练习

在linux中查看自己的tomcat是否启动了

两种方式都可以 本文中使用的使windows系统 在开发部署的时候一定要使用linux系统 linux系统稳定可靠 比起windows系统来说 如果没有学习过linux系统的童鞋们呢 可以去看一下我们的linux基础教程哦

ps -ef | grep 8080
ps -ef | grep tomcat

在linux中是没有界面的 但是我们有想查看怎么办呢? 其实在java中还是有非常多好用的工具的

碧如我们的jmapjava的堆映射信息都会打印出来 能够看到我们的参数是否设置生效了 我们通过上面的命令在linux中得到 pid 然后通过如下命令执行即可看到

$ jmap -heap pid

在这里插入图片描述
一样可以看到我们的JVM参数信息啦~

要记得 我们的 Eden 区 和 FORM TO 区 是 8:1:1 的 (占用内存空间)

个别参数解释

下面的参数在第一篇有提及

-XX:PermSize=256m
-XX:MaxPermSize=512m

这两个就是设置我们的永久代的大小的但是需要注意的使 在JDK8的时候替换为了元空间(metaspace) 最好在JDK8使用的时候 替换为 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m

-XX:+AggressiveOpts

一个非常神奇的参数 会自动注入新的特性 在JDK版本都可以用

-XX:+UseBiasedLocking

会自动使用一个线程锁进行优化 对请求时间长短不一样的请求会自动优化 有一套自己的优化机制 对于高并发访问很重要

下一篇

结语

今天的分享就到这里~ 下一篇说 tomcat 的 并发优化方法~~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39057639/article/details/102040102

智能推荐

黑马程序员——Map_Camwly的博客-程序员秘密

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   Map属于一种映射关系的集合。 Map集合里存在两组值,一组是key,一组是value。Map里的key不允许重复。通过key总能找到唯一的value与之对应。这个关系就好比如说,一栋楼,她的房号是不可以重复的,但是里面的布置可以一样。  如下是Map中的几个重要方法:

微服务用 Spring Cloud 多还是 Dubbo 多?_Java后端技术的博客-程序员秘密

往期热门文章:1、《往期精选优秀博文都在这里了!》2、真香!IDEA 最新版本,支持免打扰和轻量模式!3、微服务如何防止雪崩?阿里开源之Sentinel限流、熔断来帮你!4、为什么很多S...

UVA 1658 Admiral (费用流+拆点)_明日可7的博客-程序员秘密

分析:把每个点分为 n 和 n'  ,两点之间连一条容量为1,费用为0的边,这样就能保证一个点只能被经过一次。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <map&...

成为项目经理需要哪些条件或证书?_lhlyy77的博客-程序员秘密_项目经理证书报考条件

1.人员开发能力1.项目经理应创造一种学习环境,使员工能从他们所从事的工作中,从他们所经历或观察的情景中得到知识。如尽可能给成员分配全面的任务,使他们丰富知识。如一个没用过Excel的人去用Excel处理数据,这就能使他学会使用Excel。或是让一个阅历不足的成员能跟经验丰富的成员一起工作,使新的成员从经验丰富的人那里学到更多的东西。2.让他们参加正式的培训课程。2.领导能力1.项目经理需要采取民主式的领导方式对于项目经理而言,采用这种领导方式比主要依靠职权的独裁式或命令式的管理方式更为

Axure RP使用攻略--带遮罩层的弹出框(9)_汐若雨的博客-程序员秘密_axure点击弹出浮层

实现目标:1、   点击按钮弹出带遮罩层的对话框;2、   页面上下左右滚动时,弹出的对话框水平和垂直始终居中。实现步骤如下:1、 拖入编辑区2个矩形,并点右键—转换—转换为动态面板;2、 双击其中一个动态面板设置标签为“遮罩层”(看个人喜好随便命名),并双击状态1进入编辑;3、 点击状态1里面的矩形,设置大小与网站页面大小相同,以便完全遮盖;然后,设置矩形边框为“无”;最后设置填充色的透明度为50%(看个人喜好),并选择填充色为灰色(看个人喜好);.

cocos2dx之创建Button_漫步者、的博客-程序员秘密_cocos2dx 创建button

利用CCControlButton创建一个Button,代码如下:void MyBottonBastLayer::initLayer() { CCSize size = CCDirector::sharedDirector()->getWinSize(); CCScale9Sprite *psc9Selected = CCScale9Sprite::create("btn-ab

随便推点

2019年上半年程序员考试第六题目,解析_dongxinddd123的博客-程序员秘密

题目大意: 现如今线下支付可以用现金(Cash)、移动支付、银行卡(Card)(信用卡(Creditcard)和储蓄卡(DebitCard))等多种支付方式(PaymentMethod)对物品(Item)账单(Bill)进行支付。 下图是某系统的列类图解析代码:#include<iostream>#include<vector>#include&...

21年最新-李沐-动手学深度学习第二版_lqfarmer的博客-程序员秘密_动手学深度学习第二版

阿斯顿·张、李沐联合编写的,面向中文读者的能运行、可讨论的深度学习教科书《动手学深度学习》又更新了。 bshq:21年最新-李沐《动手学深度学习第二版》中、英文版免费分享 【关注第二版更新】英文版前八章已翻译至中文版第二版,并含多种深度学习框架的实现。英文版还新增了注意力机制、BERT、自然语言推理、推荐系统和深度学习的数学等。如果想及时获取最新修订或增添的信息, 请关注本书的中文开源项目和英文开源项目。 【购买第一版纸质书(上架4周重印2次...

asp毕业设计—— 基于asp+access的期刊稿件处理系统设计与实现(毕业论文+程序源码)——期刊稿件处理系统_毕业设计方案专家的博客-程序员秘密

1.本课题主要就互联网中的网站建立展开研究,通过对asp语言和数据库等技术的学习,设计出基于Web的期刊系统。该系统设置了三级用户,每级用户拥有对系统操作的不同权限,此权限由系统管理员即admin级别用户来管理。用户登录后进行在线投稿,查询稿件状态,包括评审费查询,版面费查询,收录查询等。评审专家登录后进行稿件评阅等。期刊管理员登录管理期刊文章,管理评审专家列表,分发新投稿给评审专家,处理收稿信息,收评审费信息,评审结果信息,收版面费信息等。2.本文主要内容主要包括如下内容。提示......

android studio容易出现的问题_fjnu_se的博客-程序员秘密

**android studio容易出现的问题**​作为一名android studio的初学者,使用android studio的时候出现了诸多问题,最终多方面查询相关资料后得以解决,其中几个主要的问题。一、sdk路径的问题,因为是很久之前的问题了,没有保留出现问题时的截图,但是解决方法还记得。首先先试试重启电脑,有时候就是加载出错导致的,重启有时候就能解决问题,原本能运行的,有时候就会不能运行。我在尝试多种方法无法修复的时候最终发现只是我加载出错了,重启就可以了,但是在过程中了解了许多处

[CPU+目标检测] openvino实现Robomaster自瞄_三丰杂货铺的博客-程序员秘密_robomaster自动瞄准

这篇文章为大连理工大学Robomaster凌Bug战队的李乐恒同学成果!他在CPU上利用openvino这样的深度学习算法实现了Robomaster的自瞄,大大提高了robomaster自瞄的上界,且达到了良好的检测效果。所有代码全部开源, github主页如下:https://github.com/Len-Li/openvino-robomaster文章目录0.introduction1.1 使用的模型库1.2 数据集1.3 训练+评测1.3.1 安装TensorFlow Object Detec

接口隔离原则详解--七大面向对象设计原则(4)_Geek.Fan的博客-程序员秘密

接口隔离原则的来源:  类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。因为使用多个专门的接口比使用单一的总接口要好,所以便提出了接口隔离原则。接口隔离原则的目的:  将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。接口隔离原则的两种定义

推荐文章

热门文章

相关标签