Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Serve] Make sure Ray installs uvloop to be used as event-loop implem…
…entation for asyncio (#39336) Currently, `HTTPProxy` is configured with `loop="auto"` which will prefer uvloop iff it's present in the runtime env, which from my recent profiling (see flame-graph attached) indicates that it's not. This change makes it explicit requirement to use "uvloop" in production, w/ an optional fallback to asyncio when debugging (`DEBUG_MODE=1`). Running Serve micro benchmarks (`microbenchmark.py`) following results were obtained: Benchmark | asyncio (RPS) | uvloop (RPS) | increase -- | -- | -- | -- num_client:1/replica:1/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:False | 419.26 | 477.14 | 13.81% num_client:1/replica:1/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:True | 240.25 | 253.7 | 5.60% num_client:1/replica:1/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:False | 419.2 | 479.02 | 14.27% num_client:1/replica:1/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:True | 218.37 | 264.84 | 21.28% num_client:1/replica:1/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:False | 370.01 | 457.36 | 23.61% num_client:1/replica:1/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:True | 233.16 | 257.02 | 10.23% num_client:1/replica:8/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:False | 365.49 | 399.59 | 9.33% num_client:1/replica:8/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:True | 219.5 | 241.55 | 10.05% num_client:1/replica:8/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:False | 359.04 | 400.67 | 11.59% num_client:1/replica:8/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:True | 220.66 | 238.57 | 8.12% num_client:1/replica:8/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:False | 354.05 | 373.93 | 5.62% num_client:1/replica:8/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:True | 210.43 | 234.68 | 11.52% num_client:8/replica:1/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:False | 106.82 | 57.88 | -45.82% num_client:8/replica:1/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:True | 470.21 | 544.04 | 15.70% num_client:8/replica:1/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:False | 723.65 | 869.66 | 20.18% num_client:8/replica:1/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:True | 551.9 | 632.91 | 14.68% num_client:8/replica:1/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:False | 737.23 | 809.28 | 9.77% num_client:8/replica:1/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:True | 540.38 | 617.39 | 14.25% num_client:8/replica:8/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:False | 660.34 | 720.91 | 9.17% num_client:8/replica:8/batch_size:1/concurrent_queries:1/data_size:small/intermediate_handle:True | 523.58 | 590.37 | 12.76% num_client:8/replica:8/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:False | 690.91 | 792.34 | 14.68% num_client:8/replica:8/batch_size:1/concurrent_queries:10000/data_size:small/intermediate_handle:True | 525.47 | 608.2 | 15.74% num_client:8/replica:8/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:False | 687.46 | 804.69 | 17.05% num_client:8/replica:8/batch_size:10000/concurrent_queries:10000/data_size:small/intermediate_handle:True | 516.37 | 599.71 | 16.14%
- Loading branch information