Performance test (load testing)

This tests were done in December 2008 with "real users" with the production server that connects Forth server

  • the 4th with 5 users.
  • the 11th with 10 users.
  • the 18th with 9 users.
See the attached file for the full results.

Observations

  • Forth server has a 4-processor machine, so we can see from big queries (e.g. get shared space network) that the two/three first users get the result in the "normal" time, then the two/three next have to wait the time of the previews queries + the time for their query, etc. So we can predict a "linear" growing time.
  • The idea of this test was to have really synchronous call; but this goal was not reach. So we can imagine that we will be able to still have acceptable response time with more users (meaning that there should be few seconds in between calls that will let the server doing it job in good condition).


Computer multi-thread call

To try confirm my analysis I run form my computer 3 times the query to get the shared space network one by one, then I run 10 then 12 parallel thread doing the same job.

I took the get shared space network query since it's the biggest query of the SSGUI. It uses the queryMultiple with the following queries:


--The shared spaces select x, z, w from ^tlo:CollectiveSpace{x}, {x}tlo:dc_title{z}, {x}tlo:belongsToSharedSpace{w} using namespace tlo = &http://www.kp-lab.org/system-model/TLO# --The relationship links that point to shared spaces select x, (select tlo:Relationship, l, zl, lc, (count(select distinct yl from {cl}tlo:hasCommentAnnotation{yl;tlo:Comment}, {l}tlo:hasCommentAnnotation{cl;tlo:Comment}) + count(select distinct cl from {l}tlo:hasCommentAnnotation{cl;tlo:Comment})) from {l;tlo:Relationship}tlo:toObject{zl;SharedSpace}, {l}tlo:dc_creator{lc}, {x}tlo:hasOutboundRelationship{l}) from tlo:SharedSpace{x} where count(select yy from {x}tlo:hasOutboundRelationship{yy}) > 0 using namespace tlo = &http://www.kp-lab.org/system-model/TLO# --Roles/actions for anonymous select x, (select ac from {ro}roac:hasAction{ac;roac:Action}) from ^$R{ro}, {ro}roac:hasTarget{x} where $R=roac:Anonymous OR $R=roac:Registered_user using namespace roac = &http://www.kp-lab.org/security-ontologies/RolesAndActions# --Roles/actions for the user select z, (select ru from {r}tlo:member{ru}), roac:hasAction, (select ra from {r}roac:hasAction{ra}) from ^$R{r}, {r}roac:hasTarget{z} where $R=roac:User OR $R=roac:Administrator using namespace tlo = &http://www.kp-lab.org/system-model/TLO#, roac = &http://www.kp-lab.org/security-ontologies/RolesAndActions# --Group/Organization the user is member of + the shared spaces he created select (select y from ^tlo:CollectiveSpace{y}, {y}tlo:dc_creator{x}), (select o from {x}tlo:belongsToOrganization{o;tlo:Organization}), (select g from (tlo:Group minus roac:Role){g}, {g}tlo:member{x}) from Individual{x} where x = &http://www.kp-lab/ontologies/mapit#MapItAgent:_081028-1447-55ea7e33-96f9-4fe9-bbb6-0e5204f21ea2 using namespace tlo = &http://www.kp-lab.org/system-model/TLO#, roac = &http://www.kp-lab.org/security-ontologies/RolesAndActions# --The number of comments attached to the shared spaces select x, (count(select y from ^tlo:Comment{cx}, {cx}tlo:hasCommentAnnotation{y}, {x}tlo:hasCommentAnnotation{cx}) + count(select distinct cx from {x}tlo:hasCommentAnnotation{cx})) from ^tlo:CollectiveSpace{x} where count(select yy from {x}tlo:hasCommentAnnotation{yy}) > 0 using namespace tlo = &http://www.kp-lab.org/system-model/TLO#

the logs looks like this: 3 times one by one:


2009-01-22 18:02:15,522 - parse SS network start 2009-01-22 18:02:18,994 - parse SS network TIME:3472 2009-01-22 18:04:15,334 - parse SS network start 2009-01-22 18:04:19,527 - parse SS network TIME:4193 2009-01-22 18:04:31,241 - parse SS network start 2009-01-22 18:04:35,233 - parse SS network TIME:3992
So it is around 4 seconds for one query.

12 parallel call:


2009-01-22 17:40:53,335 - parse SS network start 2009-01-22 17:40:53,336 - parse SS network start 2009-01-22 17:40:53,429 - parse SS network start 2009-01-22 17:40:53,430 - parse SS network start 2009-01-22 17:40:53,467 - parse SS network start 2009-01-22 17:41:00,181 - parse SS network TIME:6751 2009-01-22 17:41:00,366 - parse SS network start 2009-01-22 17:41:01,300 - parse SS network TIME:7966 2009-01-22 17:41:01,326 - parse SS network start 2009-01-22 17:41:02,189 - parse SS network TIME:8760 2009-01-22 17:41:02,210 - parse SS network start 2009-01-22 17:41:02,240 - parse SS network TIME:8904 2009-01-22 17:41:02,260 - parse SS network start 2009-01-22 17:41:03,913 - parse SS network TIME:10446 2009-01-22 17:41:03,939 - parse SS network start 2009-01-22 17:41:06,229 - parse SS network TIME:5862 2009-01-22 17:41:07,424 - parse SS network TIME:6098 2009-01-22 17:41:07,448 - parse SS network start 2009-01-22 17:41:08,136 - parse SS network start 2009-01-22 17:41:09,438 - parse SS network TIME:7228 2009-01-22 17:41:10,567 - parse SS network TIME:8307 2009-01-22 17:41:12,060 - parse SS network TIME:8121 2009-01-22 17:41:14,210 - parse SS network TIME:6762 2009-01-22 17:41:14,989 - parse SS network TIME:6853
Overall time is 21,7 seconds, so close to the prediction: in-between (12 * 4 / 3) and (12 * 4 / 2)

