Loading ...
Sorry, an error occurred while loading the content.

help with performance issues

Expand Messages
  • Andrew Hicox
    Hello everyone: I m running an apache 1.3.* server with mod_ssl, mod_perl & SOAP::Lite, and I seem to be hitting a wall in terms of performance. Granted, I m
    Message 1 of 4 , Jul 10, 2006
    • 0 Attachment
      Hello everyone:

      I'm running an apache 1.3.* server with mod_ssl, mod_perl &
      SOAP::Lite, and I seem to be hitting a wall in terms of performance.
      Granted, I'm passing some really complex structures into and out of my
      functions, but I'm seeing fairly consistent response times of around 9
      and a half seconds, which is just well ... really long.

      I'm using the mod_soap dispatcher, though I've tested this with the
      standalone server and with cgi dispatch, and the results don't seem to
      be too far off the mod_soap numbers.

      Turning off SSL seems to get me around a half a second better, and
      using the standalone server gets me about another half second.

      Doing some further debugging, I'm seeing the delay in the dispatch/xml
      parsing stage burried somewhere in SOAP::Lite's guts. That is, I don't
      belive that what I'm doing inside the distpatched-to function is
      really making that much of an impact in terms of performance. The bulk
      of the delay seems to occur between receipt of the request by apache
      and the time that the dispatched function is reached.

      Performance seems to dramatically increase when I pass structures with
      leafs no more than two levels deep. Specifically, structures like
      "list of lists" or "hash of lists" seem to cause the most problems. In
      any case, changing the structures that the functions pass is kind of
      out of the question for me at this point in my project.

      Are others out there in the community seeing this type of behavior? Am
      I missing something fundamental here? Are the performance tuning tips
      anyone can share with me?

      thanks,

      -Andrew
    • Jay A. Kreibich
      ... It might be worth testing this. If you can setup a function that just returns it s arguments, you can firmly establish if this is a serializer issue or a
      Message 2 of 4 , Jul 10, 2006
      • 0 Attachment
        On Mon, Jul 10, 2006 at 02:25:32PM -0000, Andrew Hicox scratched on the wall:
        > Hello everyone:
        >
        > I'm running an apache 1.3.* server with mod_ssl, mod_perl &
        > SOAP::Lite, and I seem to be hitting a wall in terms of performance.
        > Granted, I'm passing some really complex structures into and out of my
        > functions, but I'm seeing fairly consistent response times of around 9
        > and a half seconds, which is just well ... really long.

        > Doing some further debugging, I'm seeing the delay in the dispatch/xml
        > parsing stage burried somewhere in SOAP::Lite's guts. That is, I don't
        > belive that what I'm doing inside the distpatched-to function is
        > really making that much of an impact in terms of performance. The bulk
        > of the delay seems to occur between receipt of the request by apache
        > and the time that the dispatched function is reached.

        It might be worth testing this. If you can setup a function that
        just returns it's arguments, you can firmly establish if this is a
        serializer issue or a function issue.

        > Performance seems to dramatically increase when I pass structures with
        > leafs no more than two levels deep. Specifically, structures like
        > "list of lists" or "hash of lists" seem to cause the most problems. In
        > any case, changing the structures that the functions pass is kind of
        > out of the question for me at this point in my project.

        Which XML parser are you using? XML::Parser or XML::Parser::Lite?
        If you're using ::Lite (included in the SOAP::Lite distribution),
        you might want to switch to a full install of XML::Parser with the
        expat binary libs behind it. I've little experience with the ::Lite
        version, but given how it works, it would not surprised me if it has
        performance issues with very large or complex structures.

        -j

        --
        Jay A. Kreibich | CommTech, Emrg Net Tech Svcs
        jak@... | Campus IT & Edu Svcs
        <http://www.uiuc.edu/~jak> | University of Illinois at U/C
      • Andrew Hicox
        Jay, thank you! I was unaware that one could choose which xml parser package to use. I have the expat based XML::Parser installed already, how do I instruct
        Message 3 of 4 , Jul 10, 2006
        • 0 Attachment
          Jay, thank you!

          I was unaware that one could choose which xml parser package to use.
          I have the expat based XML::Parser installed already, how do I instruct
          SOAP::Lite to use it instead of XML::Parser::Lite?

          thank you again,

          -Andrew

          On Jul 10, 2006, at 11:33 AM, Jay A. Kreibich wrote:

          > On Mon, Jul 10, 2006 at 02:25:32PM -0000, Andrew Hicox scratched on
          > the wall:
          >> Hello everyone:
          >>
          >> I'm running an apache 1.3.* server with mod_ssl, mod_perl &
          >> SOAP::Lite, and I seem to be hitting a wall in terms of performance.
          >> Granted, I'm passing some really complex structures into and out of my
          >> functions, but I'm seeing fairly consistent response times of around 9
          >> and a half seconds, which is just well ... really long.
          >
          >> Doing some further debugging, I'm seeing the delay in the dispatch/xml
          >> parsing stage burried somewhere in SOAP::Lite's guts. That is, I don't
          >> belive that what I'm doing inside the distpatched-to function is
          >> really making that much of an impact in terms of performance. The bulk
          >> of the delay seems to occur between receipt of the request by apache
          >> and the time that the dispatched function is reached.
          >
          > It might be worth testing this. If you can setup a function that
          > just returns it's arguments, you can firmly establish if this is a
          > serializer issue or a function issue.
          >
          >> Performance seems to dramatically increase when I pass structures with
          >> leafs no more than two levels deep. Specifically, structures like
          >> "list of lists" or "hash of lists" seem to cause the most problems. In
          >> any case, changing the structures that the functions pass is kind of
          >> out of the question for me at this point in my project.
          >
          > Which XML parser are you using? XML::Parser or XML::Parser::Lite?
          > If you're using ::Lite (included in the SOAP::Lite distribution),
          > you might want to switch to a full install of XML::Parser with the
          > expat binary libs behind it. I've little experience with the ::Lite
          > version, but given how it works, it would not surprised me if it has
          > performance issues with very large or complex structures.
          >
          > -j
          >
          > --
          > Jay A. Kreibich | CommTech, Emrg Net Tech Svcs
          > jak@... | Campus IT & Edu Svcs
          > <http://www.uiuc.edu/~jak> | University of Illinois at U/C
          >
          >
          Andrew N. Hicox
          Hicox Information Systems LLC
          Manassas, VA USA
          http://hicox.com
          andrew@...
          703-367-9085
        • Jay A. Kreibich
          ... I m fairly sure that if SOAP::Lite can find XML::Parser, it will automatically use it. XML::Parser::Lite is only used as a fall-back. Someone with a
          Message 4 of 4 , Jul 10, 2006
          • 0 Attachment
            On Mon, Jul 10, 2006 at 01:04:28PM -0400, Andrew Hicox scratched on the wall:
            > Jay, thank you!
            >
            > I was unaware that one could choose which xml parser package to use.
            > I have the expat based XML::Parser installed already, how do I instruct
            > SOAP::Lite to use it instead of XML::Parser::Lite?

            I'm fairly sure that if SOAP::Lite can find XML::Parser, it will
            automatically use it. XML::Parser::Lite is only used as a fall-back.

            Someone with a better understanding of the internals of SOAP::Lite
            might chime in on this, however.

            In that case, the only thing would be to verify that XML::Parser and
            expat is installed somewhere SOAP::Lite is going to find it and
            correctly import it. With mod_perl that's sometimes a bit tricky,
            but if things are installed in the default places, it should work.

            -j

            --
            Jay A. Kreibich | CommTech, Emrg Net Tech Svcs
            jak@... | Campus IT & Edu Svcs
            <http://www.uiuc.edu/~jak> | University of Illinois at U/C
          Your message has been successfully submitted and would be delivered to recipients shortly.