web visitor 1500 request/sec
mysql 9000 query/sec
mysql มี 4,800,000 บรรทัด (5 tableรวมกัน )และเพิ่มขึ้นปีละ 4,800,000 บรรทัด
ข้อมูลโดยประมาณนะครับ
วันหนึ่งจะมีการrequestเยอะๆแค่ไม่กี่ชั่วโมงเฉพาะตอนกลางวันเท่านั้นนะครับ กลางคืนอาจไม่มีเลยครับ
อยากทราบว่าต้องใช้server specประมาณดีไหนครับ? ช่วยแนะนำหน่อย
ผมมองไว้ 2 ทางครับ คือ
1.Proliant ML370 G5 ตัวเดียวไม่ทราบว่าอยู่ไหม?
2.ProLiant DL380 G5 ต้องใช้กี่ตัวถ้าจะทำแบบ cluster ?
แล้วควรจะต้องแยก web server กับ database serverไหมครับ?
มีserverตัวอื่นแรงๆแนะนำที่ไม่ใช่ของ hpไหมครับ? แบบประกอบก็ได้ขอspecหน่อยครับ
ขอบคุณครับ
งบผมยังไม่ได้เสนอheadนะครับ รอสรุปก่อนแล้วจะไปเสนอครับ…
ขอไม่มีdown 100% ครับ
แก้ไขsubjectครับ
:blink: :blink: :blink: :blink:
เว็บอะไรนั่น
เป็นระบบของหน่วยงาน1ครับ แต่แปลงมาใช้เป็นwebแทนครับ
ton1
July 17, 2008, 8:04pm
4
Dell R200 ไม่ก็ Dell R300 สองตัวก็พอครับ
ตัวนึงทำ Web Server อีกตัวทำ Database
ton1
July 17, 2008, 8:27pm
6
เหลือเฟือนะ ถ้า code เขียนดี
ซื้อที่ไหนดีครับ? ที่ไหนขายถูกแนะนำหน่อยครับ
ต้องใช้ ramตัวละเท่าไหร่ดีครับ?
ลองไปประกาศหาซื้อที่ Related Offers & Requests ดูครับ
เรื่อง RAM ใช้เท่าไหร่นั้น ก็ลองดูจาก Server เก่าก็ได้ครับ ว่าปัจจุบันใช้อยู่เท่าไหร่
ขอบคุณครับ
คือของเก่ามันเป็นstandaloneแยกกันทำงานคนละจุด แล้วผมมาพัฒนาให้มันมาเก็บข้อมูลที่serverเดียวนะครับ คือของเก่าไม่มีserverต่างคนต่างเก็บ
ตอนนี้จะทำให้มันเก็บรวมที่เดียว เลยไม่ทราบว่าต้องใช้ramแค่ไหนดี ที่จะไม่ให้ล่ม100% เลยอ่ะครับ
ส่วน Dell R300 นิรับ mysql query ได้พร้อมกัน 9000 query/sec เลยเหรอครับ? ผมนึกว่าต้องใช้เป็น cluster สะอีก?
แล้วถ้าเป็นตัว ProLiant DL380 G5 มันจะรับ mysql query ได้สูงสุดกี่ query ต่อวินาที ครับ
เพราะผมต้องเตรียมไว้สำหรับปีต่อๆไปด้วย db จะเพิ่มอีก 1 เท่าตัว เป็น9ล้าน6แสนแถว
อยากมั่นใจว่า R300รองรับได้100% ไม่ทราบว่า มีท่านใดเคยbenchmarkไว้ไหมครับว่า r300เลยรับได้สูงสุดกี่ query/sec และกี่ request(page load) ต่อวินาที แล้วถึงล่ม สมมุติว่าqueryแบบ select อย่างเดียวนะครับ… ขอบคุณมากครับ
icez
July 18, 2008, 4:34pm
10
r200 x3210 ram 4gb ของผมยังรับได้ถึง 2000 q/sec เลยครบั
ยังไม่ peak ด้วย
system
July 18, 2008, 4:45pm
11
r200 x3210 ram 4gb ของผมยังรับได้ถึง 2000 q/sec เลยครบั
ปล… +1 ผมคิดว่า ควรจูนการใช้งาน ของระบบก่อนดีกว่าน่ะครับ
ที่เราลง ลงกันบางท่านก็ไม่ได้จูนอะไร เพราะมันก็ใช้งานได้ดีไม่มีปัญหา
แต่หากวันนึงมีแนวโน้วคิดว่า เวบผู้ใช้บริการที่รับเข้ามาส่วนไหญ่ หนักไปทาง Mysql / httpd
ควรที่จะจูนไหม่ให้ เหมาะสมต่อการใช้งาน ณ ขณะนั้น
หากได้ข้อสรุปแล้วว่าเครื่องที่ใช้รันการทำงาน มันไม่ไหวจริงๆๆ ก็เพิ่มเครื่อง / เปลี่ยนเครื่องก็ได้ครับ
ขอเสนอความคิด ที่มีอย่างน้อยนิด ได้เท่านี้ล่ะครับ หากผิดพลาดขออภัยด้วยน่ะครับ
ถ้าเน้นเอาชัวร์ๆ ก็เลือกใช้รุ่นที่เป็น HDD SCSI และสามารถทำ RAID5 ได้ ส่วนแรมก็สัก 4 GB ขึ้นไปแบบ ECC
CPU 2 ตัว แบบ QUARD CORE ผมว่าไม่น่าจะมีปัญหานะครับ งบอยู่ราวๆ 350,000 - 400,000 ครับ
ที่แน่ๆ ไม่เห็นใครพุดถึง HDD เลย
เครื่องเทพ แตา HDD ห่วยก็จบ
ยังใช้ SCSI กันอยู่อีกหรอครับ ระดับนี้ต้อง SAS ละฮะ ฮ่าๆ
ลองเครื่อง 2950 ไปเลยถ้างบไม่ใช่ปัญหา ลง SAS 146G 15K ไปเลย 6 ลูก Raid 5
ลองคำนวณคราว ๆ จากที่เป็น standalone ก็ได้ครับว่าส่วนงานมันใช้ ram กันหนักแค่ไหน
เช่นใช้ 5 เครื่อง เครื่องล่ะ 2 GB แบบนี้คราว ๆ ก็อย่างต่ำ 10 GB ก็ว่ากันไปครับ
แล้วเรื่อง RAM ผมว่าไม่น่ากลัวครับ สั่งซื้อเพิ่มได้แบบไม่ยากครับ (ถ้าเป็นเครื่อง Dell ต้อง R300 ขึ้นไป เพราะ R200 ใส่ ram ได้น้อย)
ถ้าไม่ประเมินไม่ถูกแนะนำว่าให้ซื้อก่อน 1 เครื่องแล้วประเมินก่อนครับ
ไม่งั้นก็ต้องหาเครื่องลองกันให้เห็นชัด ๆ ไป
เพราะเรื่องจะรับโหลดได้เท่าไหร่ ผมว่าขึ้นอยู่กับโครงสร้าง Database ด้วยนะครับว่าออกแบบไว้แบบไหน
ถ้าจะซื้อมาลองก่อนก็อาจจะเอาเครื่องที่ใส่ HDD ได้เยอะหน่อย เช่น DELL/HP 2 U หรือ SUN 1 U
run ได้ก็จบเลย
ems
July 18, 2008, 8:23pm
16
เครื่องคอขวดอยู่ที่ HDD ครับ
ถ้าแก้ปัญหาที่ HDD ได้ Server ธรรมดาก็ทำงานได้
ถ้าเป็นระบบใหญ่ๆ เขาจะใช้ SAN ครับ ที่เป็น IBM ตู้ใหญ่ๆ มี HDD วางเรียงรายเต็มไปหมด
ton1
July 18, 2008, 8:43pm
17
บอกลักษณะของ app หน่อยได้มะครับ จะได้ช่วยวิเคราะห์ให้
ข้อมูลที่ให้มาน้อยไปครับ ผมว่าถ้าจูนนิ่งดี ๆ น่าจะไม่หนักอะไรมาก
หวยบนอากาศ :smash: :smash: :smash:
kke
July 18, 2008, 11:05pm
19
ที่ถามว่าเครื่องใหนจะรับ qurey ได้แค่ใหน อันนี้ขึ้นกับความหนักของ query และการออกแบบ db ด้วยครับ
ถ้า query จากตารางที่ไม่ได้ทำ index เครื่องเทพแค่ใหนก็เดี้ยงครับ
table ยิ่งสลับซับซ้อน หรือ query join มาจากหลาย table มันก็หนักกว่าการ query จาก table เดียว
ดังนั้นการจะบอกว่าเครื่องใหนจะรับ query ได้กี่ q/sec คงบอกได้ยาก
ในเบื้องต้นให้ดูระบบเดิมก่อนครับว่า table index ไว้ดีหรือยัง query แต่ละครั้งใช้เวลาเท่าไหร่
แต่จากที่บอกมา 9000q/s ก็ถือว่าสูงพอสมควร ผมก็เดาว่า table น่าจะ index ไว้ดีแล้ว
คอขวดหลักๆคือความเร็วในการอ่านเขียน HD ครับ CPU เร็วแค่ใหนถ้า HD ช้ามันก็เกิดคอขวดทำให้ cpu ใช้ไม่ถึง 100%
HD SATA2 ปกติอ่านเขียนได้ที่ 62-78MB/s ถ้าทำ RAID0 หรือ 5 ก็เพิ่มได้เป็น 120-180MB/s
ถ้าใช้ SAS ก็จะอ่านเขียนได้เร็วกว่า SATA ขึ้นไป ยิ่งถ้าทำ RAID5 ยิ่งเร็วขึ้นไปอีกมากพอสมควร
แต่กรณีนี้คงไม่ถึงกับต้องเล่นระดับ SAN หรือ cluster ครับ
แนะนำให้ใช้เครื่องกลางๆที่ใช้ HD SAS ทำ RAID5 แยก webserver กับ db คนละเครื่อง ก็น่าจะเอาอยู่
ถ้าอนาคตมัน query มากขึ้นเอาไม่อยู่ ก็แยก db เป็นแบบ cluster ทีหลังได้
ว่าแต่จะใช้ os อะไรครับ windows หรือ linux
คำว่า table indexไว้ดีหรือยังนิ ต้องดูตรงไหนครับ?
มีผลวิจัยการ benchmarkไหมครับ ว่าควรindexแบบไหน และแบบไหนไม่ควร? ช่วยขยายความหน่อยครับ หรือบอกเว็ปที่บอกวิธีการทำtable indexที่ดีที่สุดด้วยครับ ผมอยากศึกษาและเข้าใจมากขึ้น…
ลักษณะของระบบ…สมมุตินะครับ ประมาณว่าร้านสะดวกซื้อแบบสมาชิกสหกรณ์ ที่มีประมาณ1500ร้านทั่วกทม. แต่ละร้านก็จะมีประมาณ3-4pos(client)
และเมื่อมี การกดรหัสสมาชิก และรหัสสินค้า(หรือยิงbarcode)มาก็จะส่งข้อมูลมาselectรหัสสินค้าและข้อมูลสมาชิก ที่ server(ที่กำลังพูดถึง).เพื่อแสดงข้อมูลสินค้าตามรหัสสินค้านั้นๆ และข้อมูลสมาชิกทั้งหมด คือทุกร้านไม่มีdatabaseของรหัสและข้อมูลสินค้า พอมีการจ่ายเงินก็จะส่งมา insert ที่ database server ครับ
ทุกการselectรหัสสินค้าเพื่อดึงข้อมูลสินค้าขึ้นมา จะต้องมีการselect อีก5 table(ดึงข้อมูลสมาชิกสหกรณ์ขึ้นมาด้วย ชื่อ-สกุล ว่าเคยซื้ออะไรไปบ้างใน1เดือนหรือ ยอดที่ซื้อไปใน1เดือน มีอะไรบ้าง แสดงบนจอทั้งหมดให้ลูกค้าดูได้) selectโดยไม่มีการใช้ join เพราะผลbenchmark join table ช้ากว่าselectแบบแยกครับ
ผมประมาณการตอนเที่ยงๆ ทุกร้านมีลูกค้าเยอะ โอกาสที่ทั้ง 1500 ร้าน จะมีการส่งข้อมูลมาที่server ในวินาทีเดียวกันมีสูง จริงๆแล้วแต่ละร้านก็มี3-4clientด้วย ซึ่งอาจจะถือว่ามีการrequest มากกว่า1500ครั้งต่อวินาทีเป็น 4500-6000ครั้งต่อวินาทีด้วย
แต่ละrequestจะมีการquery 6 table รวมเป็น 1500x6=9000 query/sec(ขั้นต่ำ แต่เป็นไปได้ถึง36,000query/sec)
เหตุการณ์ร้านสหกรณ์สะดวกซื้อนี้เป็นการสมมุตินะครับ… จริงๆระบบมันใกล้เคียงกับเรื่องนี้มากครับ
ระบบ app มันประมาณเนี่ยครับ
osเป็นlinux ครับ แต่ยังไม่สรุปว่าจะใช้ตัวไหน
ระหว่าง R300 กับ PowerEdge 2950 III อันเหมาะสมกว่าครับ?
แล้วถ้า PowerEdge 2950 III ต้องใช้แยก database กับ webเป็น2เครื่องรึเปล่าครับ หรือตัวเดียวอยู่เลย?