发送大节时 Ejabberd 变慢

Ejabberd slows down when large stanzas are sent

Ejabberd 版本:19.9.0

发送 OMEMO 消息时(使用 websockets),例如

<message
    xmlns='jabber:client' xml:lang='en' to='fedora@im-docker.rationaletech.com/2862250025' from='nikola@im-docker.rationaletech.com/3406627301' type='chat' id='ec8885cd-d63e-4a7a-b25f-beaa42a603c8'>
    <archived by='fedora@im-docker.rationaletech.com' id='1574939718713739'
        xmlns='urn:xmpp:mam:tmp'/>
        <stanza-id by='fedora@im-docker.rationaletech.com' id='1574939718713739'
            xmlns='urn:xmpp:sid:0'/>
            <encrypted
                xmlns='eu.siacs.conversations.axolotl'>
                <header sender='nikola@im-docker.rationaletech.com' sid='3406627301'>
                    <key prekey='true' receiver='fedora@im-docker.rationaletech.com' rid='2422992889'>Myjlg7TYDAgxMAMSIQW1dAuisDMW9x9NMvbld9cYrrkO2sCnMu5KlInYb7zOTRohBZ+vLgmuHnqw1Pp4UPHMORgPMT+hYoKwSxEWodHPCycBInIzCiEFawmeEU2FYrU53idtBEhkjCrGt5PK4aWmOnUcKwBxemUQRhgAIkC4p51BI53WjN2wNlgyM8azInFCuk5vakJsJksyEq7ia0LcE9TlZ+ygL/0JYmvyiopLhaVc0LnpW/ixtdXwa16oEHNyOajO1r0=</key>
                    <key prekey='true' receiver='fedora@im-docker.rationaletech.com' rid='2509209946'>Myjlg7TYDAhJMAESIQUJ51hn28dskUoJ+NCG5Vm1ZXP1YOyQSQEf4sab+kDJYhohBZ+vLgmuHnqw1Pp4UPHMORgPMT+hYoKwSxEWodHPCycBInIzCiEF/5BXLSpk+XJSC/2M2hOP+DGhmvreLhXfG1apUYCLb2IQRhgAIkBBTaB4DEEQJqKDiWJOQzNQhpw7r7osMW4d6MzlBUOhil7xxgXgvXCI6zeWYgUD/3/lIZVSsSl9I719XpG9y27qfOJRQtLdP1k=</key>
                    <key prekey='true' receiver='fedora@im-docker.rationaletech.com' rid='3618986588'>Myjlg7TYDAg3MAQSIQVIPzGNN0nypISB7FPrljHFu2U1v/xutcn75JTF6CmHdhohBZ+vLgmuHnqw1Pp4UPHMORgPMT+hYoKwSxEWodHPCycBInIzCiEFdf7SVhrxDiAtIYvgDzGxELyv5SBvbTKXJ2w0koLlbycQRhgAIkDfUOb09tsKnC3MHiMgaKS8jDzp0Hf7bB58VZke4zhP5JYYCVEMBcNFZGPZmsdyfFERgZ+qOWuL7w4tvECY6OIoOL7oYcDZaws=</key>
                    <key prekey='false' receiver='fedora@im-docker.rationaletech.com' rid='2862250025'>MwohBdoQz6FKWe8sCrYSUWy/pFw2iZhUnvCF+oSrhOimqmM+EAEYACJA7tigMY/7W93aIKdfAjPDhXE92ECVCXaQU3jDNJZTp1ZTwkA4AnWcOT/I9vBPM7+2orMz8O4sNN5jxEv8V/uRZEs7BzxUjLPM</key>
                    <key prekey='false' receiver='nikola@im-docker.rationaletech.com' rid='2383543931'>MwohBdP2fJcvz2TW4D82Ga/wfYfYsem3IfBjY+bGkPlZGuQTEEMYAiJAdI6kUOj8mcmVCFuzorzg5p/wZIX5xrxZn3cO2+dLlVBygx4czFQ0YjwIIyiYSnqJCiwxoZ63q7mrMXMQlCu+hHvcXHvmKOJZ</key>
                    <key prekey='true' receiver='nikola@im-docker.rationaletech.com' rid='2840952004'>Myjlg7TYDAglMAISIQWwNkc4CUtJXuxbK70xFp6C9G8Ty1G98V2WbZqUooYwGhohBZ+vLgmuHnqw1Pp4UPHMORgPMT+hYoKwSxEWodHPCycBInIzCiEFl80r5eU1gFX9Lrvin016vYEdyqV7cYPUmmPrVJaBaBoQRhgAIkCWgUvIrWlTIWDp6ckZiB96fkbyxo0uVhO31OSJE19cXGA6/hMLyrRs7nzOu18brViag6XNDQVHHM1OEPnihQD0Rnflufhbo3Q=</key>
                    <key prekey='true' receiver='nikola@im-docker.rationaletech.com' rid='2998742495'>Myjlg7TYDAhAMAESIQXJta5zfQPW2VXcVOCMnIc3a/LZSuoa8tW6VWAkGlxxPhohBZ+vLgmuHnqw1Pp4UPHMORgPMT+hYoKwSxEWodHPCycBInIzCiEFhn7zIoGXOk8wXGw5KN8mSsmiyKT7onzFdRSLuVxEK1MQRhgAIkATGXdHjeIOlekk5NXeiELGxXf1GCFSYsE8Zqe9H9ruqtt1nGYfd7IPBudPrqTECapLS7Kqz945oUHpM66czTd7NjKhyXhb3F0=</key>
                    <key prekey='true' receiver='nikola@im-docker.rationaletech.com' rid='2785411843'>Myjlg7TYDAg5MAISIQXDysL22t0RVmIIZOfUdUOEgjU7B3V4GA0a7osgBg9aYBohBZ+vLgmuHnqw1Pp4UPHMORgPMT+hYoKwSxEWodHPCycBInIzCiEFKYdGNmwdYAYJpnw5fPZfvFCNtNl1/ZCDt6E3Dz+9rG0QRhgAIkBxfV1mldGWy8JBCGQXW3ITm6HRRWA/EaWgWlbDvWYTl3K+DQW+Zzj033nXARSdDos0ScIenWB/JmWxmTcKEp/7lCzmEiwMqMU=</key>
                    <key prekey='true' receiver='nikola@im-docker.rationaletech.com' rid='2985212938'>Myjlg7TYDAgmMAUSIQW82JxHAPf9UfWeqigNppDqcO2r0eTBc4WFZ1wCLmcvXBohBZ+vLgmuHnqw1Pp4UPHMORgPMT+hYoKwSxEWodHPCycBInIzCiEFDjt46Fv4vMhjz6bQb/edXCQRFcr7DsNy1fqpR30OOV0QRhgAIkBKfl/0Y+QeKoJ3M7+3OdCFEvR9NLFKCmLHu2U3MWdScbt4dEvALffwT9JiiYmT1OB7jgtjEw9LeuGPehmjFIvBgozS7Hqv7bs=</key>
                    <iv>hxJQrzzNX3LHbXS5</iv>
                </header>
                <payload>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</payload>
            </encrypted>
            <store
                xmlns='urn:xmpp:hints'/>
                <active
                    xmlns='http://jabber.org/protocol/chatstates'/>
                </message>

处理此消息并将其传递给其他客户端(服务器和两个客户端都在同一台本地计算机上)需要将近 10 秒。通常(简单)节路由时间可忽略不计(<1 秒)。

如何解决这个问题?有哪些可能的修复方法?

您可以尝试的一些想法:

如果您发送相同的节,但使用 c2s 连接的客户端而不是 websockets,是否仍需要 10 秒才能到达?

如果您使用 websocket 客户端发送没有大负载元素的节,是否仍需要 10 秒?

如果发件人客户端使用 websocket 而目的地不使用?反之亦然?