ช่วยแนะนำServerที่รองรับ 9000query/sec หน่อยครับ

ถ้าใช้งานคล้ายๆแบบที่ว่ามา ผมว่าลองดูระบบร้าน 7/11 ดีกว่าครับ ว่าเขาทำยังไง
จำเป็นหรือไม่ที่ต้องดึงข้อมูลแบบ realtime แล้วเครื่อง pos แต่ละสาขา connect ตรงไปที่ db หรือว่าผ่าน web application อีกชั้นหนึ่ง
แล้วถ้าเนตเสียล่ะ งดขายของจนกว่าเนตจะใช้ได้?

แต่ถ้าที่จะใช้งานจริงเป็น client ที่อยู่บนเนต ก็อีกเรื่องนึง

Table Index ก็ง่ายสุด อันไหนเรียกใช้บ่อย ๆ ก็ต้องทำ Index เอาไว้ อันไหนไม่ได้เรียกใช้ก็ไม่ต้องทำ
แล้วก็ดูเรื่อง Normalization ครับ

ไม่่มี local inventory หรือครับ? แล้วทำไม่ต้อง query จากศูนย์เท่านั้น

ไม่ค่อยเข้าใจ logic แต่ถ้าเป็นผมทำ distribute ออกมาถ้าจำเป็นก็ sync เอา

เอ่อพี่ Max ทำไมไม่แนะนำ 2950 แบบ 3.5 ละครับ น่าจะได้ Storage มากกว่านะ แถมเร็วกว่า

ใส่ HD ได้ 6 ลุก SAS 300G 15K 6 ตัวได้เลย

นั้นสิครับ หากเป็นระบบคล้ายกับที่ว่าจริง หากเกิดปัญหาในลักษณะนี้ต้องหยุดการขายทีเดียวครับ
การแยก Service อย่างที่หลายๆ ท่านด้านบนแนะนำมาก็เป็นที่น่าสนใจนะครับ
เพื่อลดภาระในการแสดงผล และ query ให้ทำงานได้เต็มที่มากขึ้นครับ

หรือเป็นไปได้ไหมครับ 2 Server
เรื่องแรก httpd and database
เครื่องสอง database
sync ข้อมูลกันและกัน
หากมีงานเข้ามาอาจจะ random การ query ข้อมูลไป 1 หรือ 2 อาจจะช่วยแบ่งเบาเรื่อง Buffer ในการส่งถ่ายข้อมูลได้เหมือนกันครับ
แต่ก็อาจจะเกิดโอกาส ในความผิดพลาด ในการ select หรือ insert สูงเหมือนกัน = ="

หรือ เครื่องแรกเขียนระบบเพื่อการ insert เท่านั้น
sync ข้อมูลกันและกัน
เครื่องที่สองเพื่อการ query ข้อมูลเท่านั้น อืมจะช่วยให้การทำงานมีประสิทธิภาพมากขึ้นไหมหน่อ (เพียงลองคิดเล่นๆ นะครับ แต่การนำมาใช้งานจริงคงไม่ work)

อย่าว่ากันนะครับ เพียงลองคิดนอกกรอบ จากระบบที่ควรทำ เล่นๆ เท่านั้นครับ

ถ้าผมออกแบบระบบผมจะ cache ข้อมูลไว้ที่ client โดยมี expire time ตั้งแต่ 5 ถึง 60 นาทีแล้วแต่ความถี่ของการ update ข้อมูล
หรืออีกแบบคือ ถ้าข้อมูลใหนมีการ update ก็ต้องหาวิธีบอก client ให้รู้ว่ามีการ update ให้มาดึงอันใหม่ไป cache ไว้
ส่วนข้อมูลการขายที่ต้อง insert ลงตาราง อันนี้ก็อยู่ที่ว่าซีเรียสแค่ใหนที่ต้อง update แบบ realtime
จริงๆเก็บไว้ที่ client แล้ว update วันละ x ครั้ง ก็น่าจะพอ แต่ทั้งนี้มันก็อยู่ที่ความต้องการของลูกค้าเป็นหลัก

counter service ที่ร้าน 7 ยังรับชำระเงิน แล้วเก็บข้อมูลไว้ในเครื่อง client เลย upload เข้าศูนย์วันละแค่ 1-2 ครั้งเอง
แต่ละที่เวลาไม่เท่ากัน บางที่ก็ตอน 6 โมง บางที่ 2 ทุ่ม บางที่ เที่ยงคืน

