รายงานผลการดำเนินการทดสอบ load test...

16
สำนักคอมพิวเตอร์ มหำวิทยำลัยศรีนครินทรวิโรฒ มีนำคม 2558 รำยงำนผลกำรดำเนินกำรทดสอบ Load Test ระบบงำน Admission

Upload: trinhkien

Post on 14-Feb-2017

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

ส ำนกคอมพวเตอร มหำวทยำลยศรนครนทรวโรฒ

มนำคม 2558

รำยงำนผลกำรด ำเนนกำรทดสอบ Load Test

ระบบงำน Admission

Page 2: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

1

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

รายงานผลการด าเนนการทดสอบ Load test ระบบงาน Admission

ระบบงานรบนสตใหม เปนระบบทมการรายงานผลการรบนสตใหมของ มศว ซงในวนประกาศผลสอบ

คดเลอกเขามหาวทยาลย จะมนกเรยนเปนจ านวนมากตองการทจะ Access เขามายง Web site

http://admission.swu.ac.th เพอดประกาศผลสอบ ซงในหนา website admission.swu.ac.th นนเปน

dynamic page ซงมการ query Database ขนมาซงถามการใชงานเปนจ านวนมาก กจะท าให Database

นนไมสามารถใหบรการได ดงนนทางทมงานจงไดมการ test load เพอทจะดวาปรมาณเทาไรท Database

นนจะยงคงใหบรการได เพอท าการจ ากด connection จากทาง Web server เพอไมใหม Connection เขา

มายง Database มากเกนไป

การ Test load นนทางทมงานไดใชงานโปรแกรม อย 2 ตวดวยกนคอ

1. โปรแกรม Apache JMeter

2. โปรแกรม Siege ซง run อยบน Command line

โปรแกรม Apache JMeter นนเปนโปรแกรมท run ดวย JAVA Platform ดงนนเครองทจะท าการ

ตดตง Apache JMeter นนจะตองตดตง JAVA กอน โดยการตดตงและใชงานโปรแกรมจะมรายละเอยดอย

ขางลางน

ความตองการพนฐานของ Apache JMeter นนจะใช JAVA 6 ขนไป และระบบปฏบตการทรองรบจะ

สามารถรองรบไดทง Windows และ Linux ซงในรายละเอยดจะเปนขนตอนการตดตง Apache JMeter บน

ระบบปฏบตการ Windows

ท าการ Download JAVA จาก website ดงน

http://www.java.com/en/download/index.jsp

จากนนให Download Apache JMeter ไดจาก

http://jmeter.apache.org/download_jmeter.cgi

Page 3: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

2

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

จากนนท าการแตก file ออกมา โดยโปรแกรมทจะใช Run อยท

Page 4: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

3

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

เมอท าการ double click โปรแกรมจะไดหนาจอดงน ใหท าการเลอก Add Threads (Users) -> Thread

Group

Page 5: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

4

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

เมอสราง Thread Group แลวจะเปนขนตอนใหใส ชอ และ จ านวน Thread

จากนนใหใสชอ Name: admission_test_load

Number of Threads (users): 1000

Ramp-UP Period (in seconds): 10

Loop Count Forever

Page 6: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

5

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

จากนนเลอกวธทจะ record งานทจะท าการ simulate

Page 7: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

6

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

จากนนในสวนของ Workbench ให click ขวาท Workbench แลวเลอกท Add -> Non -test Element ->

http(s) test script recoder

Page 8: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

7

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

จากนนตรง URL Patterns to Include ใหเลอก กดป ม Add แลวพมพ .* เขาไป

จากนนตรง URL Patterns to Exclude ใหกดท ป ม Add suggested Excludes

Page 9: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

8

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

จากนนเขาไปท Internet Explorer โดยเขาไปท setting -> internet options -> connection -> lan

settings -> localhost port 8080 ตามท http(s) test Script Recorder เซตเอาไว

จากนนกดป ม Start ท http(s) test Script Recorder

Page 10: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

9

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

จะขนหนาจอ error เกยวกบ Certificate ใหกด OK ไป

จากนนเปด IE แลวด าเนนการตามขนตอนท user จะใชงานจรง

