ton.packetlove.com Version 3.00 beta
 :: Today : Sat, 16 Dec 2017 06:40:31 +0700
:: Search
Find All you need in ton.packetlove.com
HOME ABOUT US DIARY GALLERY FRIEND NIGHT GUESTBOOK FORUM

 
  :: How to Design Infrastructure for High Speed and High Load Web Server



เสม็ด จะได้ไปแล้ว ในรูปไปเที่ยวกับเพื่อน ๆ travel-is.com ปีที่แล้ว
ดูรูปเพิ่มเติมได้ที่ http://www.travel-is.com/forum/view.php?qID=27

วันนี้ผมนั่งอยู่ห้อง เพราะว่าไม่ค่อยสบาย ไม่ได้ไปทำงาน ก็เลยคิดคำถาม แล้วก็หาคำตอบ
เพื่อที่จะมาเขียน เป็นความรู้ให้กับคนที่สนใจ ว่าทำอย่างไร จะออกแบบระบบของเว็บ
ให้เข้าถึงได้เร็ว และรองรับกับจำนวนคนเข้าที่มาก ๆ ได้อย่างมีประสิทธิภาพ ..

How to Design Infrastructure for High Speed and High Load Web Server

สำหรับในส่วนของ Network Infrastructure ที่ควรทำ มีดังนี้
- distribute คือพยายาม กระจาย bandwidth ที่เข้ามา ไปหลาย ๆ ทาง อาจจะใช้
CDN หรือ cache ช่วย ทำให้ลด bandwidth ของ Web Server หลักได้
ป้องกันปัญหา DoS Attack ทำให้ผู้ใช้งาน เข้าเว็บได้เร็วขึ้น จาก ISP ที่ใช้อยู่
ในที่นี้รวมไปถึงการกระจาย switch ของ network แต่ละวง ไปใช้คนละตัว
เพื่อลด overhead ที่เกิดขึ้นจาก connection ของ server
นอกจากการ distribute ในส่วนของ bandwidth ขาเข้าแล้ว การ distribute ในส่วนของ
Web Server เอง เช่นการใช้ server หลาย ๆ ตัวทำ load balance กันก็ช่วยได้มาก

- พยายาม ลดความยุ่งยากของอุปกรณ์ต่าง ๆ ลง ยิ่งมีอุปกรณ์ที่มาขวางหน้า Web Server
มากเท่าไร ก็ยิ่งทำให้เกิด lost time มากขึ้นตาม พวก firewall ที่ไม่จำเป็น ไม่ควรใช้
การ attack Web Server ส่วนใหญ่มาจาก DoS Attack firewall เอง เมื่อรับ load
หนัก ๆ ก็จะเดี้ยงไป ไม่เป็นท่าเหมือนกัน ให้คิดว่า firewall มันก็คือ hardware ตัวนึง
เจอ load หนัก ๆ ก็ไม่รอดเหมือนกัน CPU ทำงานหนัก memory หมด วิธีที่ดีที่สุด
ในการออกแบบ Infrastructure สำหรับ Web Server ก็คือ พยายามกระจาย load
ให้ได้มากที่สุด

สำหรับในส่วนของ Web Server เอง ที่ควรทำ มีดังนี้
- ควรมี cache พวก Revert Proxy ช่วยลดภาระของ Web Server จริง ๆ ได้มาก
เพราะ content ที่เป็น static จะไม่ต้อง request จาก Web Server อีก

- ควรแบ่งส่วนของ static content กับ dynamic content แยกออกจากกัน
พวก static content ก็คือพวก .html, .jpg, .gif, .css, .js ส่วน dynamic content
ก็คือพวก file script ต่าง ๆ การแบ่งแยกโดยเด็ดขาดแบบนี้ช่วยในเรื่อง cache ได้ดีมาก
อาจจะแยกไปเก็บอีก server นึงเป็น images.domain.com ลดภาระของ server หลัก

- ควรแบ่งหมวดหมู่ของ content ด้วย subdomain แทนการแบ่งโดย directory
เพราะช่วยในเรื่องของการ distribute load และสะดวกต่อการปรับแต่งต่าง ๆ
แต่ละ subdomain แยกไปที่ Web Server คนละตัว เวลามีปัญหาจะได้ไม่กระทบกัน

- ควรแบ่ง directory เป็นแบบ tree คือกระจายย่อย ๆ เป็น sub directory เพื่อช่วย
เพิ่มความเร็วในการ list directory และ file system บน Unix จะมีข้อจำกัดคือมี
จำนวน directory ได้ไม่เกิน 32000 directory ย่อย

