การสร้างระบบ Load Balance Web Server ด้วยวิธีการ URL Redirect

เราสามารถสร้างระบบ Load Balance Web Server ด้วยวิธีการ URL Redirect โดยสามารถสร้างด้วยภาษาใดก็ได้ แต่จะขอยกตัวอย่างด้วยภาษา PHP ได้ง่าย ๆ ดังนี้ ตัวอย่างไฟล์ server-status ที่ได้ทำการ monitor web server มาเรียบร้อยแล้ว webserver1.testlab UP webserver2.testlab DOWN – เราสามารถใช้คำสั่งดึงไฟล์เพื่อคัดเฉพาะ Web Server ที่สามารถใช้งานได้จริง ๆ ดังนี้ exec(“cat /tmp/server-status | grep UP”,$redirect); – จากนั้นจะทำการ นำรายการ server ทั้งหมดซึ่งอยู่ในตัวแปร $redirect มาทำการสุ่ม ดังนี้ $random = rand(0,(count($redirect)-1); – ก็จะทำเอาเลข server ที่ random ได้ไปเข้ากระบวนการ Redirect ดังนี้ $server = explode(” “,$redirect[$random]); header(‘HTTP/1.1 301 Moved Permanently’); header(‘Cache-Control: no-store, no-cache, must-revalidate’); header(‘Expires: Thu, 01 Jan 1970 00:00:00 GMT’); header(‘Location: https://’.$server[0].’/’); unset($server); ในกรณีที่ต้องการสร้างหน้ารอให้ทำการตรวจสอบว่าในกรณีที่ไม่มีเครื่องให้บริการให้แสดงข้อความ ตัวอย่างดังนี้ if(count($redirect)==0){ echo “Server Unavailable or Maintenance Period”; } ดังที่กล่าวมาทั้งหมดข้างต้นสามารถรวมเป็น script ไฟล์ PHP ได้ดังนี้ <?php exec(“cat /tmp/server-status | grep UP”,$redirect); if(count($redirect)==0){ echo “Server Unavailable or Maintenance Period”; }else{ $random = rand(0,(count($redirect)-1)); $server = explode(” “,$redirect[$random]); header(‘HTTP/1.1 301 Moved Permanently’); header(‘Cache-Control: no-store, no-cache, must-revalidate’); header(‘Expires: Thu, 01 Jan 1970 00:00:00 GMT’); header(‘Location: http://’.$server[0].’/’); unset($server); } unset($redirect); ?> *สามารถอ่านวิธีสร้างไฟล์สำหรับ monitor web serverได้จาก บทความนี้ http://sysadmin.psu.ac.th/2014/06/19/monitor-web-server-wget-shell-script-daemon/

Read More »

อยากได้ linux mint ไปใช้ ต้องทำอย่างไร

หากท่านต้องการแผ่นดีวีดี linux mint เพื่อนำไปทดลองใช้งาน หรือ ติดตั้งลงฮาร์ดดิสก์ สำหรับท่านที่อยู่ต่างประเทศ แนะนำให้ไป download จากเว็บไซต์ http://www.linuxmint.com/ แต่สำหรับพวกเราที่อยู่ใน ม.อ. หรือ ในประเทศไทย สามารถเลือก download ได้ที่ https://licensing.psu.ac.th/ เลือก Search Results for: linux mint เวอร์ชั่นปัจจุบันที่เขียน blog ในวันนี้ เป็นเวอร์ขั่นที่ออกเมื่อ 31 พ.ค. 2557 linux mint 17 อยู่ที่ https://licensing.psu.ac.th/linux-mint-17-qiana-released/ การเลือกแผ่นดีวีดีที่ต้องการ หากต้องการการแสดงผลที่หวือหวา วูบวาบ ก็เลือก cinnamon หากต้องการให้ compat กับเกมส์ Windows ที่จะนำมาลงผ่านโปรแกรม Wine ของ linux ก็เลือก mate หากเครื่องคอมฯมี RAM มากกว่า 4 GB ก็ใช้รุ่น 64 bit ไฟล์ iso ที่จะ Download มีชื่อแบบนี้ linuxmint-17-cinnamon-dvd-32bit.iso linuxmint-17-cinnamon-dvd-64bit.iso linuxmint-17-mate-dvd-32bit.iso linuxmint-17-mate-dvd-64bit.iso การเขียนแผ่นดีวีดี linux mint จากไฟล์ iso เมื่อ download ไฟล์ iso ของ linux mint มาได้แล้ว สำหรับ linux ก็ให้ใช้โปรแกรมสำหรับเขียนแผ่นดีวีดี ชื่อ Brasero จาก Menu > Sound & Video > Brasero > เลือก burn สำหรับ Windows 7, 8, 8.1 คลิกขวาและเลือกคำสั่ง burn นอกจากนี้ ผมยังได้ทำแผ่นพิเศษขึ้นเพื่อแนะนำซอฟต์แวร์โอเพนซอร์สที่น่าใช้และติดตั้งเพิ่มได้จาก linux mint ไม่ได้ไป download จากที่เว็บไหนเลย หากสนใจวิธีทำก็อ่าน เบื้องหลังการทำแผ่น ครับ) หากต้องการ download ไฟล์ iso ของ linux mint ฉบับติดตั้งโปรแกรมเพิ่มแล้ว ที่นี่ครับ http://ftp.psu.ac.th/pub/linuxmint/linuxmint-17-psu-cc-32bit.iso md5sum: ตรวจสอบจากไฟล์ http://ftp.psu.ac.th/pub/linuxmint/linuxmint-17-psu-cc-32bit.iso.md5 และมีของแถมเป็นแผ่นพับ (Bochure) คำแนะนำการใช้แผ่นดีวีดี linux mint http://opensource.cc.psu.ac.th/wiki-opensource/images/b/bb/Bochure-linuxmint-2-for-printing-only.pdf สุดท้าย ผมมีเอกสารแนะนำการใช้งาน linux mint อยู่บ้างที่นี่ครับ http://opensource.cc.psu.ac.th/Linuxmint  

Read More »

การทำแผ่นดีวีดี linux mint ฉบับติดตั้งโปรแกรมเพิ่มแล้ว

ผมแจกฟรีแผ่น DVD linux mint 17 ฉบับติดตั้งโปรแกรมเพิ่ม ที่ห้องโถงอาคารศูนย์คอมพิวเตอร์ ผมก็คิดว่าน่าจะนำความรู้มาเผยแพร่ไว้ตรงนี้ด้วย ลองอ่านดูนะครับ เริ่มต้น ผมก็ไปเอาไฟล์ linuxmint-17-mate-dvd-32bit.iso จากเว็บไซต์ https://licensing.psu.ac.th/linux-mint-17-qiana-released/ ซึ่งไฟล์ที่วางไว้ในเว็บไซต์นี้ก็ไป download มาจากของแท้ที่เมืองนอกนะครับ นำมาติดตั้งเป็น Virtual Machine ในโปรแกรม Oracle VM VirtualBox โดยสร้าง username คือ mint password คือ mint และตั้งให้ auto login จากนั้นก็ปรับแต่งการอัปเดตเวอร์ชั่นให้อัปเดตจากเซิร์ฟเวอร์ในมหาวิทยาลัย (ในเมืองไทย) โดยการแก้ไขที่ไฟล์ official-package-repositories.list ด้วยคำสั่งดังนี้ sudo vi /etc/apt/sources.list.d/official-package-repositories.list โดยเปลี่ยน 2 แห่ง คือ 1.เปลี่ยนจาก archive.ubuntu.com เป็น th.archive.ubuntu.com 2.เปลี่ยนจาก packages.linumint.com เป็น mirrors.psu.ac.th/linuxmint-packages ต่อไปก็ตั้งค่า time zone ดังนี้ Menu > Administration > Time and Date > Click to make changes Time zone: Asia/Bangkok ต้องการให้ผู้ได้รับแผ่นดีวีดีนี้ไปใช้งานได้สะดวก จึงเพิ่มคำสั่งนี้เพื่อให้ไม่ต้องถาม password ทุกครั้งที่จะเพิ่มโปรแกรม sudo sh -c “echo ‘mint ALL=NOPASSWD: ALL’ >> /etc/sudoers” ผู้ใช้งานส่วนใหญ่จะใช้ฟอนต์ภาษาไทย TH SarabanPSK ผมก็ช่วยลงให้ซะเลย sudo wget ftp://ftp.psu.ac.th/pub/thaifonts/sipa-fonts/*ttf -P /usr/share/fonts/truetype/thai ติดตั้งโปรแกรมต่างๆเพิ่มดังนี้ สำหรับแสดงรายชื่อ hardware sudo apt-get install lshw-gtk สำหรับตรวจเช็คสถานะ LAN card sudo apt-get install ethtool สำหรับดึงข้อมูลเว็บเพจมาดำเนินการ sudo apt-get install curl สำหรับใช้งานเบราว์เซอร์ google chrome sudo touch /etc/default/google-chrome แล้วไป download จากเว็บไซต์ของ google อาจทำด้วยคำสั่งข้างล่างนี้ wget -q -O – https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add – sudo sh -c ‘echo “deb http://dl.google.com/linux/chrome/deb/ stable main” >> /etc/apt/sources.list.d/google.list’ sudo apt-get update sudo apt-get install google-chrome-stable ติดตั้งโปรแกรมต่างๆ ผ่านทาง Menu > Software Sources 1. Tuxmath  : เกมส์คิดเลขเร็ว 2. Tuxpaint  : เด็กหัดใช้เมาส์วาดภาพและตัวปั้มหมึก 3. Shutter  : screen capture tool 4. RecordMyDesktop and gtk-recordmydesktop  : บันทึกหน้าจอเป็นวิดีโอ 5. winff  : แปลงชนิดไฟล์ของไฟล์เสียง 6. audacity  : ตัดหรือต่อไฟล์เสียง 7. gparted  : สร้างหรือเปลี่ยนแปลง disk partition 8. openshot  : ตัดหรือต่อวิดีโอ ไฟล์เสียง เพื่อทำเป็นวิดีโอ 9. libavcodec-extra-54 

Read More »

การทดสอบประสิทธิภาพ Web Server ประเภท Static Page : Apache2 vs Lighttpd บนเครื่อง Ubuntu 14.04 LTS

เครื่องมือในการทดสอบ Web Server OS : Ubuntu 14.04 LTS Client OS : Windows 8.1 Software : Apache Jmeter 2.11 Environment : Web Server Ubuntu Server (Oracle VM VirtualBox) Intel Haswell 1.6GHz (2.30GHz) 4 core RAM 512G Client Windows 8.1 (Physical Notebook) Intel Haswell 1.6GHz (2.30GHz) Intel Haswell 4 core RAM 8G – รันอยู่บนเครื่องเดียวกัน – ใช้ค่า Default ไม่มีการ Tuning เพิ่มเติม วิธีการทดสอบ 1. ทำการตั้งค่า Apache ให้อยู่คนละ Port กับ Lighttpd 2. ทำการสร้าง Static Page โดยมีตำแหน่ง และ HTML Code (index.html) ดังนี้ Apache : /var/www/html/index.html สำหรับ Apache ให้ rename ไฟล์เดิมก่อนเนื่องจากมีไฟล์อยู่แล้วด้วยคำสั่งดังนี้ sudo mv /var/www/html/index.html /var/www/html/index.html_bak Lighttpd : /var/www/index.html <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN”> <html> <head> <title>Webserver test</title> </head> <body> This is a webserver test page. </body> </html> 3. เปิดโปรแกรม Jmeter ทำการ Add Thread Group, HTTP Request, View Results Tree และ Graph Results 4. ทำการทดสอบโดยชี้ไปที่ Web Site ของ Web Server ที่ต้องการ โดยมีตัวอย่างดังรูป (จะสังเกตุว่ามีการตั้งค่า Timeout = 1500 ms เพื่อป้องกันโปรแกรมค้าง เนื่องจาก Web Server ไม่ยอมตอบ) *หมายเหตุ ระหว่างรัน Test สามารถตรวจสอบการทำงานของเครื่อง Web Server โดยติดตั้งโปรแกรมชื่อ htop ดังนี้ sudo apt-get install -y htop พิมพ์คำสั่ง htop จะปรากฎหน้าจอดังรูป การตั้งค่าทดสอบ Number of Threads (users) : 500,1000,2000,2500,3000 Ramp-Up Period (in seconds) : 1 Loop Count : 1 ตัวอย่างการทดสอบ จำนวน Users ที่เปิด Page ไม่สำเร็จ Number of Threads (users) 500 1000 2000 2500 3000 Apache2 0 28 424 2232 Jmeter Hang

Read More »

การติดตั้งโปรแกรมตรวจสอบประสิทธิภาพ Server : Apache Jmeter บนเครื่อง Windows

โปรแกรม Jmeter เป็นโปรแกรมสารพัดประโยชน์ใช้สำหรับทดสอบประสิทธิภาพการรองรับโหลดจำนวนมาก โดยในเบื้องต้นผมยังจะไม่อธิบายรายละเอียดโปรแกรมมากนะครับ จะนำเสนอแค่วิธีติดตั้ง และการ Test ในส่วนที่เป็น Web Server แบบไม่มี Script อะไรพิเศษเป็นหลัก แล้ววันหลังค่อยมาเปล่าในส่วนอื่น ๆ เช่นการ Test Load Database, LDAP, FTP, WebService ฯลฯ ถ้ามีโอกาสครับ ความต้องการพื้นฐานสำหรับโปรแกรม Jmeter 1. Java 6 ขึ้นไป 2. OS ซึ่งรองรับทั้ง Unix, Windows วิธีการติดตั้งบน Windows  Test OS : Windows 8.1 1. ติดตั้ง JAVA สามารถทำการ Download และติดตั้งได้จาก http://www.java.com/en/download/index.jsp 2. ดาวน์โหลดโปรแกรม Jmeter ได้จาก http://jmeter.apache.org/download_jmeter.cgi 3. Save file .zip ดังรูป 4. ทำการแตกไฟล์ออกมา และทำการรันไฟล์ ApacheMeter.jar ดังรูป (จะปรากฎเป็น icon java สามารถ double click รันได้เลย) ตัวอย่างการสร้าง Test Plan เพื่อทดสอบ Web Server 1. ทำการสร้าง Thread Group ภายใต้ Test Plan ดังรูป 2. หลังจากนั้นจะปรากฎหน้าต่างให้ตั้งค่าได้ดังนี้ Number of Threads (users) : จำนวนผู้ใช้งานที่ต้องการ ณ เวลานั้น ๆ (concurrent users) Ramp-up Period (in seconds) : เวลาหน่วงในการเพิ่มผู้ใช้งานจนถึงจำนวน Number of Threads ที่ตั้งไว้ เช่น Number of Threads = 300, Ramp-up Period = 60 แสดงว่า ภายใน 60 วินาทีจะมี จำนวนผู้ใช้เข้าสู่ระบบรวม 300 คน (ค่อย ๆ เพิ่มเข้าไปจนครบ 300 ใน 60 วินาที) Loop Count : คือจำนวนรอบที่ทำ ถ้าติด Forever ก็แสดงว่าทำตลอดไป *หมายเหตุ ระวังอย่างตั้งค่าเว่อร์จนเกินไป เครื่องผู้ที่สั่ง Test อาจจะทำงานไม่ไหว Hang ได้ 3. จากนั้นทำการสร้าง Sampler ที่เป็น HTTP Request เพื่อกำหนดค่า config เบื้องต้นที่จำเป็นในการทดสอบ ดังรูป 4. จะปรากฎให้ตั้งค่า หลัก ๆ ถ้าต้องการยิงทดสอบธรรมดา ๆ ให้ใส่เฉพาะ Server Name หรือ IP และ Path เช่น /regist.php ถ้าต้องการยิงหน้าแรกก็ใส่ / เฉย ๆ ดังรูป 5. หลังจากนั้นทำการเพิ่มในส่วนของรายงานผล โดยแนะนำ 2 ตัวคือ View Results Tree และ Graph Results 6. ตัวอย่างผลลัพธ์จาก Results Tree (วิธีการรัน Test ให้กดที่ปุ่ม Play สีเขียว และปุ่ม Stop สีแดงเพื่อหยุด) 7. ตัวอย่างผลลัพธ์ในรูปแบบ Graph

Read More »