jClarity/slow-crud-app

语言: AspectJ

git: https://github.com/jClarity/slow-crud-app

具有Spring和Hibernate的“典型”Web CRUD应用程序以及许多可配置的不良性能特征
A 'typical' Web CRUD App with Spring and Hibernate and lots of configurable bad performance characteristics
README.md (中文)

慢CRUD应用程序内

slow-crud-app是一个使用Spring,Hibernate和其他“典型”企业Java技术的“典型”Web CRUD应用程序。 它的主要目的是通过JMX提供可配置的不良性能特性,例如死锁,重 磁盘I / O,繁重的网络I / O,CPU垃圾等

slow-crud-app可用于测试性能理论,教学,性能调优研讨会等。

slow-crud-app是一个虚假的应用程序,它为只有一份工作的人(onlyhadonejob.com)提供工作列表。

放弃

该项目并非真正的“真实世界”应用程序。这是一个实验项目,目标是提供一个 可插入框架,在其中添加不同的性能方案,如死锁,等待第三方资源, 垃圾收集暂停,磁盘I / O等等。

在slow-crud-app中故意执行代码很糟糕,请先在jClarity之友邮件列表上查询!

如何帮助

目前,通过“jClarity之友”社区邮件列表讨论了slow-crud-app的开发。你可以注册 通过http://www.jclarity.com/。

不良表现特征

已实施以下性能特征:

  • 等待第三方资源(RESTFul调用)
  • CPU绑定代码
  • 记录和磁盘I / O太多
  • 上下文切换太多
  • 锁争用问题
  • 僵局

建立slow-crud-app

slow-crud-app是一个Maven 3项目

mvn clean install

运行slow-crud-app

slow-crud-app是一个支持Jetven插件的Maven 3项目,将在localhost上启动:8080 / had_one_dismissal

cd had-one-dismisaal
mvn jetty:run

此外,您还想提出第三方服务

cd auth-service
mvn jetty:run

运行性能测试

如果要运行性能测试套件,则需要使用线束指向正在运行的服务器 这两个。所以你可能想做这样的事情:

cd had-one-dismisaal
mvn jetty:run
cd auth-service
export MAVEN_OPTS="-Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
mvn -Djetty.port=9000 jetty:run
cd sca-test-harness
mvn -Djclarity.hod.host=localhost -DJMX_AUTH_SERVER_HOST=localhost -DJMX_AUTH_SERVER_PORT=1100 exec:java

练习可以通过csv文件自定义。有关详细信息,请参阅src / main / resources /。

配置slow-crud-app

ALL

本文使用googletrans自动翻译,仅供参考, 原文来自github.com

en_README.md

slow-crud-app

slow-crud-app is a 'typical' Web CRUD App using Spring, Hibernate and other 'typical' enterprise Java technologies.
It's key purpose is to provide configurable bad performance characteristics through JMX, such as Deadlocks, heavy
Disk I/O, heavy Network I/O, CPU trashing etc.

slow-crud-app can be used for testing performance theories, teaching, performance tuning workshops etc.

slow-crud-app is a fake application which hosts job listings for people who only had one job (onlyhadonejob.com).

Disclaimer

This project is not truly a 'real world' application. It is an experimental project with the goal of providing a
pluggable framework in which to add different performance scenarios such as Deadlocks, waiting on 3rd party resources,
Garbage Collection pauses, Disk I/O and much, much more.

There is deliberately badly performing code in slow-crud-app, please do ask on the Friends of jClarity mailing list first!

How to help

Development of slow-crud-app is currently discussed through the "Friends of jClarity" community mailing list. You can sign-up
via http://www.jclarity.com/.

Bad Performance Characteristics

The following performance characteristics have been implemented:

  • Waiting on 3rd party resource (RESTFul call)
  • CPU Bound code
  • Too much logging and Disk I/O
  • Too much context switching
  • Lock contention problems
  • Deadlock

Building slow-crud-app

slow-crud-app is a Maven 3 project

mvn clean install

Running slow-crud-app

slow-crud-app is a jetty plugin enabled Maven 3 project and will start on localhost:8080/had_one_dismissal

cd had-one-dismisaal
mvn jetty:run

Also, you'll want to bring up the 3rd party service

cd auth-service
mvn jetty:run

Running Performance Tests

If you want to run the performance testing suite then you need the harness to point to the server running
both of these. So you might want to do something like this:

cd had-one-dismisaal
mvn jetty:run
cd auth-service
export MAVEN_OPTS="-Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
mvn -Djetty.port=9000 jetty:run
cd sca-test-harness
mvn -Djclarity.hod.host=localhost -DJMX_AUTH_SERVER_HOST=localhost -DJMX_AUTH_SERVER_PORT=1100 exec:java

The exercises are customisable via a csv file. See src/main/resources/ for details.

Configuring slow-crud-app

TODO