เช็ค Performance ของ SIP Server ด้วยโปรแกรม SIPp

โปรแกรมบน CentOS ที่ควรติดตั้งใช้งานร่วมกับ VoIP Server

เช็ค Performance ของ SIP Server ด้วยโปรแกรม SIPp

โพสต์โดย voip4share » 21 ก.พ. 2010 20:43

SIPp
เป็นโปรแกรมซึ่งใช้ทดสอบและสร้างทราฟิกสำหรับโปรโตคอล SIP ครับ โปรแกรมนี้สามารถจำลองการทำงานเป็นได้ทั้ง SIP UAC (User Agent Client) และ UAS (User Agent Server) วิธีการที่โปรแกรมนี้ใช้ทดสอบประสิทธิภาพของ SIP คือสร้างคอลด้วยการส่ง Invite และเทอร์มิเนตด้วย Bye ส่งออกไปคราวละมากๆพร้อมกัน เราอาจจะสร้างเงื่อนไขในการทดสอบไว้ในไฟล์ XML ตั้งเงื่อนไขการทดสอบแบบง่ายๆไปจนถึงแบบที่ซับซ้อนแล้วให้โปรแกรมมาอ่านไปทำงาน
ในระหว่างการทดสอบโปรแกรม SIPp สามารถแสดงผลรายงานการทดสอบแบบเรียลไทม์ได้ เช่น call rate, round trip delay, message statistics เป็นต้น หรือจะส่งรายงานเป็นไฟล์ .csv ตามช่วงเวลาที่กำหนดไว้ก็ได้ รองรับการทดสอบทั้งแบบ TCP และ UDP สามารถสั่งให้มีการ retransmission ได้ และปรับ call rate แบบไดนามิค

SIPp สามารถทดสอบประสิทธิภาพของอุปกรณ์ต่างๆที่ทำงานบนโปรโตคอล SIP เช่น SIP Proxy, B2BUA, SIP Media Server, SIP Gateways, IP PBX เป็นต้น สามารถจำลองเป็น User Agent โทรเข้าระบบได้หลายพันคอล

โปรแกรมมีเว็บอินเตอร์เฟสด้วยนะครับ รันได้ทั้งบน Windows XP และ Linux

1. ดาวน์โหลด
http://sourceforge.net/projects/sipp/files/
คลิ๊ก sipp นะครับ เอาเวอร์ชั่นใหม่ล่าสุด
ผมจะเอามารันบน CentOS ก็เลยดาวน์โหลดซอร์สโค๊ด

** เวอร์ชั่นล่าสุดจริงๆจะอยู่ที่เว็บนี้นะครับ https://github.com/SIPp/sipp/releases **[/b][/size][/color]

โค้ด: เลือกทั้งหมด
cd /tmp
wget http://downloads.sourceforge.net/project/sipp/sipp/3.1/sipp.3.1.src.tar.gz?use_mirror=nchc
tar xzvf sipp.3.1.src.tar.gz -C /usr/src


2. ติดตั้ง SIPp
มีให้เลือกติดตั้ง 4 แบบครับ ดังนี้

2.1 ติดตั้งแบบไม่รองรับ TLS และ Authentication
โค้ด: เลือกทั้งหมด
cd /usr/src/sipp.svn
make


2.2 ติดตั้งให้รองรับ TLS และ Authentication
ต้องติดตั้ง openssl, openssl-devel ด้วยนะครับ
โค้ด: เลือกทั้งหมด
cd /usr/src/sipp.svn
make ossl


2.3 ติดตั้งให้รองรับ PCAP Play แต่ไม่รองรับ Authtication
โค้ด: เลือกทั้งหมด
cd /usr/src/sipp.svn
make pcapplay


2.4 ติดตั้งให้รองรับ PCAP Play และ Authentication
โค้ด: เลือกทั้งหมด
cd /usr/src/sipp.svn
make pcapplay_ossl


make เสร็จแล้วก็พร้อมใช้งานทันทีครับ ไม่ต้องสั่ง make install นะครับ เพราะมันไม่มี

3. คำสั่งรัน SIPp
สั่งรันคำสั่งจากไดเร็คตอรี่ /usr/src/sipp.svn ได้เลยครับ รูปแบบคำสั่งเป็นแบบนี้

โค้ด: เลือกทั้งหมด
./sipp remote_host[:remote_port] [options]


โดยที่
remote_host คือ IP Address หรือ Domain Name ของ SIP Server ที่เราจะเทส
remote_port คือ SIP Port ที่ SIP Server ทำงานอยู่
ส่วนโปรแกรม SIPp มันจะเลือกใช้ Local Port ที่ยังว่างอยู่ครับ (หรือเราใช้ออปชั่นบังคับพอร์ตเลยก็ได้) เริ่มต้นจาก 5060
options เป็นออปชั่นครับ เรียกดูออปชั่นโดยพิมพ์คำสั่ง
โค้ด: เลือกทั้งหมด
./sipp -h

ครับ

4. ลองใช้ SIPp ด้วยคำสั่งง่ายๆ
รูปแบบคำสั่ง
โค้ด: เลือกทั้งหมด
./sipp -sn uac -r 7 -rp 2000 127.0.0.1

ให้ sipp ส่ง 7 call ทุก 2 วินาที (3.5 call ต่อวินาที)

กดปุ่ม p เพื่อ pause การส่ง traffic มันจะหยุดส่ง call ใหม่ และรอจนกว่า call เก่าจะสิ้นสุด กดปุ่ม p อีกครั้งเพื่อเริ่มส่งใหม่
กด q ออกจากโปรแกรม
ออปชั่นเสริม
-bg รันเป็นแบ๊คกราวด์
-p port พอร์ตที่ sipp จะใช้ ถ้าไม่ระบุจะใช้พอร์ตที่ว่าง เริ่มจาก 5060
-rp ส่งซ้ำทุกๆ (หน่วย millisecond)
-r ระบุจำนวนคอลที่จะส่ง
-s user_name สำหรับ authentication
-ap password สำหรับ authentication

สำหรับ Asterisk ต้องคอนฟิก Asterisk เพิ่มก่อนครับ จึงจะใช้ SIPp เทสได้ ไม่งั้นเทสไม่ผ่าน วิธีการเทส Asterisk ด้วย SIPp

4. ติดตั้ง Web Front End

4.1 ดาวน์โหลดและติดตั้งไว้ในไดเร็คตอรี่ของ Web Server
โค้ด: เลือกทั้งหมด
cd /tmp
wget http://downloads.sourceforge.net/project/sipp/sipp/3.1/sipp_webfrontend_v1.2.tgz?use_mirror=nchc
tar xzvf sipp_webfrontend_v1.2.tgz -C /var/www/html
cd /var/www/html
mv src sipp


4.2 สร้างดาต้าเบสชื่อ SIPpDB (ตั้งชื่ออะไรก็ได้)สร้างด้วย phpMyAdmin หรือคอมมานด์ไลน์ก็ได้ ผมจะสร้างด้วยคอมมานด์ไลน์ครับ

โค้ด: เลือกทั้งหมด
mysql -uroot -ppassword


ก๊อปปี้บรรทัดต่อไปนี้แล้ววางหลังพร้อมท์ mysq>
CREATE DATABASE `SIPpDB` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

INSERT INTO `mysql`.`user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `ssl_type`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`) VALUES ('localhost', 'sippuser', PASSWORD('sipppass'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '0', '0', '0', '0');

INSERT INTO `mysql`.`db` (`Host`, `Db`, `User`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Execute_priv`) VALUES ('localhost', 'SIPpDB', 'sippuser', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

flush privileges;
exit


4.3 อิมพอร์ตดาต้าเบส
โค้ด: เลือกทั้งหมด
cd /var/www/html/sipp
mysql -usippuser -psipppass SIPpDB < tables.sql


4.4 แก้ไขไฟล์คอนฟิก
โค้ด: เลือกทั้งหมด
vi /var/www/html/sipp/config.ini.php

แก้ไขข้อมูลคอนเน็คเข้าดาต้าเบสและพาสเวอร์ดเข้าเว็บ

[CONFIG]
db_host = "localhost"
db_user = "sippuser"
db_pwd = "sipppass"
db_name = "SIPpDB"
csv_separator = ";"
admin_pwd = "secretkik"


5. เข้าเว็บ
http://x.x.x.x/sipp

web-1-s.png
Web Login
web-1-s.png (30.13 KiB) เปิดดู 4069 ครั้ง

web-2-small.png
Web
web-2-small.png (34.52 KiB) เปิดดู 4069 ครั้ง


อ่านวิธีการใช้งานเว็บได้ที่เว็บไซต์ http://sipp.sourceforge.net/web_frontend/index.html
voip4share
Administrator
 
โพสต์: 656
ลงทะเบียนเมื่อ: 18 พ.ย. 2009 11:26
ที่อยู่: รามคำแหง กรุงเทพฯ

ย้อนกลับไปยัง CentOS - The Community Enterprise Operating System

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 5 ท่าน

cron