1) Jetty : 作用:Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。 特性:易用性,可扩展性,易嵌入性

2) Jetty 安装: tar zxf jetty.tar.gz -C /usr/local/jetty/ #解压

Java -jar stat.jar #启动

jetty export JETTY_HOME=/usr/java/jetty #将Jetty路径添加到环境变量

3) Jetty 配置: etc:该路径用于存放Jetty的配置文件 examples:该路径用于存放Jetty的示例。 legal:该路径用于存放该项目的Lisence信息。 lib:该路径用于存放运行Jetty必需的J缸文件。 modules:该路径用于存放Jetty的模块,包括API文档。 patches:包含一些补丁说明。 pom.xm1:是Jetty的build文件,该文件不是Ant的build文件,而是mavaen2的build文件。 project-site:包含Jetty的网站的必需的样式文件。 readme.txt:包含最基本的使用信息。 start.jar:启动Jetty的启动文件。 version.txt:Jetty版本更新日志的简单版本。 webapps: 该路径用于存放自动部署的 Web 应用,只要将用户的 Web 应用复制到该路径下,Web 应用将自动部署 webapps-plus: 存放一些用于演示 Jetty 扩展属性的 Web 应用,该路径下的 Web应用也可自动部署。

4) Jetty 与Tomcat 相同点: Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。 不同点: 1.架构比较 Jetty的架构比Tomcat的更为简单 Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单。 Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展。 2. 性能比较 Jetty和Tomcat性能方面差异不大 Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等等。 Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能。 Jetty默认采用NIO结束在处理I/O请求上更占优势,在处理静态资源时,性能较高 Tomcat适合处理少数非常繁忙的链接,也就是说链接生命周期短的话,Tomcat的总体性能更高。 Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差。 3.其它比较 Jetty的应用更加快速,修改简单,对新的Servlet规范的支持较好。 Tomcat目前应用比较广泛,对JavaEE和Servlet的支持更加全面,很多特性会直接集成进来。

