8 Star 48 Fork 21

CDK8S / tkey-docs

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
performance.md 2.24 KB
Copy Edit Web IDE Raw Blame History
cdk8s-zelda authored 2019-08-27 20:31 . init

TKey SSO Server 压力测试

Gatling 方式压力测试

  • 不带参数运行命令:
mvn gatling:test -Dgatling.simulationClass=test.load.oauth.TkeyPasswordGrantType
  • 带参数运行命令:
mvn gatling:test -Dgatling.simulationClass=test.load.oauth.TkeyPasswordGrantType -DtotalConcurrency=1000 -DrepeatTime=10 -DinjectTime=10

JMeter 5.1 方式压力测试

  • 如果 JVM 不够可以修改 bin/jmeter 文件中的:"${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"
cd /Users/youmeek/software/apache-jmeter-5.1.1/bin

./jmeter -n -t /Users/youmeek/TkeyPasswordGrantTypeJMeter.jmx -l /Users/youmeek/tkeyReport.jtl -e -o /Users/youmeek/htmlResult

wrk 简单压力测试

sudo yum groupinstall 'Development Tools'
sudo yum install -y openssl-devel git

git clone --depth=1 https://github.com/wg/wrk.git wrk
cd wrk
make

sudo cp wrk /usr/local/bin
wrk -t5 -c5 -d10s --script=/opt/post-wrk.lua --latency http://sso.cdk8s.com/sso/oauth/token
  • post-wrk.lua
wrk.method = "POST"
wrk.body   = "grant_type=password&client_id=test_client_id_1&client_secret=test_client_secret_1&username=admin&password=123456"
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"

如何继续提高 QPS

在压力测试过程中我们用 JProfile 监控了 CPU 情况,具体如下图:

JProfile CPU

经过上图我们已经有明确的答案:checkClientIdParam()

在校验 client 正确性的地方,读取了 redis,这个过程如果用二级缓存,经过我们压力测试可以再提高 15~20% 左右的 QPS。但是这样改造复杂度会提高,如果 TKey SSO Server 是多节点情况下,同步变更是个麻烦事,还要再引入 MQ,我觉得不划算。中小企业不建议为了这点性能提高系统复杂度。

对于中小企业发展,最核心的还是走对业务,能有一个随时掉头,变更方向的能力,所以系统复杂度一定要尽可能不高,或者契合当前企业的发展情况。

Comment ( 0 )

Sign in for post a comment

1
https://gitee.com/cdk8s/tkey-docs.git
git@gitee.com:cdk8s/tkey-docs.git
cdk8s
tkey-docs
tkey-docs
master

Search