Tags:

พอดีมี project ต้องทำ เป็น web content server ที่มีแต่ file jpg,png,swf โดยไม่มี process ใดๆอื่นเลยนอกจากนี้ content ล้วนๆ(ไม่มีแม้แต่ code html,php สักตัวเดียว)
ขอ share ประสบการณ์หน่อยครับ

หากผมมี server Xeon 2Core 2GHz, RAM 4G จะรองรับ concurrent user ได้สักกี่ concurrent ครับ (ผมทราบดีว่ามันมีตัวแปลมากมายในการกำหนด concurrent แต่อยากขอแค่ประมาณประสบการณ์จากผู้ที่เคยผ่านๆมาครับว่า เคยทำประมาณเท่าไร ) เช่น OS Linux Ram 4G เคยรับได้ 1000 concurrent ไม่ล่ม หรือ 10,000 concurrent/time สบายๆอะไรแบบนั้น ขอบคุณครับ

Get latest news from Blognone
By: bongikairu
ContributoriPhone
on 16 May 2011 - 19:06 #289526

ใช้อย่างอื่นที่ไม่ใช่ apache ได้ไหมครับ?

By: polawing on 16 May 2011 - 19:06 #289527 Reply to:289526

ได้ครับ ได้ทุกอย่างเลยที่มัน work ครับ

By: bongikairu
ContributoriPhone
on 16 May 2011 - 19:10 #289528 Reply to:289527

ลองดูตัวที่ชื่อว่า nginx ดูครับ

By: lancaster
Contributor
on 16 May 2011 - 21:01 #289551

lighttpd หรือไม่ก็ nginx ครับ

เรื่องจำนวนผมว่าลองเทสเองเลยดีกว่า แต่โดยทั่วไปแล้วก็ประมาณหลักพันครับ

By: deaw on 17 May 2011 - 00:10 #289620
deaw's picture
  • cpu 1 mhz ต่อ 1 connection ป่าว เหมือนเคยอ่านที่ไหนมา
  • storage เป็น raid 0 จะเร็วมั้ย ใช้ ssd หรือ hdd ทั่วไป
  • NIC ต้องทำ interface bonding มั้ย
By: deaw on 17 May 2011 - 00:21 #289623
deaw's picture

นึกออกละ มันเป็นปัญหา c10k นี่เอง
http://en.wikipedia.org/wiki/C10k_problem

อ่านๆ ดูแล้วน่าจะช่วยท่านได้เยอะนะ

By: ipats
ContributorNOOBIn Love
on 17 May 2011 - 02:32 #289669

ตามข้างบนบอกเลยครับ ก็ค่อนข้างเห็นด้วยนะ เอา lighttpd/nginx มาใช้น่าจะดีกว่า

แต่จริงๆ แล้ว apache เปล่าๆ เปลื่อยๆ ไม่มี mod อะไรเอามาใช้กับ static file ก็รับได้เยอะครับ แต่มันจะแตก process เยอะจน os/ram รับไม่ไหวไปเองมากกว่า (กรณีใช้ prefork นะ แบบอื่นไม่เคยใช้อะ) แล้วถ้าไฟล์ใหญ่ๆ แต่ b/w ต่ำ process มันจะคาอยู่ที่ writing state (ส่งข้อมูลไปที่ client) จนเต็ม process pool แล้วก็รับ connection ใหม่ไม่ได้ ก็อืด ก็ช้ากันไป

ที่เจอมา ถ้าไม่ได้ทำพวก comet หรืออะไรพวกนี้ที่ต้อง keep-alive นานๆ แค่ 1000 concurrents นี่ก็เยอะมากละนะครับ จริงๆ เซิร์ฟไฟล์ static ผมว่านับเป็น req/s น่าจะสื่อกว่า con นะ แต่อย่างที่บอก มันขึ้นกับ b/w แล้วก็ disk speed / ram cache / content ด้วยครับ (ถ้า content เป็นไฟล์เล็กๆ ยัดลง ramdisk นี่วิ่งฉิวครับ)

คำนวณคร่าวๆ ลิงค์ 100Mbps, user แค่พันคนโหลดพร้อมกัน ก็ได้แค่ที่ 100kbps เองครับ ไหนจะความเร็ว hdd ที่ว่าแต่ละคนโหลดคนละไฟล์ก็ seek กันสนุกสนานอีก (HDD random read อยู่ที่หลัก ไม่กี่สิบ MB/s ครับ เมื่อต้องอ่านไฟล์เป็นร้อยๆ พร้อมๆ กัน นี่ ช้ามาก) ผมสรุป (เอาเอง) กรณีนี้ b/w + disk สำคัญว่าครับ


iPAtS

By: polawing on 18 May 2011 - 10:22 #290131 Reply to:289669

file ผมขนาดไม่ใหญ่ครับ รวมๆ ก็ไม่น่าจะเกิน 8M (ขนาดส่วนใหญ่ประมาณ 1-20k)ถ้ายัดลง ramdisk ผมไม่ค่อยมีประสบการณ์พวกนี้มันจะ stable ไหมครับ

By: zephythor
iPhoneAndroidRed HatWindows
on 17 May 2011 - 04:20 #289699

เท่าที่เคยเห็นมา ไม่เคยเห็นใครตายเพราะ CPU นะครับ ตายเพราะ hdd หมุนไม่ทัน , hdd เจ๊งระเบิดเถิดเทิง iowait พุ่งปี้ด อะไรเทือกนั้นมากกว่า

lighttpd น่าจะพอเพียงแล้วอ่ะครับ มันทำมาสำหรับ serve static file อยู่แล้ว

By: polawing on 18 May 2011 - 10:03 #290115

ขอบคุณคำตอบทุกท่านครับ ได้ประโยชน์มากทีเดียว ใครมีประสบการณ์เพิ่มเติม มา share กันต่อได้นะครับ

By: kowito
Android
on 18 May 2011 - 16:00 #290299

ลอง G-WAN ดูสิครับ