5) Jetty优化: 一、一般调优的基本过程 1.明了需要调优的系统架构 2.设定性能调优的目标 3.明了目标当前的性能情况 4.找出目前的性能瓶颈的所在 5.解决引起性能瓶颈的根本问题 6.重复以上过程直到达到设定目标性能为止 二、性能指标: 崩溃点:同时多少并发的时候,服务器Down掉? 吞吐量:多少人一起来,都没问题? 并发数:每秒能处理多少人? 响应时间:每人需要等待的时间多长? 三、调优点: 1.硬件配置优化: 虚拟机 物理机 CPU 内存 2、系统优化(Linux) 已经根据门户的方式去优化。 3.JVM参数优化: -Xms:设置jvm内存的初始大小 -Xmx:设置jvm内存的最大值 -Xmn:设置新域的大小(这个似乎只对 jdk1.4来说是有效的,后来就废弃了) -Xss:设置每个线程的堆栈大小(也就是说,在相同物理内存下,减小这个值能生成更多的线程) -XX:NewRatio :设置新域与旧域之比,如-XX:NewRatio = 4就表示新域与旧域之比为1:4 -XX:NewSize:设置新域的初始值 -XX:MaxNewSize :设置新域的最大值 -XX:PermSize:设置永久域的初始值 -XX:MaxPermSize:设置永久域的最大值 -XX:SurvivorRatio=n:设置新域中Eden区与两个Survivor区的比值。(Eden区主要是用来存放新生的对象,而两个 Survivor区则用来存放每次垃圾回收后存活下来的对象) 监控内存 CPU 常见的错误 : java.lang.OutOfMemoryError相信很多开发人员都用到过,这个主要就是JVM参数没有配好引起的,但是这种错误又分两种:java.lang.OutOfMemoryError: Java heap space和 java.lang.OutOfMemoryError: PermGen space,其中前者是有关堆内存的内存溢出,可以同过配置-Xms和-Xmx参数来设置,而后者是有关永久域的内存溢出,可以通过配置-XX:MaxPermSize来设置。 4.容器优化: a.线程池 线程池线程资源大小确定了服务器的服务能力 默认大小不一定能满足生产环境 线程分配方式决定了服务器的资源利用效率 固定线程数处理多任务,代表:JDK的ThreadPoolExecutor 以最大线程数为限处理多任务,代表:Jetty自带QueuedThreadPool Work-stealing 分配,Jetty目前没有这个实现 Jetty中配置实例: maxThreads:表示最多同时处理的连接数。应该将线程数(最大线程数)设置比最大预期负载(同时并发的点击)多25%(经验规则)(低配置用户可通过降低maxThreads并同时增大 acceptCount值来保证系统的稳定)。 acceptCount:当同时连接的人数达到maxThreads时,还可以接收排队的连接。 minSpareThread:指“启动以后,总是保持该数量的线程空闲等待”;设置比预期负载多25%。 maxSpareThread:指“如果超过了minSpareThread,然后总是保持该数量的线程空闲等待”;设置比预期负载多25%。 其中主要修改两个参数maxThreads和acceptCount值。增加maxThreads,减少acceptCount值有利缩短系统的响应时间。但是maxThreads和acceptCount的总和最高值不能超过6000,而且 maxThreads过大会增加CPU和内存消耗,故低配置用户可通过降低maxThreads并同时增大acceptCount值来保证系统的稳定。 connectionTimeout:连接超时,最大超时时间,当响应速度慢的时候,通过调整该参数,来平衡正确率和服务器资源的回收。 b.Connectors 选择Connector时,需要考虑应用自身的特点,例如股票、聊天室. TCP 连接数 Keep-Alive Java BIO Connectors SocketConnector (HTTP) Ajp13SocketConnector (AJP) SslSocketConnector(SSL) Java NIO Connectors electChannelConnector(HTTP) SslSelectChannelConnector(SSL) Acceptors 表示同时在监听read事件的线程数 默认值是 1 典型值范围 1~(处理器内核数+1) 对于NIO 来说,设置为(处理器内核数+1)比较合适 maxIdleTime 表示连接最大空闲时间 默认值是 200000,一般这个值都太大了 典型值 3000 左右足够 对AJP来说一般设置为-1,表示连接需要一直保持 LowResourcesMaxIdleTime 表示线程资源稀少时的maxIdleTime 默认值是 -1,表示没有设置 一般设置值应该<=maxIdleTime lowResourcesConnections 只有NIO才有这个设置,表示连接空闲时的连接数,大于这个数将被shutdown 默认值是 0,表示该设置没有生效 每个acceptor的连接数=(lowResourcesConnections+acceptors-1)/acceptors AcceptQueueSize 连接被 accept 前允许等待的连接数即Socket的Backlog ,默认 50 SoLingerTime 具有指定逗留时间(以毫秒为单位) 即socket的setSoLinger,默认关闭 ResolveNames 是否反查 getRemoteHost() 默认false c.JVM Jetty性能调优点-JVM JVM参数调整主要涉及两个方面 堆/栈内存大小调整 Xmx/xms 最大/最小堆大小 xmn 新生代大小 -XX:MaxPermSize 持久代堆大小 垃圾分配回收算法考虑暂停时间、吞吐量选择不同算法 串行/并行/并发收集 d.Content Cache 动态内容不会被cache 静态内容才会被cache maxCacheSize 256,000,000 maxCachedFileSize 200,000,000 maxCachedFiles ?2,048 useFileMappedBuffer ?true 可以通过etc/webdefault.xml配置 e.冗余组件去除 去除多余的Connector 去除不需要的构建Handler 例如SessionHandler,ServletHandler 关闭不必要的服务 例如 jmx-console。(JBoss) 5.代码优化: 在高峰期,减去日志记录的操作,或者把日志暂时先缓存起来,使用异步处理的方式。 减少一些数据库操作。 减少NC ×××等匹配方式。 6.数据库优化: 索引 视图 7.其他: 压缩css,js,图片 使用浏览器缓存 CDN加速 分布式缓存服务器 集群、负载均衡 三.调优策略: a.关键点,找到瓶颈,给瓶颈分配更多的资源,或者减轻其工作量。 四、调优原则 a.每台服务器,所能承载的参数,都会有差异,尤其是内存 CPU的配置不一致。 b.每种服务所需的计算资源各不相同,要根据服务的偏向不同,而去把最好的资源,分配到最需要的地方 c.性能优化,是永恒的话题,没有永久最优解,只能查出目前最优解,是一个不断优化的过程。 五、调优技巧 1.粗狂的扫点与详细的指标相结合,尽量让验证调优的过程更敏捷,让主要的指标稳定下来,在确定指标前,再使用详细的方式去测出各种指标。 2.分轮测试,在测试结果中,找出各个参数的规律。为调优提供指导数据。 3.在程序增加计数器,验证LR的请求次数。 4.在程序每个步骤,增加多一些时间,检查下,到底是卡在哪个步骤,尤其是操作数据库前后。

