radosgw Consumes too much CPU time to synchronize metadata or data between multisite
In the 10.2.0 version, the multisite function is added. I configure two sites int a realm : one is the master zone in the master zonegorup, the other is the master zone in the second zonegroup. Then I start one radosgw for each zone. After I create a user in the master zone, I find the radosgw consume 100% cpu time with the command top.
#1 Updated by bajie white about 1 year ago
I find the problem is the function do_curl_wait. The function call curl_multi_wait in do_curl_wait will be waken because the pipe wait_fd is always readable. I find the wait_fd will never be changed in curl_multi_wait. So the pipe wait_fd will never be read.
If the wait_fd is set O_NONBLOCK when created in RGWHTTPManager::set_threaded and read in do_curl_wait no matter what wait_fd.revents is, the bug can be fixed.