Ray doesn’t offer automatic “virtual actors”, but one way of reducing the overhead is to host multiple logical actors on Real ray actors. You would have to come up with some sharding of virtual actors to real actors, and could use AsyncIO to handle concurrency: AsyncIO / Concurrency for Actors — Ray 3.0.0.dev0
Regarding the performance, each actor call translates to a single gRPC call, so it should scale linearly with the number of actors involved. There are some microbenchmarks published here: ray/microbenchmark.json at master · ray-project/ray · GitHub