Finally 10 parallel calls:


2009-01-22 17:47:36,969 - parse SS network start 2009-01-22 17:47:36,971 - parse SS network start 2009-01-22 17:47:36,973 - parse SS network start 2009-01-22 17:47:36,974 - parse SS network start 2009-01-22 17:47:36,975 - parse SS network start 2009-01-22 17:47:45,243 - parse SS network TIME:8268 2009-01-22 17:47:45,575 - parse SS network start 2009-01-22 17:47:45,791 - parse SS network TIME:8822 2009-01-22 17:47:45,918 - parse SS network start 2009-01-22 17:47:45,955 - parse SS network TIME:8984 2009-01-22 17:47:45,960 - parse SS network TIME:8986 2009-01-22 17:47:46,027 - parse SS network start 2009-01-22 17:47:46,042 - parse SS network start 2009-01-22 17:47:46,065 - parse SS network TIME:9092 2009-01-22 17:47:46,128 - parse SS network start 2009-01-22 17:47:52,951 - parse SS network TIME:7377 2009-01-22 17:47:54,548 - parse SS network TIME:8506 2009-01-22 17:47:54,673 - parse SS network TIME:8755 2009-01-22 17:47:55,476 - parse SS network TIME:9449 2009-01-22 17:47:55,578 - parse SS network TIME:9450
Overall time is 18,6 seconds, so again close to the prediction in-between (10 * 4 / 3) and (10 * 4 / 2)

Note: I don't know if it was my computer or the server that only run 5 thread and start the next one at soon as one is done...

Computer multi-thread call 2

After fixing the glassfish maximum connection thread... But the result is very similar too.

10 parallel calls (2d server side):


2009-02-04 10:51:34,257 - parse SS network start 2009-02-04 10:51:34,264 - parse SS network start 2009-02-04 10:51:34,267 - parse SS network start 2009-02-04 10:51:34,270 - parse SS network start 2009-02-04 10:51:34,273 - parse SS network start 2009-02-04 10:51:34,276 - parse SS network start 2009-02-04 10:51:34,281 - parse SS network start 2009-02-04 10:51:34,284 - parse SS network start 2009-02-04 10:51:34,285 - parse SS network start 2009-02-04 10:51:34,289 - parse SS network start 2009-02-04 10:51:42,495 - parse SS network TIME:8238 2009-02-04 10:51:43,441 - parse SS network TIME:9156 2009-02-04 10:51:44,040 - parse SS network TIME:9764 2009-02-04 10:51:45,709 - parse SS network TIME:11420 2009-02-04 10:51:45,717 - parse SS network TIME:11450 2009-02-04 10:51:48,809 - parse SS network TIME:14528 2009-02-04 10:51:50,007 - parse SS network TIME:15723 2009-02-04 10:51:51,340 - parse SS network TIME:17070 2009-02-04 10:51:52,205 - parse SS network TIME:17941 2009-02-04 10:51:52,854 - parse SS network TIME:18581

10 parallel calls (athena.ics.forth.gr side):


+-Multiple Queries: [Ljava.lang.String;@6164acf6 in Thread[httpSSLWorkerThread-3027-2,10,Grizzly], total=5483336171ns, pure=5483336171ns +-Multiple Queries: [Ljava.lang.String;@609c430e in Thread[httpSSLWorkerThread-3027-4,10,Grizzly], total=7070549978ns, pure=7070549978ns +-Multiple Queries: [Ljava.lang.String;@4a81e20c in Thread[httpSSLWorkerThread-3027-3,10,Grizzly], total=7348808916ns, pure=7348808916ns +-Multiple Queries: [Ljava.lang.String;@7167e460 in Thread[httpSSLWorkerThread-3027-0,10,Grizzly], total=8599932473ns, pure=8599932473ns +-Multiple Queries: [Ljava.lang.String;@67fc238a in Thread[httpSSLWorkerThread-3027-1,10,Grizzly], total=9014397940ns, pure=9014397940ns +-Multiple Queries: [Ljava.lang.String;@22b5e9e0 in Thread[httpSSLWorkerThread-3027-2,10,Grizzly], total=6297109922ns, pure=6297109922ns +-Multiple Queries: [Ljava.lang.String;@5c50720c in Thread[httpSSLWorkerThread-3027-4,10,Grizzly], total=5785176849ns, pure=5785176849ns +-Multiple Queries: [Ljava.lang.String;@373acfa9 in Thread[httpSSLWorkerThread-3027-0,10,Grizzly], total=5450835724ns, pure=5450835724ns +-Multiple Queries: [Ljava.lang.String;@4fe9eea9 in Thread[httpSSLWorkerThread-3027-3,10,Grizzly], total=6836384834ns, pure=6836384834ns +-Multiple Queries: [Ljava.lang.String;@46a8b15 in Thread[httpSSLWorkerThread-3027-1,10,Grizzly], total=5783404464ns, pure=5783404464ns


Category Testing M30 Shared Space

Attachments

Performance test.doc Info on Performance test.doc 98304 bytes
  Page Info My Prefs Log in
This page (revision-9) last changed on 18:24 25-Mar-2017 by Patrick Ausderau.
 

Referenced by
...nobody

JSPWiki v2.4.102
[RSS]