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

concurrent DataVolume creation timeout #3446

Open
wywself opened this issue Sep 23, 2024 · 4 comments
Open

concurrent DataVolume creation timeout #3446

wywself opened this issue Sep 23, 2024 · 4 comments
Labels
kind/bug lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.

Comments

@wywself
Copy link

wywself commented Sep 23, 2024

What happened:
When I use the following code to create a DV, when the concurrency reaches 100, a timeout error will occur.In addition to retrying to create DV, is there any other way to improve the ability of concurrently created datavolume? Thank you.

newDv, err := kubeVirtClient.CdiClient().CdiV1beta1().DataVolumes(imgParam.Namespace).Create(context.TODO(), dv, metav1.CreateOptions{})

The err is as follows

errors.StatusError=Timeout: request did not complete within requested timeout - context deadline exceeded

What you expected to happen:
Supports a large number of concurrent creation of DVs

How to reproduce it (as minimally and precisely as possible):
The number of concurrent DV creations reaches 100

Environment:

  • CDI version (use kubectl get deployments cdi-deployment -o yaml): 1.58.1
  • Kubernetes version (use kubectl version): 1.27.6
  • OS (e.g. from /etc/os-release): centos
  • Kernel (e.g. uname -a): 5.10.0
@wywself wywself changed the title concurrent DV creation timeout concurrent DataVolume creation timeout Sep 23, 2024
@akalenyu
Copy link
Collaborator

We have some performance coverage outside of this repo and tbh we've not heard of this scenario being an issue.
Could you please attach the DV spec? It's possible that for some specific path the server is more overloaded than for others

@wywself
Copy link
Author

wywself commented Sep 23, 2024

@akalenyu
Here is my dv yaml.

apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
  annotations:
    cdi.kubevirt.io/cloneType: csi-clone
    cdi.kubevirt.io/storage.usePopulator: "true"
  name: img-vm-xxx
  namespace: vm-xxx
spec:
  pvc:
    accessModes:
    - ReadWriteMany
    resources:
      requests:
        storage: 50Gi
    storageClassName: ceph-block
    volumeMode: Block
  source:
    pvc:
      name: img-h08nsyzj-ceph-block
      namespace: default

If 10 datavolumes are created concurrently, each create takes about 5 seconds. If 50 datavolumes are created concurrently, each create method takes 15 seconds. If 100 datavolumes are created concurrently, a timeout error will be reported or pvc is lost.

newDv, err := kubeVirtClient.CdiClient().CdiV1beta1().DataVolumes(imgParam.Namespace).Create(context.TODO(), dv, metav1.CreateOptions{})

@kubevirt-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@kubevirt-bot kubevirt-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 22, 2024
@kubevirt-bot
Copy link
Contributor

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle rotten

@kubevirt-bot kubevirt-bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jan 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
None yet
Development

No branches or pull requests

3 participants