ไม่ทราบว่า เก่าไปรึเปล่า … แต่เอาเหอะ เผื่อใครยังไม่รู้ จะได้ลองดู
ปกติแล้ว บรรดาเว็บที่มีอะไรที่ต้อง download ออกไป หรือพวกมีเพลงเล่นผ่านเว็บ … ปกติแล้ว file เหล่านี้จะมีขนาดใหญ่ และการที่ต้องวิ่งผ่านโปรโตคอล http ออกไป ทำให้มันต้องไปเก็บข้อมูลเหล่านี้ก่อนที่จะถูกเรียกออกมาผ่านทาง Buffer ซึ่งแปลว่าจะเก็บไว้บน Memory ซึ่งโดยปกติ Memory หากไม่เหลือเยอะมากจริง ๆ หรือเกิน 2GB มันจะทำให้ขนาดของ Buffer block มีขนาดใหญ่ และทำให้ต้องไปใช้เนื้อที่บน Swap (บน windows ก็ PagesFile นั่นแล) และเมื่อทำงานบน memory ไม่ได้ต้องไปทำงานบน Harddisk ทำเป็นผลทำให้การประมวลผลรวม ทำงานช้าลงและกิน I/O process แบบสุด ๆ …
แล้วสุดท้ายมันก็ boom!! …
ทางแก้มีมั้ย … ปกติแล้ว จะแนะนำให้ เก็บ file เหล่านี้ทาง FTP ในกรณีของการ download file เพราะ FTP จะให้คนที่ดึงนี่ stream ข้อมูลออกจาก Harddisk โดยตรง ไม่ต้องวิ่งผ่าน Buffer …
แล้วพวกเว็บเพลงทำยังไงละ … คุณก็ต้องหา web engine เล็ก ๆ ที่ไม่มีองค์ประกอบอะไรยัดเยียดลงไปเลย (ยิ่งเล็กยิ่งเบา ยิ่งดี แต่ต้องรับโหลดได้พองามนะ) … แล้วรันแยก port เอาไว้ … หลายคนสงสัย อ้าว ต่างกับรันเว็บปกติยังไง แล้วมันก็ใช้ Buffer ไม่ใช่เหรอ แต่ความจริงอย่างนึงคือ ตอนลง webserver ใหม่ ๆ คุณจะไม่ได้โหลด module อะไร หรือ Filter ต่าง ๆ ลงไป จำนวนมาก … ซึ่งพวกนี้แหละ ที่ทำให้มันโหลดหนัก เพราะแต่ละ Concurrent จะต้องไปจอง Memory ทำงานพวกนี้จำนวนมาก … แปลง่าย ๆว่า หากลงใหม่ ต่อ Connect จะเล็ก แต่พอลงสมบูรณ์ จะกิน Memory ใหญ่กว่าเยอะ
ฟังวิธีการแล้วอาจจะดูวุ่นวาย เพราะจริง ๆ หากคุณไม่ไปเจอเว็บแปลก ๆ เหล่านี้ … ก็คงไม่ต้องสนใจละครับ … เว็บบริษัท คงไม่มีอะไรมากกว่ารูปภาพและข้อความ แต่หากเจอเว็บเหล่านี้เมื่อไหร่ ก็เตรียมรับมือ ดี ๆ ละกันครับผม
แถมนิดนึง … ใครต้องการ Co-Lo ที่วิ่งแบบกระฉูด เกิน 60Mbit/sec … ติดต่อผมได้นะ … จัดให้ได้ … ล่าสุด วิ่งห้าวัน ปาไป 9TB … วิ่งวันละเกือบ ๆ 2TB … ไม่ได้ให้มาแชร์นะ เอาไปต่างหากเลย 1 หัว … ราคาสูงกว่าชาวบ้านแน่นอน แต่รับรองสะใจโก๋ …
msn มาคุยละกัน kanchit@msn.com
พูดถึงเรื่องนี้แล้ว ใครเคยทำ Video Streaming มั่ง Helix หรือ windows media streaming ก็ได้ แล้วคนดู พร้อมๆกัน (concurrent) สัก 500 คนขึ้นไป เป็นยังไงบ้าง เอาแบบ 128k ขึ้นไปนะครับ แบบ 56k ไม่เอา
โห…วิ่งกันกระจายเลยนะครับ ของผมแต่ละเครื่องวิ่งไม่ถึง 1Mbps
รวมๆ ไม่น่าเกิน 5Mbps แต่ก็พอทำเงินได้บ้างก็ดีเนาะ
เป็นโอกาสอันดีสำหรับใครที่หัวใจ Hi-Speed ติดต่อท่าน Kanchit
ได้เลยนะครับ
(๖๙)
แบนวิธน่ะมันไหว พวก Video Streaming แต่พอนึกถึงสภาพเครื่อง ขอประทานโทษ ต้องหา 4 Way กับแรมเต็มสูบมาประเคนให้มันสูบซะละมั้ง
พวก Windows Media ที่ใช้รันจริง ๆ … ผมว่า 500 เนี่ย ต้องหามืออาชีพ ชำแหละ windows เปิดขยายโน้น ขยายนี้ แล้วก็อัดแรม ไปเกิน 4GB แน่ ๆ … Pentium4 เอาไปทิ้งน้ำ ไปคว้า Xeon แน่ ๆ … เพราะบอร์ดมันรับแรมได้เกิน 4GB เห็นประมาณ 12GB ตอนนี้ แผ่น ละ 2GB … แค่คิดราคาเครื่องก็อ๊วกแตกแล้วละ
เพราะ แต่ละ Concurrent ที่วิ่งมา streaming ข้อมูลออกไป โปรแกรมพวกนี้มันจะไป Filter และ stat ข้อมูลขาออก มาพอสมควรเลย … มีเว็บเพลงเคยมาอยู่กับผม ขนาดขี้หมู ขี้หมา บีบ WmA ให้เป็นแบบ Streaming File … แล้ว ActiveX รันหน้าเว็บออกไป เครื่องยังแทบดับดิ้น … 1U ที่ขาย ๆ กันนี่แหละ อัดแรมไป 2GB ยังไม่รอดเร๊ย เพราะมันไปตายตรง I/O นั่นแหละ
แต่มันก็ใช่ว่าจะไม่ได้เลย เพียงแต่จะให้ฟังถึง 500 เนี่ย … คุณต้องเอาเครื่องเปล่า ๆ มาซักตัว มาทำ … Encode ตัวนึง … Boardcast ตัวนึง … input ก็ต้องไปหาดี ๆ ไม่งั้นเสียงแตกอีก
ผมเห็นตัวอย่างของ virgin radio … นั่นก็ใช้ไปแล้ว สามตัว หลัก ๆ ก็อย่างข้างบนเขียนนั่นแหละ … input พี่แกยก input FM ของ Denon มาเสียบเข้า Audigy External แล้วเสียบเข้า USB ไปทำการ Encode ส่งไปให้ Boardcast ตัวเขื่อง ๆ … Dual XEON … ยิงออก
แบนวิธ ก็วิ่งเต็ม 100Mbit … (จริง ๆ มันจะได้ 90% - 95% ของ 100Mbit นะ ในทางปฏิบัติจริง) …
เหอ เหอ … ใครจะทำวิทยุ ออนไลน์ … แบบจิงเกิ้ล สนุก ๆ พองาม ก็พอจะมีวิธีการ อันสุนทรี แนะนำ …
Shoutcast สิ … Simple the best … แต่หากอยากได้แบบดี ๆ หน่อย jetcast ก็น่าสนใจ แต่พูดตรง ๆ วุ่นวายค่าใช้จ่ายฉิบ ลำบากจริง ๆ …
เคยเห็นโปรแกรมดีเจ ทำหน้าจอเป็น Mixer … มี master input สองชุด และ effect อีกเพียบ ตั้ง ระบบเล่น และ fade เพียงแต่ละเพียงอัตโนมัติ … แต่เสียตังอีกนั่นแหละ และทางปฏิบัติ ก็ยังต้องลงทุนกับการ์เสียงดี ๆ หน่อย ไม่งั้นเสียงเน่า
แค่พูด ๆ มาเนี่ย อ่านกันจนคอหักไปกี่คนแล้วละนั่น เอิ้ก
ใช้ว่าทำไม่ได้ แต่จะคุ้มแรงรึเปล่า เอามันส์ก็ทำเล่น แต่หากเอาจริงจ เอาจัง … เป็นเจ้าของสถานีวิทยุ ให้ได้ก่อนสิ … โฆษณายังจะไม่มีมาช่วยเกื้อหนุน จะอัดระบบออนไลน์ไปทำซากไรละคู๊น
ผมเห็นตัวอย่างของ virgin radio … นั่นก็ใช้ไปแล้ว สามตัว หลัก ๆ ก็อย่างข้างบนเขียนนั่นแหละ … input พี่แกยก input FM ของ Denon มาเสียบเข้า Audigy External แล้วเสียบเข้า USB ไปทำการ Encode ส่งไปให้ Boardcast ตัวเขื่อง ๆ … Dual XEON … ยิงออก
แบนวิธ ก็วิ่งเต็ม 100Mbit … (จริง ๆ มันจะได้ 90% - 95% ของ 100Mbit นะ ในทางปฏิบัติจริง) …
ไม่ได้จะทำวิทยุหรอกจะบอกให้
ของ virgin เข้าใจว่าจะเป็นวิทยุ เคยจับไหมครับ ว่า concurrent กี่คน
Sirn
6
แอบมาคุยเรื่องดาวน์โหลดไฟล์บ้างครับ สำหรับเว็บผม b/w วิ่งเฉลี่ยราวๆ 18-20Mb ต่อวัน ต่อสัปดาห์ (บางอาทิตย์ก็ ~50 ~60
ทุกวัน+ทั้งวัน ^_^) ไฟล์ค่อนข้างใหญ่พอดูครับ 200-300Mb กันเกือบหมด กระเด็นไป G กว่าๆ ก็มีครับ
เมื่อไม่นานมานี้ มีคนบอกให้ลองใช้ THTTPD ในการ serve พวก Static File ดู ก็ลองใช้ดูครับ ค่อนข้างกินเครื่องน้อยมากๆ เสียแต่ว่า
ผมไม่ชินกับอะไรหลายๆ อย่าง บวกอีกว่าเครื่องผม connection อะไรก็ค่อนข้างสูงพอสมควร สุดท้าย thttpd error ขี้เกียจวุ่ยวายแก้ source
เลยเลิกยุ่งกับมันไป กลับไปซบอก Apache2 ต่อ…
ถ้าหากมีพวก Static File เล็กๆ (ประเภทโหลดเพลงอะไรอย่างที่ว่าหน่ะครับ) แล้ว Connection ไม่ค่อยสูงก็ลองใช้ดูครับ ช่วยเรื่อง
Overall Performance ได้ค่อนข้างดีพอสมควร
ต่อไปก็ Apache ครับ สำหรับตัวผมใช้ Apache2 (แต่โยน Apache 1.3 ให้ Fedoa ใช้หมด) เลยลองไปคุ้ย Document เรื่องนี้ดูครับ
แล้วก็ไปสะดุดตรงที่ ServerLimit MaxClients MaxRequest MinSpare อะไรทั้งหลาย ทำให้ได้ความถึงวิธีการ Spawn Thread ของ
Apache (จริงๆ มันก็มีบอกใน Document แต่ไม่ขยันอ่าน) ระหว่างสองเวอร์ชั่นค่อนข้างจะแตกต่างกันพอสมควร ในขณะที่ Apache 1.3
ใช้วิธี Spawn แบบ <spawn 2> <wait> <spawn 2> <wait> ไปเรื่อยๆ จนครบตามจำนวนที่ตั้งไว้แต่ถ้าเป็น Apache 2 จะ Spawn แบบ
<spawn 1> <wait> <spawn 2> <wait> <spawn 4> <wait> ไปเรื่อยๆ ซึ่งระหว่างที่ wait มันจะไม่สามารถ serve อะไรได้เลย
บางทีท่าทางมันจะไม่ใช่ spawn ครั้งเดียวจบ… ดังนั้นผมคิดว่าตั้งค่านี้ให้เหมาะกับสถานการณ์ ช่วยได้เยอะมากๆ เหมือนกันครับ
ต่อไป คือการ Unload DSO ที่ไม่จำเป็นออกไปครับ ให้มันเบาที่สุดเท่าที่จะทำได้ ที่ผมทำคือไล่ปิดทีละตัว ถ้าปิดแล้วไม่เจอปัญหาอะไร
ก็ปิดเอาไว้อย่างนั้น ไม่มีการเผื่อใช้ เผื่อไม่ใช้อย่างเดียว จนมันเบาที่สุดเท่าที่จะเป็นไปได้ ช่วยเรื่อง Load อะไรมากพอควรครับ แล้วก็ตรง
ExtendStatus ของ server-status เองก็มีผลต่อ performance ด้วยเช่นกันครับ ถ้าปิดได้ก็ควรปิด รวมถึง Log บางอัน ย้ำว่าถ้าปิดได้นะครับ
แล้วก็เรื่อง .htaccess ถ้าสามารถ disable ตรงไหนได้ก็ควรทำครับ โดยเฉพาะเจ้า FollowSymLinks ถ้าหากไม่จำเป็นจริงๆ อย่าเปิดครับ
ไปเรียกใช้เฉพาะที่ๆ จะใช้ดีกว่า
แล้วก็เรื่องที่น่าจะรู้กันอยู่แล้วว่า ถ้าสามารถแยก Harddisk ได้ (เว็บลูกนึง , Swap ลูกนึง , File ลูกนึง , Log ลูกนึง ฯลฯ) ก็ช่วยเรื่อง
performance ได้มากๆ ครับ โดยเฉพาะเว็บหนักๆ ถ้าลูกเดียวกันหมด มันพาลอืดทั้งเครื่อง
สำหรับวิธีจัดการกับพวกที่รันโปรแกรมที่สั่งงานผ่านฟังก์ชั่น exec() แนะนำให้แก้ Code สั่ง nice เลยครับซัก n 4 n 5 เพราะปกติแล้วมันจะรัน
ด้วย Priority เดียวกันกับ Apache เวลาใช้เจ้านี่เยอะๆ ทำให้อืดมากๆ
ทั้งหมดนี่ไม่เท่าไหร่ครับ ถ้าหากเจอกับ PHP Script นรก fopen สดๆ ส่งสดๆ HD จะพังเอา… Nuke ตัวดูด CPU ยังชิดซ้าย
แล้วก็โพสที่นี่ครั้งแรก ฝากตัวด้วยนะครับ
post แรก แต่ได้ใจความอย่างมาก
ยินดีต้อนรับครับ
ของ virgin เข้าใจว่าจะเป็นวิทยุ เคยจับไหมครับ ว่า concurrent กี่คน
ผมไม่แน่ใจ … แต่เห็นอวดอ้างสรรพคุณว่า เป็น Virgin asia … รับได้เกิน 500 COncurrent แต่ผมว่า หากรับขนาดนั้นคงต้องอัดแรดอ๊วกแตก …