Estimation of maximum no of concurrent users a application will need to support

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
2
down vote

favorite












I need to estimate the maximum number of concurrent users my application will experience in order to set goals for the software development team.



We have 550 potential users, but modelling of the workload suggest that the number of concurrent users will be considerably less. How do I set a set a sensible goal AND persuade a nervous customer that the goal is realistic?



I have good information about the amount of work that will be performed (records created/updated) over the 5 year life of the application and how this work will vary month to month. I also know the working hours of the users and the average duration of each visit. This tells me that if the expected work per month was spread evenly over each month, there will be an average number of 6.5 concurrent users.



Obviously in real life the number of concurrent users will vary.



Is it reasonable to plug this average of 6.5 concurrent users into a poisson distribution, select a confidence limit (I think I could sell 99%) and derive a target 'maximum" number of concurrent users that will rarely be exceeded.



Is this a valid approach?










share|improve this question







New contributor




David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.























    up vote
    2
    down vote

    favorite












    I need to estimate the maximum number of concurrent users my application will experience in order to set goals for the software development team.



    We have 550 potential users, but modelling of the workload suggest that the number of concurrent users will be considerably less. How do I set a set a sensible goal AND persuade a nervous customer that the goal is realistic?



    I have good information about the amount of work that will be performed (records created/updated) over the 5 year life of the application and how this work will vary month to month. I also know the working hours of the users and the average duration of each visit. This tells me that if the expected work per month was spread evenly over each month, there will be an average number of 6.5 concurrent users.



    Obviously in real life the number of concurrent users will vary.



    Is it reasonable to plug this average of 6.5 concurrent users into a poisson distribution, select a confidence limit (I think I could sell 99%) and derive a target 'maximum" number of concurrent users that will rarely be exceeded.



    Is this a valid approach?










    share|improve this question







    New contributor




    David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.





















      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      I need to estimate the maximum number of concurrent users my application will experience in order to set goals for the software development team.



      We have 550 potential users, but modelling of the workload suggest that the number of concurrent users will be considerably less. How do I set a set a sensible goal AND persuade a nervous customer that the goal is realistic?



      I have good information about the amount of work that will be performed (records created/updated) over the 5 year life of the application and how this work will vary month to month. I also know the working hours of the users and the average duration of each visit. This tells me that if the expected work per month was spread evenly over each month, there will be an average number of 6.5 concurrent users.



      Obviously in real life the number of concurrent users will vary.



      Is it reasonable to plug this average of 6.5 concurrent users into a poisson distribution, select a confidence limit (I think I could sell 99%) and derive a target 'maximum" number of concurrent users that will rarely be exceeded.



      Is this a valid approach?










      share|improve this question







      New contributor




      David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I need to estimate the maximum number of concurrent users my application will experience in order to set goals for the software development team.



      We have 550 potential users, but modelling of the workload suggest that the number of concurrent users will be considerably less. How do I set a set a sensible goal AND persuade a nervous customer that the goal is realistic?



      I have good information about the amount of work that will be performed (records created/updated) over the 5 year life of the application and how this work will vary month to month. I also know the working hours of the users and the average duration of each visit. This tells me that if the expected work per month was spread evenly over each month, there will be an average number of 6.5 concurrent users.



      Obviously in real life the number of concurrent users will vary.



      Is it reasonable to plug this average of 6.5 concurrent users into a poisson distribution, select a confidence limit (I think I could sell 99%) and derive a target 'maximum" number of concurrent users that will rarely be exceeded.



      Is this a valid approach?







      performance performance-testing






      share|improve this question







      New contributor




      David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 3 hours ago









      David Bridges

      112




      112




      New contributor




      David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      David Bridges is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          3
          down vote













          I would say that the more proper approach would be to segregate load for different functional areas and concentrate on the maximum number of historically concurrent users. Let me explain in ore details.



          ...application will need to support...



          This is not a concrete statement. Since normally application provides a set of features which performance might or might not affect performance of some other features. Yet one might find ambiguity in the statement. Does N concurrently logged in users prove that the application can support those N users?



          Historical Average



          I would not stick to how many users and on which day were logged in to the system historically. You can just take the maximum. If there was a day when there was 2 times more of logged in users that some other day then nobody will bet such the circumstances won't repeat again.



          Guessed load values



          When we'll break down the load by the functional points we might notice that there could be the cases when we can expect the load that could be much closer to the overall maximum than in some regular circumstances. For example if the service terminates some feature there might be some urgent activity required by the user (like back up some data that would not be maintained by your service any more). This will lead to load increase which hassn't been observed historically. So some potential spikes analysis is still required.






          share|improve this answer



























            up vote
            2
            down vote













            If your application worked fine so far I don't think you will run into problems. If your calculation is correct and you will not have more than 7 concurrent users you don't have anything to worry about.



            However you can consider a Stress Test excercise in order to determine your application boundaries and determine when (and why) it gonna break.



            1. Come up with a realistic test which will represent normal application usage by all types of users

            2. Start with 1 virtual user and gradually increase the load unless you reach saturation point - when the performance starts degrading. Record the number of users which were active at this moment and that would be how many users your application can support without any issues.

            Once done you can set up a Load Test with anticipated amount of concurrent users, let say 10 to determine performance baseline and execute this short smaller test periodically and in automated manner (i.e. make it as a part of your continuous integration pipeline) - this way you will get confidence that the new functionality or bug fixes will not cause performance degradation.






            share|improve this answer




















              Your Answer







              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "244"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              convertImagesToLinks: false,
              noModals: false,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );






              David Bridges is a new contributor. Be nice, and check out our Code of Conduct.









               

              draft saved


              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsqa.stackexchange.com%2fquestions%2f36037%2festimation-of-maximum-no-of-concurrent-users-a-application-will-need-to-support%23new-answer', 'question_page');

              );

              Post as a guest






























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes








              up vote
              3
              down vote













              I would say that the more proper approach would be to segregate load for different functional areas and concentrate on the maximum number of historically concurrent users. Let me explain in ore details.



              ...application will need to support...



              This is not a concrete statement. Since normally application provides a set of features which performance might or might not affect performance of some other features. Yet one might find ambiguity in the statement. Does N concurrently logged in users prove that the application can support those N users?



              Historical Average



              I would not stick to how many users and on which day were logged in to the system historically. You can just take the maximum. If there was a day when there was 2 times more of logged in users that some other day then nobody will bet such the circumstances won't repeat again.



              Guessed load values



              When we'll break down the load by the functional points we might notice that there could be the cases when we can expect the load that could be much closer to the overall maximum than in some regular circumstances. For example if the service terminates some feature there might be some urgent activity required by the user (like back up some data that would not be maintained by your service any more). This will lead to load increase which hassn't been observed historically. So some potential spikes analysis is still required.






              share|improve this answer
























                up vote
                3
                down vote













                I would say that the more proper approach would be to segregate load for different functional areas and concentrate on the maximum number of historically concurrent users. Let me explain in ore details.



                ...application will need to support...



                This is not a concrete statement. Since normally application provides a set of features which performance might or might not affect performance of some other features. Yet one might find ambiguity in the statement. Does N concurrently logged in users prove that the application can support those N users?



                Historical Average



                I would not stick to how many users and on which day were logged in to the system historically. You can just take the maximum. If there was a day when there was 2 times more of logged in users that some other day then nobody will bet such the circumstances won't repeat again.



                Guessed load values



                When we'll break down the load by the functional points we might notice that there could be the cases when we can expect the load that could be much closer to the overall maximum than in some regular circumstances. For example if the service terminates some feature there might be some urgent activity required by the user (like back up some data that would not be maintained by your service any more). This will lead to load increase which hassn't been observed historically. So some potential spikes analysis is still required.






                share|improve this answer






















                  up vote
                  3
                  down vote










                  up vote
                  3
                  down vote









                  I would say that the more proper approach would be to segregate load for different functional areas and concentrate on the maximum number of historically concurrent users. Let me explain in ore details.



                  ...application will need to support...



                  This is not a concrete statement. Since normally application provides a set of features which performance might or might not affect performance of some other features. Yet one might find ambiguity in the statement. Does N concurrently logged in users prove that the application can support those N users?



                  Historical Average



                  I would not stick to how many users and on which day were logged in to the system historically. You can just take the maximum. If there was a day when there was 2 times more of logged in users that some other day then nobody will bet such the circumstances won't repeat again.



                  Guessed load values



                  When we'll break down the load by the functional points we might notice that there could be the cases when we can expect the load that could be much closer to the overall maximum than in some regular circumstances. For example if the service terminates some feature there might be some urgent activity required by the user (like back up some data that would not be maintained by your service any more). This will lead to load increase which hassn't been observed historically. So some potential spikes analysis is still required.






                  share|improve this answer












                  I would say that the more proper approach would be to segregate load for different functional areas and concentrate on the maximum number of historically concurrent users. Let me explain in ore details.



                  ...application will need to support...



                  This is not a concrete statement. Since normally application provides a set of features which performance might or might not affect performance of some other features. Yet one might find ambiguity in the statement. Does N concurrently logged in users prove that the application can support those N users?



                  Historical Average



                  I would not stick to how many users and on which day were logged in to the system historically. You can just take the maximum. If there was a day when there was 2 times more of logged in users that some other day then nobody will bet such the circumstances won't repeat again.



                  Guessed load values



                  When we'll break down the load by the functional points we might notice that there could be the cases when we can expect the load that could be much closer to the overall maximum than in some regular circumstances. For example if the service terminates some feature there might be some urgent activity required by the user (like back up some data that would not be maintained by your service any more). This will lead to load increase which hassn't been observed historically. So some potential spikes analysis is still required.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 hours ago









                  Alexey R.

                  5,629728




                  5,629728




















                      up vote
                      2
                      down vote













                      If your application worked fine so far I don't think you will run into problems. If your calculation is correct and you will not have more than 7 concurrent users you don't have anything to worry about.



                      However you can consider a Stress Test excercise in order to determine your application boundaries and determine when (and why) it gonna break.



                      1. Come up with a realistic test which will represent normal application usage by all types of users

                      2. Start with 1 virtual user and gradually increase the load unless you reach saturation point - when the performance starts degrading. Record the number of users which were active at this moment and that would be how many users your application can support without any issues.

                      Once done you can set up a Load Test with anticipated amount of concurrent users, let say 10 to determine performance baseline and execute this short smaller test periodically and in automated manner (i.e. make it as a part of your continuous integration pipeline) - this way you will get confidence that the new functionality or bug fixes will not cause performance degradation.






                      share|improve this answer
























                        up vote
                        2
                        down vote













                        If your application worked fine so far I don't think you will run into problems. If your calculation is correct and you will not have more than 7 concurrent users you don't have anything to worry about.



                        However you can consider a Stress Test excercise in order to determine your application boundaries and determine when (and why) it gonna break.



                        1. Come up with a realistic test which will represent normal application usage by all types of users

                        2. Start with 1 virtual user and gradually increase the load unless you reach saturation point - when the performance starts degrading. Record the number of users which were active at this moment and that would be how many users your application can support without any issues.

                        Once done you can set up a Load Test with anticipated amount of concurrent users, let say 10 to determine performance baseline and execute this short smaller test periodically and in automated manner (i.e. make it as a part of your continuous integration pipeline) - this way you will get confidence that the new functionality or bug fixes will not cause performance degradation.






                        share|improve this answer






















                          up vote
                          2
                          down vote










                          up vote
                          2
                          down vote









                          If your application worked fine so far I don't think you will run into problems. If your calculation is correct and you will not have more than 7 concurrent users you don't have anything to worry about.



                          However you can consider a Stress Test excercise in order to determine your application boundaries and determine when (and why) it gonna break.



                          1. Come up with a realistic test which will represent normal application usage by all types of users

                          2. Start with 1 virtual user and gradually increase the load unless you reach saturation point - when the performance starts degrading. Record the number of users which were active at this moment and that would be how many users your application can support without any issues.

                          Once done you can set up a Load Test with anticipated amount of concurrent users, let say 10 to determine performance baseline and execute this short smaller test periodically and in automated manner (i.e. make it as a part of your continuous integration pipeline) - this way you will get confidence that the new functionality or bug fixes will not cause performance degradation.






                          share|improve this answer












                          If your application worked fine so far I don't think you will run into problems. If your calculation is correct and you will not have more than 7 concurrent users you don't have anything to worry about.



                          However you can consider a Stress Test excercise in order to determine your application boundaries and determine when (and why) it gonna break.



                          1. Come up with a realistic test which will represent normal application usage by all types of users

                          2. Start with 1 virtual user and gradually increase the load unless you reach saturation point - when the performance starts degrading. Record the number of users which were active at this moment and that would be how many users your application can support without any issues.

                          Once done you can set up a Load Test with anticipated amount of concurrent users, let say 10 to determine performance baseline and execute this short smaller test periodically and in automated manner (i.e. make it as a part of your continuous integration pipeline) - this way you will get confidence that the new functionality or bug fixes will not cause performance degradation.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 56 mins ago









                          Dmitri T

                          7,395169




                          7,395169




















                              David Bridges is a new contributor. Be nice, and check out our Code of Conduct.









                               

                              draft saved


                              draft discarded


















                              David Bridges is a new contributor. Be nice, and check out our Code of Conduct.












                              David Bridges is a new contributor. Be nice, and check out our Code of Conduct.











                              David Bridges is a new contributor. Be nice, and check out our Code of Conduct.













                               


                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsqa.stackexchange.com%2fquestions%2f36037%2festimation-of-maximum-no-of-concurrent-users-a-application-will-need-to-support%23new-answer', 'question_page');

                              );

                              Post as a guest













































































                              Comments

                              Popular posts from this blog

                              What does second last employer means? [closed]

                              List of Gilmore Girls characters

                              Confectionery