|
|
|
สอบถามเรื่องฐานข้อมูล เมื่อมีคนใช้ฐานข้อมูลพร้อมกัน ประมาณ 6000 คน ใช้ฐานข้อมูลอะไรดีครับ ทำข้อสอบออนไลน์ครับ |
|
|
|
|
|
|
|
ความเป็นไปได้คงยากครับเข้าพร้อมกัน 6000 คน
ฐานข้อมูลที่ใช้กัน ก็คงจะเป็นส่วนของ phpmyadmin
ข้อกังวลที่น่าจะเป็นไปได้มากกว่า ควรห่วงเรื่อง เวปล่ม เนื่องจาก Bandwidth การไหลของข้อมูลมีขีดจำกัดครับ อาจจะทำให้เวปล่มได้
|
|
|
|
|
Date :
2013-01-28 15:19:19 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรง Bandwidth ได้แก้ไขแล้วครับ แต่รอบเมื่อกี้ เข้าได้แค่ประมาณ 500 คน mysql ก็บอก error ครับ ก็เลยคิดว่าควรจะเปลี่ยนจาก mysql เป็นอะไรดีครับ
|
|
|
|
|
Date :
2013-01-28 17:48:35 |
By :
ท้องฟ้า |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ในความเป็นจริง Request จะไม่ได้เกิดขึ้นพร้อมกัน 6,000 คนครับ แต่ถ้าเกิดพร้อมกัน คงจะจัดการ Process ดี ๆ ครับ เช่น Query ใน MySQL ให้น้อบที่สุดเท่าที่จะเป็นไปได้ และจัดการพวก Query ดี ๆ ก็รับได้ครับ ทั้งนี้อยู่ที่ Server ด้วยครับ
|
|
|
|
|
Date :
2013-01-28 19:14:11 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ประมาณนี้นะครับ
ตอนแรก ผมเอา คำถาม และตัวเลือก จำนวน 100 ข้อ เก็บไว้ใน อาร์เรย์ เพื่อจะได้รวดเร็วในการทำข้อสอบ
แต่ มันเก็บแล้ว มันเกิด error ครับ ประมาณว่า มันสามารถเก็บตรงคำถาม ได้แค่ 40 ข้อ
ผมก็เลย ให้เก็บเฉพาะ ตัวเลือก ส่วนคำถาม เมื่อกดข้อต่อไป ก็ให้ไป select โดยให้สุ่มข้อต่อไป เอาคำถามมาแสดง
ก็เลยให้เวลาคนมาทำข้อสอบ ทำให้ mysql ต้องทำงานตลอดครับผม แก้ยังไงครับ
|
|
|
|
|
Date :
2013-01-28 20:02:06 |
By :
ท้องฟ้า |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ขอออกตัวก่อนว่า ไม่เทพ
โจทย์ : สอบถามเรื่องฐานข้อมูล เมื่อมีคนใช้ฐานข้อมูลพร้อมกัน ประมาณ 6000 คน ใช้ฐานข้อมูลอะไรดีครับ ทำข้อสอบออนไลน์ครับ
จากโจทย์ และปัญหาที่เจอนะครับ
ออกแบบ network link ไว้ก่อน
ดังตัวอย่าง
http://jsfiddle.net/deawx/7WqWQ/
การคำนวนการใช้ทรัพยากรเป็นสิ่งสำคัญครับ .. เมื่อมีการเข้ามา access พร้อม ๆ กันเยอะ ๆ แน่นอนครับ SERVER ต้องรองรับการ request ข้อมูล มหาศาล สเปคเครื่อง ก็สำคัญ สเปคการวางเน็ตเวิร์คก็สำคัญ ไม่ใช่ปัญหาเฉพาะ Software อย่างเดียว
และหากต้องรองรับ การใช้งานพร้อม ๆ กับแบบนั้น ต้องใช้เครื่องแยกออกมาเฉพาะ และเอามา tuning ใหม่ เพื่อรองรับงานนี้โดยเฉพาะเช่นกันครับ
OS แนะนำให้ใช้ LINUX
LAN แนะนำให้ใช้แบบ GIGABIT นะครับ ใส่ไปเลยสองสามตัว ก็ว่าไป แล้วทำ bounding interface ให้เห็นเป็นการ์ดเดียว เพิ่มช่องทางวิ่งของข้อมูล
RAM ขอให้เยอะไว้ครับ
HUB ใช้ตัวที่มีพอร์ต Gigabit นะครับ
ฝั่ง Software
mysql ต้อง tuning ให้เหมาะสมกับการใช้งาน
Apache ต้อง tuning ให้เหมาะสมกับการใช้งาน
PHP CODING อันนี้ต้องเขียนและวาง Logic การใช้งานให้ดี
การวนลูปโดยไม่จำเป็น มีส่วนทำให้ Server หน่วงได้เวลาเข้า Access เยอะ ๆ ดูรายงานพวก log ไฟล์ได้ครับว่าแต่ละช่วงมีการใช้งาน แล้ว Server มันโหลดที่เท่าใหร่ยังไง
ขอให้โชคดีครับผม นั่งร่ายซะยาว
|
|
|
|
|
Date :
2013-01-29 07:04:02 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หากยั งรับโหลดไม่พอ ต้องเพิ่ม การทำ mysql cluster กับตัว web server
หรืออาจทำ Cloud Server ไปเลยครับ
|
|
|
|
|
Date :
2013-01-29 07:10:35 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันมีวิธีแก้หลายแบบ
ข้อสอบเป็นแบบไหนล่ะครับ
ถ้าเป็นแบบช้อยส์ ก็ส่งข้อมูลข้อสอบออกมาให้ฝั่ง client จะเป็นรูปแบบไหนก็ได้ (XML, JSON etc)
ซึ่งข้อมูลข้อสอบอาจจะไม่จำเป็นต้องเรียกผ่าน mysql เลยก็ได้ เพราะเราสามารถสร้าง cache เป็นรูปแบบที่เราต้องการไว้ได้ก่อน
แล้วใช้ฝั่ง client นี่แหละ จัดการ จะเป็น Flash เป็น Javascript อะไรก็ว่าไป การสุ่มหรือเรียงข้อสอบ หรือเรียงคำตอบจะเกิดขึ้นตรงนี้
ผู้เข้าสอบ ตอบข้อสอบเรียบร้อยแล้วก็ค่อยส่งคำตอบกลับไป
เอาจริงๆ ส่วนใหญ่ปัญหาจะเกิดขึ้นเพราะผู้โปรแกรมออกแบบลอจิกสคริปต์ฝั่งเซิร์ฟเวอร์ไม่ดี หรือไม่ก็เขียนสคริปต์โดยใช้ทรัพยากรเปลืองมากกว่า
|
|
|
|
|
Date :
2013-01-29 08:04:53 |
By :
น้องเปรม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กด LIKE น้องเปรม ครับ
|
|
|
|
|
Date :
2013-01-29 08:47:42 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-01-29 09:12:29 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกท่านที่สนับการศึกษาไทย
|
|
|
|
|
Date :
2013-01-30 18:37:51 |
By :
ท้องฟ้า |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|