ถ้าผมออกแบบระบบผมจะ cache ข้อมูลไว้ที่ client โดยมี expire time ตั้งแต่ 5 ถึง 60 นาทีแล้วแต่ความถี่ของการ update ข้อมูล
หรืออีกแบบคือ ถ้าข้อมูลใหนมีการ update ก็ต้องหาวิธีบอก client ให้รู้ว่ามีการ update ให้มาดึงอันใหม่ไป cache ไว้
ส่วนข้อมูลการขายที่ต้อง insert ลงตาราง อันนี้ก็อยู่ที่ว่าซีเรียสแค่ใหนที่ต้อง update แบบ realtime
จริงๆเก็บไว้ที่ client แล้ว update วันละ x ครั้ง ก็น่าจะพอ แต่ทั้งนี้มันก็อยู่ที่ความต้องการของลูกค้าเป็นหลัก

counter service ที่ร้าน 7 ยังรับชำระเงิน แล้วเก็บข้อมูลไว้ในเครื่อง client เลย upload เข้าศูนย์วันละแค่ 1-2 ครั้งเอง
แต่ละที่เวลาไม่เท่ากัน บางที่ก็ตอน 6 โมง บางที่ 2 ทุ่ม บางที่ เที่ยงคืน

เท่าที่เคยเข้า 7/11 จะเห็นใช้เครื่อง lenovo

SAS 300GB 15K ราคามันสูงกว่ากันเยอะนะครับ

