Brad Fitzpatrick (brad) wrote,
Brad Fitzpatrick
brad

LJ Talk activity (or, ejabberd vs djabberd)

I've been watching our LJ Talk ganglia stats and also comparing them to the Jabber.org status (which runs ejabberd).

Our memory usage, even with a known memory leak, is way better. ejabberd seems to take 184 kB/connection, while djabberd is currently using 34 kB/connection. (which includes leaked data .... when it starts it's closer to 5 kB/connection)

In a week or two it looks like our connected clients will overtake jabber.org's too, at least with our current rate of growth. They currently peak at ~10,000 users. Our peak, currently at 4,000 users, keeps climbing each day, from a peak of just 1,000 a few days ago.

At least it's really easy now to track down memory leaks, using Devel::Gladiator and $^P |= 0x200, and Devel::Peek::CvGV .....

All objects in memory ...
djabberd@lj-jabber1:~/DJabberd$ echo "gladiator" | nc 127.0.0.1 5200 | head -50
ARENA COUNTS:
 1087578 606945 SCALAR
 536548 327556 REF
 258889 176113 ARRAY
 142478 82245 HASH
 58433 45139 CODE
 34086 19638 DJabberd::XMLElement
 12023 4177 IO::Handle
 8583 6951 DJabberd::Callback
 8493 6887 *DJabberd::VHost::__ANON__[lib/DJabberd/VHost.pm:257]
 8493 6887 *DJabberd::VHost::__ANON__[lib/DJabberd/VHost.pm:226]
 8493 6887 *DJabberd::VHost::__ANON__[lib/DJabberd/VHost.pm:242]
 8317 4882 DJabberd::StreamVersion
 8195 4806 DJabberd::Connection::ClientIn
 8054 10   GLOB
 4518 464  DJabberd::JID
 4283 3463 *DJabberd::Connection::ClientIn::__ANON__[lib/DJabberd/Connection/ClientIn.pm:250]
 4283 3463 *DJabberd::Connection::ClientIn::__ANON__[lib/DJabberd/Connection/ClientIn.pm:251]
 4282 3463 DJabberd::Callback-switch_incoming_client
 4272 3451 DJabberd::IQ
 4208 3423 *DJabberd::IQ::__ANON__[lib/DJabberd/IQ.pm:519]
 4208 3423 *DJabberd::IQ::__ANON__[lib/DJabberd/IQ.pm:526]
 4208 3423 *DJabberd::IQ::__ANON__[lib/DJabberd/IQ.pm:530]
 4208 3423 *DJabberd::IQ::__ANON__[lib/DJabberd/IQ.pm:501]
 4208 3423 *DJabberd::IQ::__ANON__[lib/DJabberd/IQ.pm:522]
 4207 3423 DJabberd::IQ-set-{jabber:iq:auth}query
 4207 3423 DJabberd::Callback-CheckDigest
 4085 1456 IO::Socket::INET
 3857 1332 DJabberd::Presence
  532 -915 DJabberd::Subscription
  532 -915 DJabberd::RosterItem
  483 188  DJabberd::Queue::ServerOut
  325 107  DJabberd::IPEndPoint
  151 107  DJabberd::DNS
  143 -17  Danga::Socket::Timer
  122 77   DJabberd::Connection::ServerIn
   92 64   *DJabberd::Stanza::DialbackResult::__ANON__[lib/DJabberd/Stanza/DialbackResult.pm:47]
   92 64   *DJabberd::Stanza::DialbackResult::__ANON__[lib/DJabberd/Stanza/DialbackResult.pm:61]
   92 64   *DJabberd::Stanza::DialbackResult::__ANON__[lib/DJabberd/Stanza/DialbackResult.pm:43]
   91 64   DJabberd::Stanza::DialbackResult
   88 29   *XML::SAX::Base::__ANON__[/usr/share/perl5/XML/SAX/Base.pm:1114]
   88 29   *XML::SAX::Base::__ANON__[/usr/share/perl5/XML/SAX/Base.pm:400]
   87 29   XML::SAX::Base::NoHandler
   87 28   *XML::SAX::Base::__ANON__[/usr/share/perl5/XML/SAX/Base.pm:987]
   87 29   XML::LibXML::ParserContext
   87 28   *XML::SAX::Base::__ANON__[/usr/share/perl5/XML/SAX/Base.pm:264]
   87 28   *XML::SAX::Base::__ANON__[/usr/share/perl5/XML/SAX/Base.pm:1941]
   87 29   DJabberd::XMLParser
   87 29   XML::LibXML
   87 30   *XML::SAX::Base::__ANON__[/usr/share/perl5/XML/SAX/Base.pm:57]


So that'll give me something to do on the plane, too.
Tags: djabberd, jabber, perl, tech
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments