โหลดเว็บเซิร์ฟเวอร์ทดสอบด้วย Siege Benchmarking Tool
การรู้ว่าเว็บเซิร์ฟเวอร์ของคุณสามารถรับมือกับปริมาณการรับส่งข้อมูลได้มากเพียงใดเมื่ออยู่ภายใต้ความเครียดเป็นสิ่งสำคัญสำหรับการวางแผนการเติบโตของเว็บไซต์หรือแอปพลิเคชันของคุณในอนาคต ด้วยการใช้เครื่องมือที่เรียกว่า ล้อม คุณสามารถเรียกใช้การทดสอบโหลดบนเซิร์ฟเวอร์ของคุณและดูว่าระบบของคุณทำงานอย่างไรภายใต้สถานการณ์ที่แตกต่างกัน
คุณสามารถใช้ การปิดล้อม เพื่อประเมินปริมาณข้อมูลที่ถ่ายโอน เวลาตอบสนอง อัตราการทำธุรกรรม ปริมาณการประมวลผล การทำงานพร้อมกัน และจำนวนครั้งที่เซิร์ฟเวอร์ส่งคืนการตอบกลับ เครื่องมือนี้มีสามโหมด ซึ่งสามารถทำงานได้ – การถดถอย, การจำลองอินเทอร์เน็ต และ กำลังดุร้าย
ข้อสำคัญ: ล้อม ควรรันกับเซิร์ฟเวอร์ที่คุณเป็นเจ้าของเท่านั้น หรือบนเซิร์ฟเวอร์ที่คุณได้รับอนุญาตอย่างชัดแจ้งในการทดสอบ ในบางประเทศ การใช้การปิดล้อมเว็บไซต์ที่ไม่ได้รับอนุญาตถือได้ว่าเป็นอาชญากรรม
การติดตั้งยูทิลิตี้การทดสอบการโหลด Siege HTTP ใน Linux
Siege เป็นหลายแพลตฟอร์มและสามารถติดตั้งได้ภายใต้การกระจาย Ubuntu/Debian และ CentOS/RHEL โดยใช้คำสั่งต่อไปนี้
หากต้องการติดตั้ง Siege ภายใต้ Debin/Ubuntu คุณสามารถเรียกใช้:
sudo apt install siege
สำหรับ CentOS/RHEL คุณต้องติดตั้งและเปิดใช้งานพื้นที่เก็บข้อมูลเพื่อติดตั้ง Siege ด้วย:
yum install epel-release
yum install siege
หรือคุณสามารถสร้าง ล้อม จากแหล่งที่มาได้ เพื่อจุดประสงค์ดังกล่าว คุณจะต้องติดตั้งแพ็คเกจ จำเป็นต่อการสร้าง และแพ็คเกจการพัฒนา
sudo apt install build-essential #Ubuntu/Debian
yum groupinstall 'Development Tools' #CentOS/RHEL
จากนั้นคุณสามารถดาวน์โหลด Siege โดยใช้คำสั่ง wget และติดตั้งจากแหล่งต่างๆ ดังที่แสดง
wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
sudo make && make install
การกำหนดค่ายูทิลิตีการทดสอบการโหลด Siege HTTP ใน Linux
เมื่อคุณติดตั้งเสร็จแล้ว คุณสามารถปรับไฟล์การกำหนดค่า ล้อม ได้ ตั้งอยู่ใน /etc/siege/siegerc ในกรณีที่คุณตัดสินใจสร้างแพ็คเกจจากแหล่งที่มา คุณจะต้องรัน:
sudo siege.config
สิ่งนี้จะสร้างไฟล์ siege.conf ที่อยู่ในบ้านของผู้ใช้ของคุณ ~/.siege/siege.conf
เนื้อหาของไฟล์ควรมีลักษณะเช่นนี้ โปรดทราบว่าฉันไม่ได้ใส่เครื่องหมายข้อคิดเห็นคำสั่ง logfile และ time:
cat siegerc |egrep -v "^$|#"
ผลลัพธ์ตัวอย่าง
logfile = $(HOME)/var/log/siege.log
verbose = false
color = on
quiet = false
show-logfile = true
logging = false
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
time = 1M
delay = 0.0
internet = false
benchmark = false
accept-encoding = gzip, deflate
url-escaping = true
unique = true
ด้วยการกำหนดค่าปัจจุบัน ล้อมจะเลียนแบบผู้ใช้ 25 คนพร้อมกันในระยะเวลา 1 นาที
ตอนนี้คุณพร้อมที่จะเปิดล้อมแล้ว
ทดสอบการโหลดเว็บไซต์ด้วย Siege Benchmarking Utility
การเรียกใช้ ล้อม นั้นค่อนข้างง่าย คุณเพียงแค่ต้องระบุเว็บไซต์ที่คุณต้องการทดสอบดังนี้:
siege example.com
หากความพร้อมใช้งานยังคงอยู่ที่ 100% และไม่มีการเชื่อมต่อที่ล้มเหลว แสดงว่าระบบของคุณทำงานได้ดีและไม่มีปัญหา คุณควรจับตาดูเวลาตอบสนองด้วย
เรียกใช้ Siege กับหลายเว็บไซต์
คุณสามารถทดสอบ URL หลายรายการได้โดยตั้งค่า ล้อม ให้อ่านจากไฟล์ คุณสามารถอธิบาย URL ใน /usr/local/etc/urls.txt ได้ดังนี้:
ตอนนี้หากต้องการบอก siege ให้ทดสอบ URL จากไฟล์ ให้ใช้ตัวเลือก -f
ดังนี้:
siege -f /usr/local/etc/urls.txt
คุณยังสามารถใช้ตัวเลือกบรรทัดคำสั่งได้ หากคุณต้องการลองการตั้งค่าที่แตกต่างจากที่อธิบายไว้ในไฟล์การกำหนดค่า
-C
– ระบุไฟล์การกำหนดค่าของคุณเอง-q
– ระงับเอาต์พุตของการปิดล้อม-g
– GET ดึงส่วนหัว HTTP ลงแล้วแสดงธุรกรรม มีประโยชน์สำหรับการดีบัก-c
– จำนวนผู้ใช้พร้อมกัน ค่าเริ่มต้นคือ 10-r
– กี่ครั้งที่จะทำการทดสอบ-t
– ระยะเวลาในการทำการทดสอบ คุณสามารถระบุ S, M หรือ H เช่น –time=10S เป็นเวลา 10 วินาที-d
– ความล่าช้าแบบสุ่มก่อนแต่ละคำขอ-b
– ไม่มีความล่าช้าระหว่างคำขอ-i
– การจำลองผู้ใช้ ใช้เพื่อเข้าถึง URL แบบสุ่ม-f
– ทดสอบ URL จากไฟล์ที่ระบุ-l
– ไฟล์บันทึก-H
– เพิ่มส่วนหัวที่จะร้องขอ-A
– ระบุตัวแทนผู้ใช้-T
– ตั้งค่าประเภทเนื้อหาตามคำขอ--no-parser
– NO PARSER ปิด parser หน้า HTML--no-follow
– อย่าติดตามการเปลี่ยนเส้นทาง HTTP
บทสรุป
Siege เป็นเครื่องมืออันทรงพลังในการวัดความน่าเชื่อถือของระบบเมื่อมีภาระงานสูง นักพัฒนาเว็บสามารถใช้เพื่อทดสอบโค้ดของตนเมื่อไซต์ถูกข่มขู่ คุณควรรันการทดสอบด้วยความระมัดระวังเสมอ เนื่องจากเซิร์ฟเวอร์ที่ทดสอบอาจไม่สามารถเข้าถึงได้ในระหว่างการประเมิน