您的位置:首页 > 编程语言 > Java开发

springboot jar 包运行速度比在eclipse中慢15倍问题发现解决

2019-04-03 09:28 369 查看

       用springboot 写了一个接口项目,基于activeMq接受发送的http协议的接口项目,在开发工具eclipse中测试的时候,压测速度每秒1w条左右,将项目放到打包成jar 包放到Linux生产机上后速度大幅下降,只有100条/s,很是奇怪,虽然测试时候没有进行网络传输,但是速度不应该这么慢。于是在eclipse所在的机器上运行打包好的jar,执行jar -Xms1g -Xmx1g -jar ***.jar ,发现速度同样会下降严重,只有600/s,于是考虑是否是初始堆栈,最高堆栈空间是否配置小了,于是配成4g 发现速度也没有明显提升,最后干脆不配置堆栈,发现速度还是没有提升多少。于是可以排除是堆栈配置的问题。

    想到可能跟日志有关,使用的日志是logback,springboot 推荐日志 日志配置如下:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

<!--     <appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L- %msg%n
            </pattern>
        </layout>
    </appender> -->

    <appender name="fileInfoApp"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        <!-- 滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路径 -->
            <fileNamePattern>logs/http-gateway.info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorApp"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>

        <!-- 设置滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路径 -->
            <fileNamePattern>logs/http-gateway.err.%d.log</fileNamePattern>

            <!-- 控制保留的归档文件的最大数量,超出数量就删除旧文件,假设设置每个月滚动, 且<maxHistory> 是1,则只保存最近1个月的文件,删除之前的旧文件 -->
            <MaxHistory>3</MaxHistory>

        </rollingPolicy>
    </appender>
    <root level="INFO">
        <!-- <appender-ref ref="consoleApp" /> -->
        <appender-ref ref="fileInfoApp" />
        <appender-ref ref="fileErrorApp" />
    </root>
</configuration>

感觉可能跟控制台输出有关系 于是注释掉了控制台输出,然后重新打包 ,发现速度就恢复了。

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