Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BEAM-5985] Create jenkins jobs to run the load tests for Java SDK #7184

Merged
merged 3 commits into from Jan 7, 2019

Conversation

kkucharc
Copy link
Contributor

@kkucharc kkucharc commented Dec 3, 2018

Created builder for preparing Jenkins load tests with DSL for group by key Java load test. It will be extended with other tests, suites and Python SDK in next PRs.


Follow this checklist to help us incorporate your contribution quickly and easily:

  • [ x ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.

Post-Commit Tests Status (on master branch)

Lang SDK Apex Dataflow Flink Gearpump Samza Spark
Go Build Status --- --- --- --- --- ---
Java Build Status Build Status Build Status Build Status Build Status Build Status Build Status Build Status
Python Build Status --- Build Status
Build Status
Build Status --- --- ---

@kkucharc
Copy link
Contributor Author

kkucharc commented Dec 3, 2018

Run Seed Job

@kkucharc
Copy link
Contributor Author

kkucharc commented Dec 3, 2018

Run GroupByKey Java Load Test Direct

@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch from e2bfc84 to 6dc237c Compare December 3, 2018 17:16
@kkucharc kkucharc changed the title BEAM-5985 Create jenkins jobs to run the load tests for Java SDK [BEAM-5985] Create jenkins jobs to run the load tests for Java SDK Dec 3, 2018
@kkucharc
Copy link
Contributor Author

kkucharc commented Dec 3, 2018

Run Seed Job

@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch 2 times, most recently from 0aacba3 to 2675e26 Compare December 5, 2018 13:22
@robertwb
Copy link
Contributor

robertwb commented Dec 7, 2018

Is this ready for review?

@kkucharc
Copy link
Contributor Author

kkucharc commented Dec 9, 2018

@robertwb I just want to run some tests to be sure if it works correctly on Jenkins. May I ask you for review when it's ready?

@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch 3 times, most recently from f51e34f to 7d1fd3f Compare December 10, 2018 15:50
@kkucharc
Copy link
Contributor Author

Run Seed Job

@kkucharc
Copy link
Contributor Author

Run GroupByKey Small Java Load Test Direct

@kkucharc
Copy link
Contributor Author

Run GroupByKey Small Java Load Test Dataflow

@lgajowy
Copy link
Contributor

lgajowy commented Dec 10, 2018

I think the "Java GroupByKey Small Load Test Dataflow" job didn't set max number of workers option and that caused a situation where a Load test took all available workers and starve other jobs for an hour.

See here (match by Job id): https://console.cloud.google.com/dataflow/jobsDetail/locations/us-central1/jobs/2018-12-10_08_16_32-12840883456333022524?project=apache-beam-testing

Full console logs: https://builds.apache.org/job/beam_Java_LoadTests_GroupByKey_Dataflow_Small/5/consoleText

Judging from the logs and the code we are missing maxNumWorkers option in the job. @kkucharc could you add that option?

@alanmyrvold : Sorry for this. How many workers at most can we use for such big job?

@kkucharc
Copy link
Contributor Author

@lgajowy Thank you for letting me know. I got confused after gradle workers parameter. The "Small" test isn't that small after all.

@alanmyrvold I am really sorry for this - I wasn't aware of this consequences. Besides of @lgajowy question about recommended workers amount, is there any way to cancel my own job when I see that something bad is happening?

@alanmyrvold
Copy link
Member

No problem. Glad you tracked it down. Something like 10 max workers would be reasonable.

@kkucharc
Copy link
Contributor Author

Run Seed Job

@kkucharc
Copy link
Contributor Author

Run GroupByKey Small Java Load Test Dataflow

@kkucharc
Copy link
Contributor Author

Run GroupByKey Small Java Load Test Direct

@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch from 6c18303 to e61a3a0 Compare December 13, 2018 17:15
@kkucharc
Copy link
Contributor Author

This is ready for review. I tested it on smaller input data set and it was succeeded. @swegner and @lgajowy would you take a look at it, please? cc: @pabloem

@swegner
Copy link
Contributor

swegner commented Dec 13, 2018

I'm feeling a bit overloaded, and probably won't have time to look at this until next week; would you mind finding another reviewer? You can find additional reviewers in the OWNERS file, and use the code velocity dashboard to see who's overloaded.

@kkucharc
Copy link
Contributor Author

Thank you @swegner for letting me know. Especially I didn't see code velocity dashboard yet.

@lgajowy lgajowy self-requested a review December 14, 2018 12:27
Copy link
Contributor

@lgajowy lgajowy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @kkucharc! This almost looks good to me, I added some comments to be addressed before merging.

rootBuildScriptDir(commonJobProperties.checkoutDir)
tasks(':beam-sdks-java-load-tests:run')
commonJobProperties.setGradleSwitches(delegate)
switches("-Dorg.gradle.daemon=false")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is skipping gradle daemon needed? If not please remove this line

Copy link
Contributor Author

@kkucharc kkucharc Dec 28, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot that you found this. Some 'leftovers' after testing.

create_load_test_job(testConfiguration)
}

private void create_load_test_job(testConfiguration) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's better to use "PhraseTriggeringPostCommitBuilder for this but in a loop. See here for reference: job_PostCommit_Java_Nexmark_Dataflow.groovy.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it, thanks for suggestion!

.test-infra/jenkins/job_LoadTests_Java.groovy Show resolved Hide resolved
tempLocation : 'gs://temp-storage-for-perf-tests/loadtests',
]

enum Runner {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is common for Nexmark and load tests - can you move it to a common file and import here? Something like CommonTestProperties.groovy maybe?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I extracted common part for both suites. Thanks for suggestion.

@lgajowy
Copy link
Contributor

lgajowy commented Dec 14, 2018

@kkucharc please rebase before running the tests again - I provided fixes for BigQuery publishing code (#7283). Thanks!

@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch from ef72206 to c1beaa7 Compare January 2, 2019 11:17
@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch from c1beaa7 to ef74eee Compare January 2, 2019 11:21
@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 2, 2019

Run seed job

@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 2, 2019

Run GroupByKey Small Java Load Test DIrect

@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 2, 2019

Run Dataflow Runner Nexmark Tests

@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 3, 2019

@lgajowy This is ready for the second round of review.

All Jenkins jobs are triggered properly.

The Direct runner test is failing due to OutOfMemoryError described in detail here.
Test on Dataflow is actually failing but status is still success what was reported here and the reason why is failing is reported here.

Copy link
Contributor

@lgajowy lgajowy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. The failures have been addressed with appropriate JIRA issues so I think we can merge. Those are not periodic jobs so the failures can be fixed afterward.

@kkucharc please reorganize the history and add JIRA tags in the commit messages and I will merge

@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch from 39127ee to 89e138a Compare January 4, 2019 15:35
@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 4, 2019

Run seed job

@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 4, 2019

Run Dataflow Runner Nexmark Tests

@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 4, 2019

Run Direct Runner Nexmark Tests

@kkucharc
Copy link
Contributor Author

kkucharc commented Jan 4, 2019

Run GroupByKey Small Java Load Test Dataflow

@kkucharc kkucharc force-pushed the BEAM-5985-jenkins-java-load-test branch from 89e138a to 7604c4a Compare January 7, 2019 11:06
@lgajowy
Copy link
Contributor

lgajowy commented Jan 7, 2019

Thanks! Merging.

@lgajowy lgajowy merged commit e565087 into apache:master Jan 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants