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
[BEAM-5985] Create jenkins jobs to run the load tests for Java SDK #7184
Conversation
Run Seed Job |
Run GroupByKey Java Load Test Direct |
e2bfc84
to
6dc237c
Compare
Run Seed Job |
0aacba3
to
2675e26
Compare
Is this ready for review? |
@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? |
f51e34f
to
7d1fd3f
Compare
Run Seed Job |
Run GroupByKey Small Java Load Test Direct |
Run GroupByKey Small Java Load Test Dataflow |
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 @alanmyrvold : Sorry for this. How many workers at most can we use for such big job? |
@lgajowy Thank you for letting me know. I got confused after gradle @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? |
No problem. Glad you tracked it down. Something like 10 max workers would be reasonable. |
Run Seed Job |
Run GroupByKey Small Java Load Test Dataflow |
Run GroupByKey Small Java Load Test Direct |
6c18303
to
e61a3a0
Compare
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. |
Thank you @swegner for letting me know. Especially I didn't see |
There was a problem hiding this 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") |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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) { |
There was a problem hiding this comment.
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
.
There was a problem hiding this comment.
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!
tempLocation : 'gs://temp-storage-for-perf-tests/loadtests', | ||
] | ||
|
||
enum Runner { |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
ef72206
to
c1beaa7
Compare
c1beaa7
to
ef74eee
Compare
Run seed job |
Run GroupByKey Small Java Load Test DIrect |
Run Dataflow Runner Nexmark Tests |
@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. |
There was a problem hiding this 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
39127ee
to
89e138a
Compare
Run seed job |
Run Dataflow Runner Nexmark Tests |
Run Direct Runner Nexmark Tests |
Run GroupByKey Small Java Load Test Dataflow |
89e138a
to
7604c4a
Compare
Thanks! Merging. |
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:
[BEAM-XXX] Fixes bug in ApproximateQuantiles
, where you replaceBEAM-XXX
with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.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)