เมอ click ใน IE ตามขนตอนตางๆเสรจแลวใน IE ใหเขามาท Apache Jmeter ใหมอกครงหนง

Page 11: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

10

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

ตรง Recording Controller นนจะเปน การ record ของเราจากนนใหท าการเลอก summary report เขาไป

Page 12: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

11

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

เมอเลอก summary report แลว

Page 13: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

12

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

จากนนลองท าการกด Run ไดเลย มนจะท าการ simulate users เปน 1000 คนในเวลา 10 วนาท แลว run

1 รอบถา click forever มนกจะ run ไปเรอยๆจนกวาจะ stop จากนนกมาด report หรอเขาไปดท DB ตอน

ทตว Apache Jmeter ยงเขาไปวา database นนสามารถรบ load ไดมากนอยแคไหน

ผลลพธจากการยง 1000 users ในเวลา 10 วนาท 1 รอบนนผลลพธทเครอง DB เปนแบบน

top - 13:29:19 up 24 days, 5:17, 3 users, load average: 2.85, 1.15, 0.79

Tasks: 603 total, 1 running, 602 sleeping, 0 stopped, 0 zombie

Cpu(s): 2.4%us, 0.7%sy, 0.0%ni, 96.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 132050756k total, 130691360k used, 1359396k free, 151264k buffers

Swap: 102406332k total, 727884k used, 101678448k free, 127257948k cached

กอนท าการ simulate ผลลพธอยท

Page 14: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

13

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

top - 13:29:19 up 24 days, 5:17, 3 users, load average: 0.99, 1.15, 0.79

Tasks: 603 total, 1 running, 602 sleeping, 0 stopped, 0 zombie

Cpu(s): 2.4%us, 0.7%sy, 0.0%ni, 96.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 132050756k total, 130691360k used, 1359396k free, 151264k buffers

Swap: 102406332k total, 727884k used, 101678448k free, 127257948k cached

2. โปรแกรม Siege

โปรแกรม Siege นนเปนโปรแกรมทใชในการ load test บน Linux ซงโปรแกรมนหลกการจะตอง

ท าการเรยก uri ตรงๆผาน Command line ซงทางโปรแกรมเมอรจะตองร URI แลวสงคา parameter เขา

มาเพอใหเขาไปเรยกได แลวทางโปรแกรม Siege จะท าการสงคาเขาไปตามจ านวน concurrent

connection ตามทตองการในระยะเวลากวนาท หรอ กนาท

โดยขนตอนการตดตงมดงน

1. yum -y install siege

2. จากนนกท าการสงใหโปรแกรม siege ท างาน ดงน

# siege -c1000 -t1M

http://admission.swu.ac.th/announce/ann_list.php?req_adm_set_no=186&cboExam=6&txtIdCardNo=110

1500938391

จากค าสงขางตนนน โปรแกรมจะสงขอมลเขาไปท uri นนเปนจ านวน 1000 users ในเวลา 1

Minute ซงสามารถตงเวลาไดหรอตงจ านวน user ได ซงในสวนของ -t สามารถตงเวลาเปนวนาทกสามารถ

ท าได โดยการใสเปน -t10s กหมายถงใน 10 วนาทจะสงขอมล 1000 users เปนตน

ผลลพธจาการท า Load test

1. โปรแกรม Siege

ผลลพธจากการทดสอบ load test จากโปรแกรม Siege นนพบวาท 1000 users ใน 10 วนาท

เครอง Database นนยงสามารถรบ Load ไดอยแตจะเรมชาแตยงไม down แตถาเกนกวานนระบบจะไม

สามารถท างานได ซงตวเลขนาจะอยทประมาณ 1000 ประกอบกบตอนทท าการทดสอบ มเครองทใชในการ

ท า Load test เพยงเครองเดยว ดงนนถาใส load เขาไปเปนจ านวนมาก เครองทใชในการยง กจะไม

สามารถ run ไดอาจจะ hang ไปเสยกอน

2. โปรแกรม Apache JMeter

ผลลพธของการทดสอบ Apache JMeter นนจะใกลเคยงกบ siege แตในสวนของโปรแกรม

Apache JMeter นนเปนการจ าลองเหมอน user มการ click ใชงานจรงทหนา web site ท าใหการเขามา

