11 Replies Latest reply: May 22, 2013 9:49 AM by 990840 RSS

    Performance using domains and fail over and fail back

    990840
      Hello

      I configured 3 domains, TUXDOM0, TUXDOM1, and TUXDOM2. In TUXDOM0 there is not services, just the SALT configuration (SALTCONFIG, REPOSITORY) to show the services as a WS, and most the reason to have TUXDOM0 is to haver the failover and failback feature.
      To see the services through TUXDOM0, in the DMCONFIG file we have in the REMOTE SECTION the configuration to failover and failback, as follow:

      *DM_REMOTE_SERVICES
      getDosage                                   RDOM=TUXDOM1,TUXDOM2

      everything is working fine, but I noticed that the performance is too slow in comparision if I call to the service from a local service in TUXDOM1, for example if I write a tuxedo client and call the same service from TUXDOM1, the performance is very high I am talking about : 23 seconds with the local client calling from TUXDOM1, than 4 minutes with 5 seconds calling from WS or client from TUXDOM0.
      I have to do something else, or is this way the performance when I am using DOMAINS.

      I hope is clear my question, thank you in advance

      BR

      Ramiro Arraya
        • 1. Re: Performance using domains and fail over and fail back
          Todd Little-Oracle
          Hi Ramiro,

          When you say you call the service locally and it takes 23 seconds, is this for a single call or for many calls and if so how many calls? And when you call from a remote domain or /WS client this takes 245 seconds, or 10 times as long?

          The Tuxedo domain gateway performs quite well and /WS clients perform extremely well. So I have to ask, what is the size of the buffer being pass to and from the service? If the above times are for multiple requests, how much time does a single local service call take? If your services are extremely fine grained, than any overhead such as network overhead will appear to be much higher than normal. For typical Tuxedo services such as those that access a database, the network and other costs associated with the domain gateway aren't likely to be terribly noticeable.

          Regards,
          Todd Little
          Oracle Tuxedo Chief Architect
          • 2. Re: Performance using domains and fail over and fail back
            990840
            Hello Todd

            Thank you for your reply, I will try to answer all questions:

            is this for a single call or for many calls and if so how many calls?

            the time that I gave is with a test with multiple calls, 11000 calls, I createt a client to call the service number of times that is introduce from command line how many calls is needed.

            And when you call from a remote domain or /WS client this takes 245 seconds, or 10 times as long?

            yes, when I used the same client, and excecute from the TUXDOM0 the time is 4 minutes with 05 seconds. I want to clarify that both domains TUXDOM0 and TUXDOM1 are in the same machine. Let me try to explain the scenario:

            +-TUXDOM0 = SERVER1 with no services, and in the DMCONFIG has configured in the *DM_REMOTE_SERVICES to see all service that are in TUXDOM1 and TUXDOM2, somthing like+

            TOUPPER RDOM=TUXDOM1,TUXDOM2

            what is the size of the buffer being pass to and from the service?

            In the client and service the  tpalloc is for 2000 in FML32 buffer.

            how much time does a single local service call take?

            when is running with a local client, I mean excecuting the same client, but from TUXDOM1, setting the environments variables for TUXDOM1, the time is very very fast I have the 0.0020 seconds
            When running from TUXDOM0 with the same client, setting the environment variables from TUXDOM0, the time is for about 0.024 seconds each call

            Just to clarify, I am calling the same service, with the same client. and the scenario is worst when I call from a WS invoking the same tuxedo service but discovery as a WS with SALT.

            Thank you with your help.

            BR

            Ramiro.
            • 3. Re: Performance using domains and fail over and fail back
              Todd Little-Oracle
              Hi Ramiro,

              OK, a 2000 byte FML32 buffer should not experience these sorts of performance issues. A couple more questions:

              1) Are you using transactions?
              2) Are you specifying MTYPE in the DM_LOCAL and DM_REMOTE sections of the DMCONFIG?

              Regards,
              Todd Little
              Oracle Tuxedo Chief Architect
              • 4. Re: Performance using domains and fail over and fail back
                990840
                Hello Todd

                My responses to your questions:


                1) Are you using transactions?
                no, I am not using for these services
                2) Are you specifying MTYPE in the DM_LOCAL and DM_REMOTE sections of the DMCONFIG?
                +no I am not using MTYPE in DM_LOCAL and DM_REMOTE sections, should I use it?, I will read about this. The type of the DOMAIN is TDOMAIN, let me paste the DMCONFIG configuration for TUXDOM0:

                //////////////////////////////////////////////////////////////////////////////////////////////
                # DOMINIO DOM0 PROTOTIPO
                #
                *DM_RESOURCES


                *DM_LOCAL_DOMAINS


                TUXDOM0                    GWGRP=GWGROUP1
                                         TYPE=TDOMAIN
                                         DOMAINID="TUXDOM0"
                                         CONNECTION_POLICY=ON_STARTUP
                                         DMTLOGDEV="/home/tuxdesa/DOM0/DMLOG"

                *DM_REMOTE_DOMAINS

                TUXDOM1                    TYPE=TDOMAIN
                                         DOMAINID="TUXDOM1"
                                         
                TUXDOM2                    TYPE=TDOMAIN
                                         DOMAINID="TUXDOM2"

                *DM_TDOMAIN

                TUXDOM0               NWADDR = "//192.168.1.234:7010"
                TUXDOM1               NWADDR = "//192.168.1.234:8010"
                TUXDOM2               NWADDR = "//192.168.1.238:9010"

                *DM_LOCAL_SERVICES


                *DM_REMOTE_SERVICES
                #test
                TOUPPER                              RDOM=TUXDOM1,TUXDOM2

                createTableTemp                         RDOM=TUXDOM1,TUXDOM2
                insertTableTemp                         RDOM=TUXDOM1,TUXDOM2
                setTrSupplierFile                         RDOM=TUXDOM1,TUXDOM2

                *DM_ROUTING


                //////////////////////////////////////////////////////////////////////////////////////+


                Thank you, for your help,

                Regards,

                Ramiro.

                Edited by: 987837 on May 2, 2013 4:23 PM

                Edited by: 987837 on May 2, 2013 4:25 PM
                • 5. Re: Performance using domains and fail over and fail back
                  Todd Little-Oracle
                  Hi Ramiro,

                  If the machines are of the same architecture, then setting MTYPE will allow the domain gateway to bypass xdr encoding and decoding of the message. Also, for grins, can you try changing the order of the RDOMs you specify in the DM_RMEOTE_SERVICES. Since TUXDOM0 and TUXDOM1 are on the same machine, network latency should be nil. But it sounds like TUXDOM0 and TUXDOM2 are on different machines. By the way, what kind of network link is used between TUXDOM0 and TUXDOM2?

                  Regards,
                  Todd Little
                  Oracle Tuxedo Chief Architect
                  • 6. Re: Performance using domains and fail over and fail back
                    990840
                    Hi Todd

                    In the domains configuration I added:

                    FOR TUXDOM0:
                    /////////////////////////////////////////////////////////////////
                    *DM_LOCAL_DOMAINS


                    TUXDOM0                    GWGRP=GWGROUP1
                                             TYPE=TDOMAIN
                                             DOMAINID="TUXDOM0"
                                             CONNECTION_POLICY=ON_STARTUP
                                             DMTLOGDEV="/home/tuxdesa/DOM0/DMLOG"
                                             MTYPE=DOM0

                    *DM_REMOTE_DOMAINS

                    TUXDOM1                    TYPE=TDOMAIN
                                             DOMAINID="TUXDOM1"
                                             MTYPE=DOM1

                    TUXDOM2                    TYPE=TDOMAIN
                                             DOMAINID="TUXDOM2"
                                             MTYPE=DOM2
                    /////////////////////////////////////////////////////////////////////////////////
                    FOR TUXDOM1:
                    /////////////////////////////////////////////////////////////////

                    *DM_LOCAL_DOMAINS


                    TUXDOM1                    GWGRP=GWGROUP1
                                             TYPE=TDOMAIN
                                             DOMAINID="TUXDOM1"
                                             CONNECTION_POLICY=ON_STARTUP
                                             DMTLOGDEV="/home/tuxdesa/DOM1/DMLOG"
                                             MTYPE=DOM1

                    *DM_REMOTE_DOMAINS


                    TUXDOM0               TYPE=TDOMAIN
                                             DOMAINID="TUXDOM0"
                                             MTYPE=DOM0

                    TUXDOM2                    TYPE=TDOMAIN
                                             DOMAINID="TUXDOM2"
                                             MTYPE=DOM2
                    /////////////////////////////////////////////////////////////////////////////////
                    FOR TUXDOM2:
                    /////////////////////////////////////////////////////////////////
                    *DM_LOCAL_DOMAINS


                    TUXDOM2                    GWGRP=GWGROUP1
                                             TYPE=TDOMAIN
                                             DOMAINID="TUXDOM2"
                                             CONNECTION_POLICY=ON_STARTUP
                                             DMTLOGDEV="/home/tuxdesa/DOM2/DMLOG"
                                             MTYPE=DOM2

                    *DM_REMOTE_DOMAINS


                    TUXDOM0                    TYPE=TDOMAIN
                                             DOMAINID="TUXDOM0"
                                             MTYPE=DOM0
                                             
                    TUXDOM1                    TYPE=TDOMAIN
                                             DOMAINID="TUXDOM1"
                                             MTYPE=DOM1
                    ////////////////////////////////////////////////////////////////

                    And perform the test, and I obtain the same results.

                    For your question about :
                    what kind of network link is used between TUXDOM0 and TUXDOM2?
                    there are into a LAN and there is a switch between them
                    And the architecture of 2 machines are the same.
                    I also tried changing the order in RDOMs and I have the same results in the performance.

                    Thank you and regards,

                    Ramiro
                    • 7. Re: Performance using domains and fail over and fail back
                      990840
                      Hi Todd

                      I made a mistake in the last change of my DMCONFIG files, in MTYPE, now I changed MTYPE=LINUX in 3 domains config file.
                      I tried now and I have a something like 1 minute less than the reported in the performance , excuting the same test, but I could not get the same performance if I excute the client from the TUXDOM1, as a local client.

                      Regards

                      Ramiro
                      • 8. Re: Performance using domains and fail over and fail back
                        Todd Little-Oracle
                        Hi Ramiro,

                        A couple of things. First I usually recommend using a value for MTYPE that represents the machine architecture instead of OS type as CPU architecture is what determines whether xdr encoding/decoding is needed or not. So MTYPE=SPARC or MTYPE=X86, but the key piece is that machines of the same architecture use have the same value of MTYPE.

                        Earlier you indicated that a local call from a native client for the service takes about 2 milliseconds. Going through the domain gateway could easily add a millisecond of latency. So for a single stream test, that 2 milliseconds is going to go to at least 3 milliseconds. So I would expect latency to increase, but throughput may not suffer as much if you try running a multi-stream test. Have you tried running multiple native clients and multiple remote clients and measured the performance? I'd be curious to hear how that performs.

                        Regards,
                        Todd Little
                        Oracle Tuxedo Chief Architect
                        • 9. Re: Performance using domains and fail over and fail back
                          990840
                          Hi Todd

                          I changed MTYPE parameter for all domains to : X86.
                          I ran the following example:

                          4 clients almost at the same time executing 1000 process each one, the results are:

                          Process 1: 00:04:43
                          Process 2: 00:04:44
                          Process 3: 00:04:45
                          Process 4: 00:04:47

                          Regards,

                          Ramiro
                          • 10. Re: Performance using domains and fail over and fail back
                            Todd Little-Oracle
                            Hi Ramiro,

                            Sorry for the delay in responding, I've been traveling.

                            I'm not sure how to interpret what you posted. Are you saying that you executed 4 clients simultaneously that each made 1000 calls (for a total of 4000 calls) to a service imported from another domain took roughly 4.75 minutes? I would expect the domain gateway to add perhaps 1-2 milliseconds at most, so this seems strange that you can make 11,000 in 23 seconds if you call the service locally. Are you transactions?

                            Regards,
                            Todd Little
                            Oracle Tuxedo Chief Architect
                            • 11. Re: Performance using domains and fail over and fail back
                              990840
                              Hi Todd

                              Tha same, sorry for the delay in the response,
                              Well, here is what can I tell you about...I am not using transactions and yes when I invoke locally, the process for 11000 is 23 seconds, that why I am very surprised about the performance when we invoke from another domain.
                              I was thinking to try to convert the client to wsclient and try to invoke from another machine, just to test the performance. what do you think about that?

                              BR

                              Ramiro