- ถ้าเป็นไปได้ ไม่ควรใช้ NFS ในกรณีที่ไม่จำเป็น เพราะการ access ผ่าน network มี
lost time สูงกว่าการ access ผ่าน local disk ถ้าเลี่ยงไม่ได้จริง ๆ เช่นต้อง share
file ร่วมกัน file นั้นควรเป็นพวก static content ที่ไม่ต้องมีการ execute ส่วนพวก
file .php, .pl ที่เป็น file script ถ้าเป็นไปได้ควรเก็บที่ local disk วิธีที่ดีที่สุด ที่ไม่ต้อง
ให้ developer ยุ่งยากในการ ftp file พวกนี้เข้าไปไว้แต่ละเครื่อง ก็คือทำ rsync ไว้
ftp เข้าเครื่องหลักเครื่องเดียว ก็สามารถ sync ไปยังเครื่องอื่น ๆ ได้ auto

สำหรับในส่วนของ Database Server เอง ที่ควรทำ มีดังนี้
- ควรมีการกำหนด index และ primary key ที่จำเป็น ทุก ๆ table ตรงนี้มีผลมาก ๆ
การ design database มีความสำคัญมาก มีผลต่อความเร็วของการ query

- ควรแบ่งการ read/write ออกจากกัน โดยแยก DB หลัก ที่ใช้สำหรับ write only ออกไป
เพราะการใช้งานส่วนใหญ่ จะเป็นการ SELECT ประมาณ 95% เราก็ควรกระจาย DB
สำหรับ read only ไปหลาย ๆ ตัว เพื่อเป็นการกระจาย load ของ DB แต่ละตัวออกไป
สำหรับ DB Master กับ DB Slave ควรมีการ replicate กัน ในระยะเวลา ที่เหมาะสม

ที่เขียนมานี้เป็นหลัก ๆ ของการออกแบบระบบ เพื่อให้เว็บทำงานได้เร็วขึ้น รายละเอียดปลีกย่อย
หรือรายละเอียดในเชิงเทคนิค ถ้ามีเวลา ผมจะมาเล่าอีกว่าควร set ค่าของอะไรยังไงบ้าง ..

ปล.วันที่ 8-10 พ.ค. ไปเที่ยวเสม็ดกับชิน+หัวบุ๋ม และคณะ อิอิ



::[ 30/04/2008 , 11:34:15 ]

<< back Macbook Pro Photo Booth.. | อาโป น่าร.. next >>

:: Comment :

ป๋าต้น แก เก๋าแฮะ

รอบหน้าขอ การ optimize tunning หน่อยน่ะป๋า


by : golfreeze [ 30/04/2008 , 11:40:24 ]


แหล่งกำเนิดเซียนทั้งหลาย...มาจากโคตรเซียนนี่เอง อิอิ แจ่มพี่

by : c0ol [ 30/04/2008 , 16:38:02 ]


ไม่รู้เรื่องเลย -.-

เมพจริง

by : 2c [ 01/05/2008 , 13:48:21 ]


เทพจริง ๆๆ


http://www.iiuj.com

by : bbank [ 21/05/2008 , 11:48:09 ]

:: Add Comment :
Security code : Vous must read and type the 6 chars within 0..9 and A..F
*
Name :
E-mail :
URL :
Comment :
 
 
 



Link ที่น่าสนใจ

- Blog

- เว็บสำเร็จรูป, เว็บไซต์สำเร็จรูป, ทำเว็บ
- เปิดร้านค้า, สินค้า, แฟชั่น, ช้อปปิ้ง

- ส่ง sms ฟรี ทุกระบบ ส่งปุ๊บ ถึงปั๊บ
- นาฬิกา แฟชั่น brandname มากมาย
- hosting คุณภาพดี ราคาถูก
- เดินทาง ท่องเที่ยว ถ่ายภาพ
- ประกาศ ซื้อ ขาย สินค้าทุกอย่าง
- upload video ให้เพื่อนดู
- Free Web Hosting 100 MB

- รับเขียนโปรแกรม php+MySQL
- รับดูแลระบบและแก้ไขปัญหาบน Unix
- รับถ่ายรูปงานรับปริญญา-งานแต่งงาน
- รับจัด trip ภายในและภายนอกประเทศ

สนใจติดต่อ 086-8885195 (ต้น)

Copy right © 2000-2008. All right reserved. :: Special Thanks : PacketLove.com
เว็บสำเร็จรูป | เว็บไซต์สำเร็จรูป | ทำเว็บ | เปิดร้านค้า | สินค้า | แฟชั่น | ช้อปปิ้ง
eXTReMe Tracker