ของโปรแกรม Apache JMeter นนมการรองรบไดมากกวาโปรแกรม Siege แตในกรณนเราไดมการ Test

จาก 2 เครองโดยใหเครองหนง run 4,000 users ในเวลา 10 วนาท โดย run แบบ forever จนกวาเราจะ

สงหยด แลวอกเครอง run 3,000 users ในเวลา 10 วนาท เชนกน ผลปรากฏวาระบบยงสามารถรบได แต

ถา run มากกวานระบบจะเรมจะใชงานไมไดแลว

รายละเอยดเหตการณทเกดขนในวนท 16 ม.ค 2558 เวลา 18.00 น.

Page 15: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

14

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

รายละเอยดชวงเวลาทผใชมการเขามาใชงานมากทสดของระบบมเพยง 1 ชม ของการเปดใหคน

เขามา Access web site http://admission.swu.ac.th เทานน ซงในเวลา 1 ชมจะมยอด session นน

ประมาณ 338K sessions

จากขอมลขางตนท Firewall ทมคน access เขามาถง 338K sessions แตเนองจากมบางสวนเขา

ไดและบางสวนเขาไมได ใน Firewall จงมบางสวนทเปน incomplete คอนขางเยอะพอสมควร

รายละเอยดขอมลจาก log เครอง web server admission นน ชวงเวลา 18.00 - 19.00 น. ม IP

เขามาทงหมดเพยง 1,214 Unique IP เทานน แตม Session ในชวงนนเทากบ 67,535 sessions ซงถา

จากขอมลนจะพบวา sessions ทง 67,535 นน มใกลเคยงกบคาทเราท าการ Load test เพราะตอนทท าการ

load test เราท าการ load test ท 1,000 sessions ในเวลา 10 วนาท ถาใน 1 นาทกจะตองม 6,000

sessions ถา 1 ชม กตองเทากบ 60,000 sessions แตตอนเขามาจรงนนใน 1 ชมมเขามา 67,535

sessions นนระบบกยงรบไดและสามารถใชงานไดอย

แตในครงนการทเรา limit connection ท Web server กเพอไมให Database นนมปญหาท าให

ระบบนนยง run อยไดแตในความเปนจรงผใชทเขามาบางสวนในชวงเวลานนอาจจะเขาหนา web site

Page 16: รายงานผลการดำเนินการทดสอบ Load Test ระบบงาน Admission

15

รายงานผลการด าเนนการทดสอบ Load Test ระบบงาน Admission ฝายระบบคอมพวเตอรและเครอขาย ส านกคอมพวเตอร l

admission.swu.ac.th ไมได จงท าใหผใชบางคนท าการกด refresh เขามาท าใหจ านวน Sessions นนจง

สงถง 338K sessions แต sessions ทเขามาใชงานไดนนมเพยง 67,535 sessions เทานน

หมายเหต ค าสงทใชในการหา จ านวน IP และ จ านวน Sessions นนมดงน

เรมจากท าการตด Log ใน /var/log/nginx/access.log-20150316 กอนใหเหลอเฉพาะชวงเวลา

18.00 - 19.00 น. จากนนใชค าสง

# cat access.log-20150316 | awk -F “ “ ‘{print $1}’ |sort |uniq |wc -l

จากค าสงนจะไดคาออกมาเทากบ 1,214 IP ทเปน uniq

# cat access.log-20150316 | grep GET |wc -l

จากค าสงนจะได 67,535 sessions ทมการ GET คาจาก Web server

ซงจะชวงเวลาประมาณ 18.30 ซงเปนเวลาทเปน Peak time ทสด load ของ cpu บนเครอง Stone ทเปน

Database จะอยทประมาณ 12 เปน load average ทมากพอสมควรแตระบบยงสามารถท างานไดและไมได

ชามากถงกบรบไมได

top - 18:30:53 up 25 days, 29 min, 3 users, load average: 12.38, 11.40, 10.50

Tasks: 524 total, 2 running, 522 sleeping, 0 stopped, 0 zombie

Cpu(s): 3.4%us, 0.1%sy, 0.0%ni, 96.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 132050756k total, 130992484k used, 123058272k free, 26464k buffers

Swap: 102406332k total, 329196k used, 102077136k free, 7889888k cached