线上问题总结 - 823126028/book_reader GitHub Wiki

rt飙升, 但是外部调用不多。

  1. 考虑gc stw。

  2. 外部依赖时延变长。

qps上不来

  1. 线程数放大 也上不来。load 也不高 考虑内部有锁

jstack 脚本查问题,greys 看时间。

#!/bin/bash

iteration=100
interval=2
pid="$1"

for (( i=1; i<=$iteration; i++ )); do
    echo "================Begin iteration ${i}====================="
     jstack $pid > jstack.${i}.txt
    echo "================End iteration ${i}====================="
    if [ $i -lt $iteration ]; then
       echo "Sleeping $interval seconds..."
       sleep $interval;
    fi
done

Tomcat 性能调优

<Connectorport="7001" protocol="HTTP/1.1" connectionTimeout="15000"redirectPort="8443" maxParameterCount="1000" maxThreads="100"maxPostSize="2097152" acceptCount="8000"useBodyEncodingForURI="true" />

<!--A "Connector" using the shared thread pool-->
<Connectorexecutor="tomcatThreadPool"
               port="7001"protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
                maxThreads="100"
                minSpareThreads="50"
                maxSpareThreads="100"/>

控制 maxThreads,和 acceptCount来限制同时发生的并发访问,减少线程切换

Spring MVC 性能问题

srping mvc 在使用@pathVariable 实现动态传送参数的时候会出现性能问题,原因就是各种匹配规则和额外的CPU运算,在去掉@pathVariable 性能增强。

GC 故障。

  1. full gc原因,经常出现 premotion fail,引起full gc。增大old 区。

  2. 频繁出现ygc,ygc时间特别长,mark时间特别长,主要是因为卡表记录过多,如果map中的young 和 持久代数据经常交互。会导致ygc mark的时间长。

  3. Y区提早晋升导致old 区增长过快。

⚠️ **GitHub.com Fallback** ⚠️