zoukankan      html  css  js  c++  java
  • JAVA Web 应用程序调优影响因素总结

    0.基于JDK1.8环境

    1.JVM参数

        JVM启动模式:web应用程序需要开启Server模式(Linux的jre默认,windows需要指定)

        JVM垃圾而回收器选择:选择G1 垃圾回收算法提高吞吐量和响应时间

        JVM的最大内存和最小堆内存:设置成为一样,避免内存变化。对于程序影响

        JVM卡表的回收设置:卡表的几个魔数 32768、4K和8K

                                            -XX:+UnlockDiagnosticVMOptions

                                            -XX:ParGCCardsPerStrideChunk=4096

          关闭主动GC调用:-XX:+DisableExplicitGC

        JVM偏向锁变换过程影响并发:

    参数描述
    UseSerialGC 虚拟机运行再Client模式下的默认值,打开此开关后,使用Serial+Serial Old的收集器组合进行内存回收
    UseParNewGC 打开此开关后,使用ParNew+Serial Old的收集器组合进行内存回收
    UseConcMarkSweepGC 打开此开关后,使用ParNew+CMS+Serial Old的收集器组合进行内存
    UseParallelGC 虚拟机运行在Server模式下的默认值,打开此开关后,使用Parallel Scavenge+Serial Old(PS MarkSweep)的收集器组合进行内存回收
    UseParallelOldGC 打开此开关后,使用ParallelSeavenge+ParallelOld的收集器组合进行内存回收
    SurvivorRatio 新生代中Eden区域与Survivor区域的容量比值,默认为8,代表Eden:Survivor=8:1
    PretenureSizeThreshold 直接晋升到老年代的对象大小,设置这个参数后,大于这个參数的对象将直接在老年代分配
    MaxTenuringThreshold 晋升到老年代的对象年龄。每个对象在坚持过一次MinorGC之后,年龄就增加1,当超过这个参数值时就进人老年代

       参考JVM调优:https://blog.csdn.net/jl19861101/article/details/88368830

            https://www.jianshu.com/p/a09c59936bf3

    2.服务器TCP链接数量设置:

         TCP协议端口数量理论值:65535,及可以建立理论最多可以基于65535端口建立65535的阻塞式的网络通信IO(BIO)

          但是通过新一代的网络通信IO多路复用技术(NIO),可以实现一个端口,建立多个信道的方式处理网络连接,仅仅在网络建立Accpet 到 接收消息和发送消息字节流

         过程中异步,处理字节流到应用程序内部的过程还是阻塞的过程(采用多线程的方式处理)。

          AIO(异步IO网络模型),在NIO的基础之上,完全的异步操作。

         Linux服务器每一个TCP链接需要打开一个文件,所以Linux服务器的允许打开最大文件链接数量根据需要进行修改

    3.关于程序本身优化

    4.关于程序设计优化

        程序设计采用微服务架构,采用 

    5.关于数据层面优化

        数据库选择合适关系数据库或者非关系数据库或者检索类数据库

        数据库选择合适字段

        关系数据库针对于单表大数据量或分散数据的读写压力采用分库分表的设计方案

  • 相关阅读:
    Kendo UI开发教程(8): Kendo UI 特效概述
    6.3 计算字符在字符串中出现的次数
    有意思的GacUI
    Qt信号量QSemaphore(在线程里使用,结合生产者消费者的问题)
    Qt 自定义事件详细实例(继承QEvent,然后QCoreApplication::postEvent()、sendEvent())
    为什么选择使用 Dropbox 而不是其他品牌同步工具(不要加上多余的功能,要极致和专注)
    DropBox与Box的区别,包括直接的投资人的评价(本地Sync可能还是挺重要的)
    ASP.NET所谓前台调用后台、后台调用前台想到HTTP——实践篇
    8个免费实用的C++GUI库
    .NET 利用反射将对象数据添加到数据库
  • 原文地址:https://www.cnblogs.com/AiYaTou/p/14028472.html
Copyright © 2011-2022 走看看