Skip to content

Conversation

@asm582
Copy link
Member

@asm582 asm582 commented Oct 10, 2023

Issue link

#657

What changes have been made

Changes to addqueue method which exists only after informer and etcd has status.

Verification steps

I have manually run scale tests and confirmed all AWs complete

(base) abhishekmalvankar@Abhisheks-MBP perf-test % kubectl get appwrappers --all-namespaces -o json | jq '.items[] | select(.status.Succeeded != 1) | {namespace: .metadata.namespace, name: .metadata.name, status: .status}' (base) abhishekmalvankar@Abhisheks-MBP perf-test % 

Checks

  • I've made sure the tests are passing.
  • Testing Strategy
    • Unit tests
    • Manual tests
    • Testing is not required for this change
@asm582 asm582 requested a review from jbusche October 10, 2023 15:42
Signed-off-by: James Busche <jbusche@us.ibm.com>
@jbusche
Copy link
Contributor

jbusche commented Oct 11, 2023

I'm hoping I did my PR onto your PR right, but I made a few small adjustments to the perf.sh script that seems to be working well. I rebuilt the mcad image based on PR 658 and it's running very well, not seeing any hanging appwrappers - I've run up to 300 so far.

As a control, I also ran the same perf.sh against the codeflare-operator:v1.0.0-rc.1 release and that one does well with 5 and 20 appwrappers, but is consistently hanging with 50 appwrappers. The jobs all show complete, but the appwrappers are fighting to write to etcd.

I think this PR is a big improvement, if we can just get the small perf.sh tweaks in there.

changing jobstatus from jobs to appwrappers
@jbusche
Copy link
Contributor

jbusche commented Oct 11, 2023

It's looking really good @asm582, I've built the image and then done:

helm install mcad-controller --namespace kube-system --generate-name --set image.repository=quay.io/jbusche/mcad-controller --set image.tag=comp-stat-try2 

and then running your newly modified perf.sh and it's looking really good:

AppWrappers Total Time (seconds) MCAD Image 50 181 seconds Abishek PR 658 50 182 seconds Abishek PR 658 100 343 seconds Abishek PR 658 200 670 seconds Abishek PR 658 300 1011 seconds Abishek PR 658 

I'm also watching the appwrappers and it's cleanly finishing even the long runs, which was NOT the case in the regular rc.1 image.

watch "kubectl get appwrappers --all-namespaces -o json | jq '.items[] | select(.status.Succeeded != 1) | {namespace: .metadata.namespace, name: .metadata.name, status: .status}' |wc -l" 0 
Copy link
Contributor

@jbusche jbusche left a comment

Choose a reason for hiding this comment

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

LGTM, tested great - performs well and the perf script is greatly improved, looking at appwrapper status instead of job status.


# Check for all jobs to report complete
jobstatus=`kubectl get jobs -n default --no-headers --field-selector status.successful=1 |wc -l`
jobstatus=`kubectl get appwrappers -n default --no-headers --field-selector status.successful=1 |wc -l`
Copy link
Contributor

Choose a reason for hiding this comment

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

Shoot - this change isn't working right - getting the error message:

Error from server (BadRequest): Unable to find "workload.codeflare.dev/v1beta1, Resource=appwrappers" that match label selector "", field selector "status.successful=1": field label not supported: status.successful 

But since the jobstatus later in the while loop uses jobs the perf.sh script still completes.

@openshift-ci openshift-ci bot added the lgtm label Oct 11, 2023
@asm582 asm582 removed the request for review from ChristianZaccaria October 11, 2023 18:28
Copy link
Collaborator

@metalcycling metalcycling left a comment

Choose a reason for hiding this comment

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

LGTM

@openshift-ci
Copy link

openshift-ci bot commented Oct 11, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jbusche, metalcycling

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot merged commit 91b76da into project-codeflare:main Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

3 participants