转载于:https://blog.51cto.com/5404542/1727607

jetty的安装,优化相关推荐

  1. Yade安装+优化教程

    离散元软件Yade实用安装+优化教程 作者:xyn 前言:Yade是一款非常优秀的离散元软件,然而其安装过程十分的复杂.笔者将从自己成功的安装经验出发,为大家指出一条最简单的道路. 安装ubuntu1 ...

  2. linux jetty 安装目录结构,Linux下Jetty 9安装部署

    Jetty简介 Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布. ...

  3. ubuntu下安装优化调节软件——ubuntu tweakailurus

    软件名称:Ubuntu Tweak Ailurus Ubuntu Tweak界面 Ailurus界面 功能:系统调节和优化 我的安装环境:Ubuntu 10.04 两款软件都是系统优化辅助软件,前者大 ...

  4. linux jetty 配置文件,linux中Jetty的安装和配置方法

    Jetty Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开 ...

  5. CentOS-6.5操作系统环境安装优化

    CentOS-6.5操作系统环境优化 1.        设置网络 vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.        配置DNS(上图配置完 ...

  6. ubuntu22.04 安装优化(主题,软件,换源,插件扩展)

    一.安装 1.对于使用VM安装,这里就不再多说了 2.对于用系统安装,可以在网上招一部分资料 二.主题优化 2.1.安装主题和对应主题提供的生态圈(比如图标字体等等) 1.这是ubuntu的官方主题网 ...

  7. Jetty的安装、配置和使用(三种使用方式)

    Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开发人员可以将 ...

  8. linux查看jetty安装目录,linux中Jetty的安装和配置方法

    Jetty Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开 ...

  9. SSD固态硬盘的安装优化点点收集

    一.来源http://www.chiphell.com/thread-167218-1-1.html前面 安装系统顺序 1.用光盘正常安装WIN7 不要用[狗死特安装]安装前我SSD是没分区的,所以系 ...

  10. MATLAB安装优化工具包OPTI Toolbox

    Matlab自带优化工具箱提供了fmincon等诸多函数解决含约束条件的优化问题,但如果需要求解含整数约束的混合优化问题,fmincon就不是特别合适了,虽然提供了遗传算法优化函数ga,不过速度可能比 ...

最新文章

  1. ubuntu如何实现双屏显示(转)
  2. 计算机专业课题 结题报告,计算机结题报告 - 结题报告 - 书业网.doc
  3. MapReduce不同进度的Reduce都在干什么?
  4. git获取管理员权限 windows_win10不兼容git2.7.3+版本
  5. linux查看通信延迟,低优先级进程延迟实时进程中的串行通信(Linux)
  6. [Spring]-各种标注-零配置
  7. MySQL案例分析--QueryCache
  8. 分析 Web 资源的访问过程(Servlet 程序访问过程)
  9. 平衡二叉树AVL删除
  10. ENSP配置 实例十一 综合实验
  11. ASP.NET MVC资源文件多语言实现方式
  12. C#强制关闭Excel进程(通过COM使用Excel时)
  13. [bzoj5301][Cqoi2018]异或序列
  14. Python全栈(第一部分)day1
  15. 6月29 Electron的第一课
  16. javascript在IE和Firefox下的不同之处
  17. Photoshop插件-删除亮调通道蒙板-脚本开发-PS插件
  18. 小程序更新数组操作push、pop、unshift、shift
  19. 计算机系统感染了病毒怎么办,老司机教你电脑感染了病毒怎么解决
  20. python常见的缩进错误_python常见编译错误:IndentationError缩进错误

热门文章

  1. ICU - International Components for Unicode
  2. httphandler防图片盗链
  3. 098 元类(metaclass)
  4. BZOJ 1013: [JSOI2008]球形空间产生器sphere
  5. webpack(三)使用 babel-loader 转换 ES6代码
  6. JS String,Array
  7. Mybatis常见配置错误总结
  8. MyEclipse编码设置
  9. 大数据量下求均值的方法
  10. 在DataGrid页眉上添加全选的CheckBox控件