Confused over results

Hi i am trying to find the bottle neck of my server , my server has 3 nodes attached with load balances, i am using the following scenario and getting these results , confusion is at what level my server are unable to crater users , please help : please let me know if i am writing the simulation correctly and getting the test setup load correct

class Manager_AccessReport extends Simulation {
//val rampRateInj = atOnceUsers(10) over (15 minutes)

val rampRateInj = heavisideUsers(200) over(15 minutes)

object HomePage {
val random = new scala.util.Random
val feeder = csv(“Managers.csv”).random
val uri1 = “https://qa-lms-sr.360training.com
val uri2 = “qa-lms-sr.360training.com

val headers_accept = Map(“Accept” → “text/css,/;q=0.1”)

val home = exec(
http(“initial_open_request”).get("/lms/login.do")
).pause(401 milliseconds)
.exec(
http(“Initial_open”).get(“http://” + uri2 + “/lms/login.do”).headers(headers_accept)
.check(css("#j_username").find(0).exists)
).pause(4)
.feed(feeder).pause(3)

}

object LoginPage {
val uri2 = “qa-lms-sr.360training.com

val login =
exec(http(“Login_request”).post("/lms/j_spring_security_check")
.formParam(“spring-security-redirect”, “/interceptor.do”)
.formParam(“j_username”, “${username}”)
.formParam(“j_password”, “lms123456”)
).pause(200)
}

object MainPage {
val uri1 = “https://qa-lms-sr.360training.com:443
val HomePage_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/mgr_manageLearners.do?userAgent=Mozilla%2F5.0+(Macintosh%3B+Intel+Mac+OS+X+10.10%3B+rv%3A33.0)+Gecko%2F20100101+Firefox%2F33.0&currentView=redirect%3A%2Fmgr_manageLearners.do&brand=default&logoutSuccessUrl=https%3A%2F%2Fqa-cas.360training.com%2Fcas%2Flogout%3Fservice%3Dhttps%253A%252F%252Fqa-ws1.austin.360training.com%252FLogoff%253FstoreId%253D21701%2526langId%253D-1%2526catalogId%253D10051%2526URL%253Dhttp%25253A%25252F%25252Fqa-ws1.austin.360training.com%25252Fstore”)
val Usergroup_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/lms_handleMenu.do?featureGroup=Users%20%26%20Groups&feature=LMS-MGR-0001&actionUrl=mgr_manageLearners.do”)
val ManageUsers_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/mgr_manageLearners.do”)

val ViewPlan_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/mgr_viewPlanAndEnroll.do”)

val ClickReports_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/lms_handleMenu.do?featureGroup=Reports&feature=LMS-MGR-0012&actionUrl=mgr_ManageReports.do”)

val ManageReport_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/mgr_ManageReports.do”)

val ClickTools_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/lms_handleMenu.do?featureGroup=Tools&feature=LMS-MGR-0017&actionUrl=mgr_alertCourse.do”)

