Skip to content

Conversation

@dspo
Copy link
Contributor

@dspo dspo commented Jul 16, 2025

Type of change:

  • Bugfix
  • New feature provided
  • Improve performance
  • Backport patches
  • Documentation
  • Refactor
  • Chore
  • CI/CD or Tests

What this PR does / why we need it:

This PR adds stress tests for apisix-ingress-controller.

Environment & Spec

  • APISIX Ingress Controller RC2
  • Standalone Mode (No ETCD)
  • CPU: 2, Memory: 1024 Mi, ProviderPeriod=5s

Test Cases

  • Apply 2000 prepared ApisixRoutes to the cluster. When all ApisixRoutes are created, start timing. Use the data plane Control API to count the number of services on the data plane until it reaches 2000, then stop timing. This is used to calculate the time it takes for apisix-ingress-controller to synchronize 2000 CRDs.
  • Count the time it takes to update one of the 2000 existing ApisixRoutes and make it effective. The calculation method is: based on the 2000 existing ApisixRoutes, update one of them and poll the corresponding route until the route takes effect.

Test Results

Case Result (Multiple Times)
Create 2,000 ApisixRoute resources and calculate how long it takes to take effect on the data plane. 3.7s, 5.0s, 7.4s
2,000 ApisixRoute resources already exist. Change one of them and calculate how long it takes to take effect on the data plane. 4s, 6s, 9s

TODOs (Improvements)

How to run the tests ?

TEST_DIR=./test/e2e/load-test/ PROVIDER_TYPE=apisix-standalone PROVIDER_SYNC_PERIOD=5s make e2e-test

result example:

======================TEST RESULT ProviderSyncPeriod 5s===============================
Test Case                                                             Time Required                                                         
--------------------------------------------------------------------------------------
Apply 2000 ApisixRoutes                                               8.660792908s                                                          
Update a single ApisixRoute base on 2000 ApisixRoutes                 9.753447004s                                                          
======================================================================================

Pre-submission checklist:

  • Did you explain what problem does this PR solve? Or what new features have been added?
  • Have you added corresponding test cases?
  • Have you modified the corresponding document?
  • Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

dspo added 3 commits July 11, 2025 15:16
… 2000 ApisixRoutes, and add test for ApisixRoute update time

doc: recommended to use apisix-standalone mode for installation. (apache#2470)

Signed-off-by: ashing <[email protected]>
@dspo dspo marked this pull request as ready for review July 16, 2025 02:47
@dspo dspo closed this Jul 20, 2025
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.

1 participant