พอดีมี 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 สบายๆอะไรแบบนั้น ขอบคุณครับ
ใช้อย่างอื่นที่ไม่ใช่ apache ได้ไหมครับ?
ได้ครับ ได้ทุกอย่างเลยที่มัน work ครับ
ลองดูตัวที่ชื่อว่า nginx ดูครับ
lighttpd หรือไม่ก็ nginx ครับ
เรื่องจำนวนผมว่าลองเทสเองเลยดีกว่า แต่โดยทั่วไปแล้วก็ประมาณหลักพันครับ
นึกออกละ มันเป็นปัญหา c10k นี่เอง
http://en.wikipedia.org/wiki/C10k_problem
อ่านๆ ดูแล้วน่าจะช่วยท่านได้เยอะนะ
ตามข้างบนบอกเลยครับ ก็ค่อนข้างเห็นด้วยนะ เอา 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
file ผมขนาดไม่ใหญ่ครับ รวมๆ ก็ไม่น่าจะเกิน 8M (ขนาดส่วนใหญ่ประมาณ 1-20k)ถ้ายัดลง ramdisk ผมไม่ค่อยมีประสบการณ์พวกนี้มันจะ stable ไหมครับ
เท่าที่เคยเห็นมา ไม่เคยเห็นใครตายเพราะ CPU นะครับ ตายเพราะ hdd หมุนไม่ทัน , hdd เจ๊งระเบิดเถิดเทิง iowait พุ่งปี้ด อะไรเทือกนั้นมากกว่า
lighttpd น่าจะพอเพียงแล้วอ่ะครับ มันทำมาสำหรับ serve static file อยู่แล้ว
ขอบคุณคำตอบทุกท่านครับ ได้ประโยชน์มากทีเดียว ใครมีประสบการณ์เพิ่มเติม มา share กันต่อได้นะครับ
ลอง G-WAN ดูสิครับ