element-hq / synapse

Synapse: Matrix homeserver written in Python/Twisted.
https://element-hq.github.io/synapse
GNU Affero General Public License v3.0
1.54k stars 189 forks source link

GET /members is slow, taking >30s to respond for Matrix HQ #16872

Open timokoesters opened 9 months ago

timokoesters commented 9 months ago

Description

Element X cannot load the member list because the request times out. Curling the endpoint shows it takes over 30s, in some cases over a minute (on conduit.rs: 23s cold or 4s when cached).

Maybe clients should use /joined_members instead? (Only takes ~2s on matrix.org, 0.7s on conduit.rs)

Steps to reproduce

curl /members for !OGEhHVWSdvArJzumhm:matrix.org

Homeserver

matrix.org

Synapse Version

1.100.0rc1 (b=matrix-org-hotfixes,d5e213e16f)

Installation Method

I don't know

Database

-

Workers

I don't know

Platform

-

Configuration

No response

Relevant log output

-

Anything else that would be useful to know?

No response

anoadragon453 commented 5 months ago

I can confirm that this endpoint is still slow. Testing it now for @anoa:matrix.org, I saw it take ~1min to respond, then ~32s further seconds to download 47.3MB of JSON.

curl -H 'Authorization: Bearer AUTH_TOKEN_HERE' 'https://matrix-client.matrix.org/_matrix/client/v3/rooms/!OGEhHVWSdvArJzumhm:matrix.org/joined_members' -o members_resp.json

/joined_members was indeed much faster at only ~2s.

anoadragon453 commented 1 month ago

Saw this once again slowing down client readers on matrix.org today:

synapse.access.http.11103 - 473 - INFO - GET-8d108fff1f81cb7d-LAX - ip - 11103 - {@redacted:matrix.org} Processed request: 74.453sec/5.154sec (23.663sec, 1.500sec) (0.004sec/0.983sec/4) 196608B 200! "GET /_matrix/client/r0/rooms/!OGEhHVWSdvArJzumhm:matrix.org/members?at=m5316651497%7E37.5316651786%7E3.5316651787%7E1.5316651784%7E2.5316651787_757284974_15524612_3167270832_3434055542_261311138_1392963273_11022904414_0_352697&not_membership=LEAVE HTTP/1.1" "redactedUA)" [115758 dbevts]