[quote author=maxlogic link=topic=12448.msg121402#msg121402 date=1216408420]
SAS 300GB 15K ราคามันสูงกว่ากันเยอะนะครับ

[quote author=hack3rb43 link=topic=12448.msg121405#msg121405 date=1216409164]
อ๋อเข้าใจฮะ 1+0 นี้ัมัน 10 ใช่มะ ผมลองแล้วก็เหมือน Raid 0 แต่ + 1 ฮ่าๆ งงมะ

ผมลองทำ

ข้อมูลด้านสินค้า cacheไม่ได้เลยครับเพราะสินค้ามีเยอะมาก

ส่วนข้อมูลสมาชิกก็cacheไม่ได้เหมือนกัน เพราะแต่ละคนคงไม่มีข้อมูลเหมือนกัน และแต่ละคนสามารถซื้อของจากร้านสาขาไหนๆก็ได้ครับ ไม่fixว่าต้องเป็นร้านเดิมเท่านั้น สมมุติว่ามีสมาชิก 2 แสนคนจะcacheยังไงดี

ที่ต้องทำเป็นreal timeเพราะจำเป็นครับ ถ้าnetเสียก็คงต้องแสดงข้อมูลว่าnetworkล่มปิดการขายชั่วคราว(คล้ายๆตู้atm ตอน out of order หนะครับ) หรือทางแก้อาจจะใช้2 isp connectพร้อมกัน แต่server ต้องห้ามล่ม

สรุปว่าระบบผม ต้องใช้ 2950 กับ RAID 5 หรือ RAID1+0 ครับ?
ที่ไหนขายถูกพร้อมconfigให้เสร็จบอกผมนะครับ
ตอนนี้เจอ2ที่ไม่ทราบว่าราคาokรึเปล่าครับ
hxxp://www.pantiphost.com/dell-pe2950.html
hxxp://www.bangkokwebhosting.com/dell-2950.htm

แล้วตกลงตัว R300 น่าจะรับไม่ไหวใช่ไหมครับ? จริงๆอยากเสนอheadสัก 2 ราคา
คือ1.แบบถูกแต่ทำงานได้ และ2.แบบแพงทำงานดีและชัวร์รับประกัน

ป.ล.ยังติดใจว่าProliant DL360 G5มันไม่ดีหรือว่ามันแพงเกินไปเลยไม่มีคนแนะนำครับ ? ขอคอมเมนต์ตัวนี้ด้วยครับ
hxxp://www.2beshop.com/server.php?type1=Server&name=Proliant%20DL360%20G5

130000 นี้กด 2950 ได้สเปคดีๆเลยนะครับ

2950

2 CPu Quad Xeon 2. อะไรก็ลืม

Ram 4 G

HD SAS 146 15K 4 ตัว

ราคาราวๆ 120K คับ ประมาณนะ

อาจจะลองดูสถิติคนที่มาใช้บ่อย ๆ น่ะครับ แต่ถ้าหลากหลายมาก ๆ ก็คง cache ไม่ได้

ทำความเข้าใจคำว่า cache ก่อนครับ
cache ไม่ใช่ backup ข้อมูลทั้งหมดมาไว้ที่ client แต่เป็นการเก็บข้อมูล ที่เคยเรียกมาแล้วไว้ชั่วคราว
สมมติว่าลูกค้า A ซื้อสินค้า 20 ชิ้น
ตอน scan บัตรสมาชิก ก็ต้องทำการเรียกข้อมูลสมาชิกคนนั้นมาที่ client ตัว client ก็จะเก็บข้อมูลนั้นไว้ชั่วคราว
ตอน scan สินค้าแต่ละชิ้น ข้อมูลของสมาชิกนั้นก็จะไม่มีการเรียกซ้ำจาก server เพราะมีอยู่ใน cache แล้ว

และเช่นกันสินค้า 20 ชิ้นที่เรียกข้อมูลมาก็จะ cache เอาไว้เช่นกัน ถ้าสมาชิกคนต่อไปมีสินค้าที่ซ้ำกับคนแรก ชิ้นนั้นก็มีข้อมูลใน cache ไม่ต้องเรียกใหม่ เป็นการลดการ query ผ่านเนตได้อย่างมาก

ตัวจัดการ cache คือหัวใจสำคัญ อยู่ที่การออกแบบ แต่เอาแบบง่ายๆก็อาจจะเก็บสินค้าไว้ 200 รายการ ถ้ามีเกินก็ลบรายการที่เรียกไว้เก่าสุดออก เอาอันล่าสุดใส่เข้าไปแทน หรืออาจจะดูจากจำนวนที่ขายไปอันใหนขายได้มากก็เก็บไว้นาน ขายได้น้อยก็ลบออก
แต่ไม่ได้หมายความว่าต้องมีเก็บไว้ทั้งหมดที่ client ครับ

ที่ผมแนะนำ Dell R200, Dell R300 เพราะผมวิเคราะห์จากงานครับ
หลาย ๆ ท่านบอกให้เอา Dell 2950 ผมไม่เถียงเรื่อง เครื่องแรงกว่า
ใส่ HD ได้เยอะกว่า แต่บางอย่าง มันไม่จำเป็นนี่ครับ …

พวก DB ไม่ได้ใช้ พท.ในการเก็บเยอะอย่างที่คิดกันนะครับ อย่างเก่งไม่เกิน 10 GB
ผมดูระบบ web ใหญ่ ๆ อันดับต้น ๆ ของประเทศ ที่มีการ query มหาศาล
DB ก็ยังไม่ถึง 5 GB เลยครับ ถ้าจะเอาให้เร็ว ใช้ disk ที่เป็น solid state ครับ
ราคาแพง แต่ทำงานได้เร็วกว่ามาก …

ผมถึงเลือก Dell ตัวเล็ก ๆ 1 U พอครับ ถ้ารับไม่ไหว ก็ซื้อเครื่องเพิ่ม
ทำ replicate กันเอา แยก Read/Write อย่างชัดเจน กระจาย load
หลักการออกแบบระบบใหญ่ ๆ ต้องมีการกระจาย load ไม่ใช่รวม load
ถ้าทำ replicate แล้วยังไม่ไหว ก็ยังมีวิธีอื่นอีกครับ ถ้าสนใจ ยินดีให้คำปรึกษาครับ

ส่วนตัวนะครับ

ยังมันอยู่ ขอต่อยก 2:

ลืมตรงนี้ไปกันหรือเปล่าครับ “ห้ามล่ม 100%” ไม่มีในโลกครับ :slight_smile:

99.999…% อันนี้พอได้

ใช้หลายเครื่อง เพื่อลดโอกาสการ down กระจายความเสี่ยงไป

ต้องมี cluster แน่นอนครับ แต่จะตรงจุดไหน ดูงบ และ ความสำคัญ

99.999…%

ขอบคุณทุกคำแนะนำนะครับ เรื่องserverตอนนี้ผมส่งspecและราคาโดยประมาณไปให้headแล้ว
ต้องรอดูfeed backจากข้างบนครับ

ส่วนเรื่องการพัฒนาappผมก็ต้องมาtuneใหม่อีกครับ ในเรื่องcacheและเรื่องset indexให้tableครับ
มีอะไรแนะนำผมอีกช่วยบอกด้วยนะครับ…