val Alert_headers = Map(“Referer” → “https://qa-lms-sr.360training.com/lms/mgr_alertCourse.do”)

val verifyMainPage = exec(http(“HomePage_request”)
.get("/lms/lms_handleMenu.do?featureGroup=Users%20%26%20Groups&feature=LMS-MGR-0001&actionUrl=mgr_manageLearners.do")
.headers(HomePage_headers))

.exec(http(“HomePage_request_view”).get("/lms/mgr_manageLearners.do")
.check(css("#page-icon").find(0).exists)
).pause(30000 milliseconds)

val clickReports = exec(http(“clickReports_request”)
.get("/lms/lms_handleMenu.do?featureGroup=Reports&feature=LMS-MGR-0012&actionUrl=mgr_ManageReports.do"))

.exec(http(“clickReports_request_view”).get("/lms/mgr_ManageReports.do").headers(ClickReports_headers))
.exec(http(“ManageReport_request”).post("/lms/mgr_ManageReports.do").headers(ManageReport_headers).formParam(“method”, “browseReports”)
.check(css("#page-icon").find(0).exists)
).pause(30000 milliseconds)

val clickReports1 = exec(http(“clickLearner_report_request1”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1093&fav=false")
.headers(ClickReports_headers))

.exec(http(“Performance_by_Course_view”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1093&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports2 = exec(http(“clickLearner_report_request2”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1095&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Group_Performance_by_Course_Group”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1095&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports3 = exec(http(“clickLearner_report_request3”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1095&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Group_Performance_by_Course_Group”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1095&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports4 = exec(http(“clickLearner_report_request4”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1096&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Group_Performance_Summary_(All_Course_Groups)”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1096&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports5 = exec(http(“clickLearner_report_request5”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1094&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Group_Performance_Summary_(All Courses)”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1094&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports6 = exec(http(“clickLearner_report_request6”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1098&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Group_Performance_Summary_(All_Training_Plan)”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1098&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports7 = exec(http(“clickLearner_report_request7”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1081&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Performance_by_Course”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1081&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports8 = exec(http(“clickLearner_report_request8”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=7776&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Performance_by_Course_(Comprehensive)”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=7776&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports9 = exec(http(“clickLearner_report_request9”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1083&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Performance_by_Course_Group”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1083&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports10 = exec(http(“clickLearner_report_request10”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1085&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Performance_by_Training_Plan”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1085&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports11 = exec(http(“clickLearner_report_request11”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1084&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Performance_Summary_(All_Course_Groups)”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1084&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports12 = exec(http(“clickLearner_report_request12”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1082&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Performance_Summary_(All_Courses)”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1082&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

val clickReports13 = exec(http(“clickLearner_report_request13”)
.get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1086&fav=false")
.headers(ClickReports_headers))

.exec(http(“Learner_Performance_Summary_(All Training Plans)”).get("/lms/mgr_ManageReports.do?method=selectReport&reportId=1086&fav=false")
.check(css(“td > div > a > div.btn_normal”).find(0).exists)
).pause(30000 milliseconds)

}

val httpProtocol = http
.baseURL(“https://qa-lms-sr.360training.com”)
.inferHtmlResources(BlackList( “”"..js""", “”"..css""", “”"..gif""", “”"..jpeg""", “”"..jpg""", “”"..ico""", “”"..woff""", “”"..(t|o)tf""", “”"..png"""), WhiteList())
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,
/*;q=0.8")
.disableAutoReferer
.acceptEncodingHeader(“gzip, deflate”)
.acceptLanguageHeader(“en-US,en;q=0.5”)
.connection(“keep-alive”)
.contentTypeHeader(“application/x-www-form-urlencoded”)
.userAgentHeader(“Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0”)

val loginUsers50 = scenario(“ManagerLogin”).exec(HomePage.home, LoginPage.login,
MainPage.verifyMainPage, MainPage.clickReports,MainPage.clickReports1,MainPage.clickReports2,MainPage.clickReports3
,MainPage.clickReports4,MainPage.clickReports5,MainPage.clickReports6,MainPage.clickReports7,MainPage.clickReports8
,MainPage.clickReports9,MainPage.clickReports10,MainPage.clickReports11,MainPage.clickReports12,MainPage.clickReports13)
/*val loginUsers50 = scenario(“loginUsers50”).exec(HomePage.home,LoginPage.login,MainPage.verifyMainPage)
*/setUp(
loginUsers50.inject(rampRateInj)

).protocols(httpProtocol)

}

Whats’ your issue exactly?

If you want to investigate bottlenecks on your system, you have to monitor it (app, database, network, etc). Tools depend on your technologies.

You could use a high ramp-up in your injection model and monitor your OS metrics through CloudWatch or (h)top or something.

If you want to monitor your response times, realtime errors etc use Graphite/InfluxDB and Grafana.

There are some Docker images here:
https://github.com/BBC/gatling-load-tests/#grafanainfluxdb

Aidy