วิธีกำหนดข้อกำหนดของโฮสติ้ง


23

เรากำลังเตรียมที่จะเปิดตัวเว็บไซต์อีคอมเมิร์ซ 2 แห่งโดยใช้ CE ver 1.9 แต่ละไซต์จะเริ่มต้นด้วยประมาณ 10,000 sku's

อะไรคือสิ่งสำคัญที่เราต้องค้นหาจากโฮสต์เว็บ ... สิ่งต่าง ๆ เช่นขนาดฐานข้อมูลจำนวนรูปภาพ ฯลฯ สำคัญไหม

เห็นได้ชัดว่าความเร็วในการโหลดหน้านั้นสำคัญมากเช่นกัน

เราจะเลือกโฮสต์ที่เหมาะสมได้อย่างไร

ขอขอบคุณ


ยินดีต้อนรับน้ำบน MageOverflow โชคไม่ดีที่การโฮสต์ด้วยวีโอไอพีนั้นเป็นเรื่องที่ซับซ้อนและมี บริษัท จำนวนมากที่เชิญคุณให้พูดคุยกับพวกเขาเกี่ยวกับความต้องการของคุณ ไม่มีทางที่จะแนะนำอะไรให้คุณได้โดยไม่ต้องให้ข้อมูลอะไรมากมาย และด้วยข้อมูลทั้งหมดคำถามนี้เฉพาะเจาะจงเกินกว่าจะเป็นประโยชน์
Fabian Blechschmidt

@FabianBlechschmidt - ฉันไม่คิดว่าเป็นคำถามซ้ำซ้อนของคำถามที่กล่าวถึง และมันก็เป็นคำถามที่สมเหตุสมผล ฉันได้เขียนคำตอบอย่างละเอียดเกี่ยวกับความต้องการการปรับขนาดอย่างละเอียด (ฉันจะรวบรวมรายละเอียดเพิ่มเติมด้วย) และมันเพียงพอสำหรับสิ่งนี้เพื่อใช้เป็นคำถามอ้างอิงที่ดีมากสำหรับการปรับขนาดสถาปัตยกรรม
Ben Lessani - Sonassi

คุณเป็นผู้เชี่ยวชาญฉันเลยโหวตให้เปิดใหม่อีกครั้ง :-)
Fabian Blechschmidt

คำตอบ:


31

คำเตือน: Sonassi เป็นโฮสต์วีโอไอพี


TL; DR - โฮสต์ที่ดีจะบอกคุณว่าอะไรคือสิ่งที่คุณต้องการ (และปรับให้เหมาะสม) คุณไม่ควรทำสิ่งนี้ด้วยตัวเอง

เมื่อลูกค้าเข้ามาหาเราเราจะถามคำถามสองสามข้อเพื่อทำความเข้าใจกับข้อกำหนดปัจจุบันข้อกำหนดสูงสุดและข้อกำหนดในอนาคตสำหรับร้านค้าของพวกเขา จากนั้นเราจะให้คำแนะนำบนพื้นฐานนั้น

เนื่องจากเราโฮสต์ร้านค้า Magento หลายพันแห่งเราจึงมีความเข้าใจอย่างเป็นธรรมเกี่ยวกับโครงสร้างพื้นฐานที่จำเป็นสำหรับชุดความต้องการของลูกค้าดังนั้นมันจึงเป็นเรื่องง่ายสำหรับเราที่จะให้คำแนะนำ (และการคาดการณ์ว่าจะใช้ทรัพยากรใด) พวกเขามีชีวิตจริง

รายละเอียดที่ควรทราบที่นี่คือในขณะที่เราสามารถบอกคุณได้อย่างแน่นอนถึงข้อกำหนดสำหรับโครงสร้างพื้นฐานของเราเองที่ใช้งาน MageStack ซึ่งแทบจะไม่เหมือนกันกับที่ตั้งไว้ที่อื่นดังนั้นควรคำนึงไว้เสมอ

ให้คนอื่นปรับขนาดความต้องการของคุณ

จัดเก็บและแคตตาล็อก

  1. รุ่นวีโอไอพี
  2. จำนวนผลิตภัณฑ์อย่างง่ายในแคตตาล็อก?
  3. จำนวนหมวดหมู่ในแคตตาล็อก?
  4. จำนวนคุณลักษณะในแคตตาล็อก?
  5. จำนวนชุดคุณลักษณะในแคตตาล็อก?
  6. จำนวนมุมมองร้านค้า Magento (ผู้ดูแลระบบ> ระบบ> จัดการร้านค้า)?
  7. ทำธุรกรรมต่อวัน?
  8. ธุรกรรมสูงสุดในหนึ่งชั่วโมง?

การจราจรและแบนด์วิดธ์

  1. ผู้เข้าชมที่ไม่ซ้ำทุกวันในระดับใด
  2. ยอดเขาที่สูงที่สุดในหนึ่งชั่วโมงของผู้เยี่ยมชมที่ไม่ซ้ำคืออะไร?
  3. จำนวนการดูหน้าเว็บต่อผู้เข้าชม?
  4. ประเทศใดที่ผู้เข้าชมส่วนใหญ่มาจาก?
  5. คุณคาดหวังว่าอัตราการเข้าชมเว็บไซต์จะเพิ่มขึ้นในอีก 12 เดือนข้างหน้าหรือไม่ถ้าใช่
  6. คุณใช้งานแคมเปญ / จดหมายข่าวที่มีปริมาณการใช้งานสูง (ที่มีการใช้อย่างมีนัยสำคัญ) เป็นประจำหรือไม่?
  7. เว็บไซต์ของคุณมีการดาวน์โหลดดิจิทัลหรือไม่
  8. การใช้แบนด์วิดท์ปัจจุบันหรือไม่
  9. คุณต้องการบริการกรอง dDOS หรือไม่?

ข้อกำหนดด้านฮาร์ดแวร์

  1. การใช้พื้นที่ดิสก์ปัจจุบัน?
  2. คุณต้องการพื้นที่เก็บข้อมูลบันทึกระยะยาว (ปฏิบัติตาม PCI-DSS) หรือไม่
  3. คุณต้องการที่เก็บข้อมูลสำรองนอกสถานที่หรือไม่?
  4. คุณต้องการเรียกใช้ซอฟต์แวร์ผู้เชี่ยวชาญ / ซอฟต์แวร์สำรองอื่น ๆ บนเซิร์ฟเวอร์หรือไม่?
  5. ข้อบังคับว่าด้วยการปฏิบัติตาม PCI ของคุณบอกให้ใช้ไฟร์วอลล์ฮาร์ดแวร์หรือไม่
  6. คุณต้องการวิธีแก้ปัญหาข้อผิดพลาดความพร้อมใช้งานสูงหรือโหลดบาลานซ์หรือไม่?

การฝึกซ้อม / การพัฒนา

  1. คุณต้องการสภาพแวดล้อมเฉพาะสำหรับการจัดเตรียม / การพัฒนาหรือไม่?
  2. คุณต้องการสภาพแวดล้อมแบบ "ทดสอบสด" เพื่อให้ตรงกับสภาพแวดล้อม "สด" (สำหรับการทดสอบขั้นสุดท้ายก่อนสด) หรือไม่

งบ

  1. คุณมีงบประมาณรายเดือนหรือไม่?

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


ปรับขนาดความต้องการของคุณเอง

ตามกฎของหัวแม่มือก็เป็นไปได้ที่จะ

  1. สัมพันธ์ระดับการรับส่งข้อมูลโดยตรงกับความต้องการของ CPU ของคุณ
  2. เชื่อมโยงข้อกำหนด CPU ของคุณโดยตรงกับข้อกำหนด RAM
  3. เชื่อมโยงพื้นที่เก็บข้อมูล MySQL ของคุณโดยตรงกับข้อกำหนด RAM

การเลือกซีพียู

เริ่มแรกด้วยการคำนวณขนาดการรับส่งข้อมูลของคุณ

  • Magento demo store มาตรฐานสามารถส่งมอบได้ 230 แห่งต่อ GHz ต่อชั่วโมง
  • เว็บสโตร์ทั่วไปที่มีกิจกรรมผู้ใช้ของผู้ดูแลระบบกิจกรรมการพัฒนาการเพิ่มหรือการลบผลิตภัณฑ์สามารถเห็นการลดลงประมาณ 100% ถึง 115 ที่ไม่ซ้ำต่อ GHz ต่อชั่วโมง
  • ร้านค้าที่มีเทมเพลตที่สร้างขึ้นไม่ดี / หนักสามารถลดจำนวนลงอีก 100-200% เป็น 50 แห่งต่อ GHz ต่อชั่วโมง

เมื่อใช้ตัวเลขเหล่านี้คุณจะสามารถทำงานได้ตามที่คุณต้องการในแง่ของทรัพยากร CPU

เช่น. หากคุณมีผู้เข้าชมที่ไม่ซ้ำกัน 4,025 คนต่อวันคุณต้องใช้ทรัพยากร CPU รวม 28GHz (เช่น 8 Cores @ 3.5GHz หรือ 12 Cores @ 2.3GHz)

รายละเอียดที่สำคัญอื่น ๆ คือความเร็วของ CPU มันเป็นไปได้ที่จะมี:

  • เวลาในการโหลดหน้าเว็บช้าและรองรับการทำงานพร้อมกันในระดับต่ำ (CPU ความเร็วสัญญาณนาฬิกาต่ำ (GHz), ไม่กี่แกน)
  • เวลาโหลดหน้าเว็บที่รวดเร็ว แต่รองรับการทำงานพร้อมกันในระดับต่ำ (CPU ความเร็วสัญญาณนาฬิกาสูง (GHz), ไม่กี่คอร์)
  • เวลาโหลดหน้าเว็บช้า แต่รองรับการทำงานพร้อมกันสูง (CPU ความเร็วสัญญาณนาฬิกาต่ำ (GHz), คอร์จำนวนมาก)
  • เวลาในการโหลดหน้าเว็บอย่างรวดเร็วและรองรับการทำงานพร้อมกันสูง (CPU ความเร็วสัญญาณนาฬิกาสูง (GHz), คอร์จำนวนมาก)

การเลือกแรม

สำหรับเซิร์ฟเวอร์แบบสแตนด์อโลน (การกำหนดค่าที่ดีที่สุดสำหรับ Magento) กฎที่นี่คือ 2GB RAM / CPU Core ดังนั้นหากคุณมี 8 คอร์ดังนั้น RAM 16GB ควรเป็นค่าต่ำสุด

ในการหาสิ่งที่คุณต้องการเพิ่มเติมคุณต้องคำนึงถึงขนาดของแคตตาล็อกของคุณ การทำเช่นนี้เป็นเรื่องง่ายโดยเพิ่มจำนวนการดูร้านค้าของคุณเทียบกับขนาดแคตตาล็อกทั้งหมด

เช่น. ในกรณีของคุณมุมมอง 1 ร้านค้า * 10,000 ผลิตภัณฑ์ = 10,000

คำแนะนำของเราคือ

<1,000    = 8GB   RAM
<50,000   = 16GB  RAM
<100,000  = 32GB  RAM
<100,000  = 32GB  RAM
<250,000  = 48GB  RAM
<500,000  = 64GB  RAM
<750,000  = 96GB  RAM
>999,999  = 128GB RAM   

คุณต้องการใช้ตัวเลขสองตัวที่สูงขึ้น (เช่นจากอัตราส่วน CPU Core: RAM และข้อกำหนดแคตตาล็อก) หรือการผสมผสานที่ลงตัวของทั้งสอง

การเลือก HDD

ช่วยให้ชัดเจนขึ้นสำหรับร้านค้า Magento โดยเฉลี่ย (เช่น <50k ผู้เข้าชม / วันที่ไม่ซ้ำกัน) วีโอไอพีไม่ได้ถูกผูกมัดโดย I / O - SSD จะไม่ทำให้ร้านวีโอไอพีของคุณเร็วขึ้น มันจะไม่ปรับปรุงการทำงานพร้อมกันและจะไม่ปรับปรุง TTFB ในทำนองเดียวกันการใช้ระดับ RAID แบบสไทรพ์ (เช่น RAID10) จะไม่ให้ประโยชน์เช่นกันเนื่องจากไฟล์เกือบทุกไฟล์บนดิสก์จะเล็กกว่าขนาดแถบ แต่อย่างใดดังนั้นจึงใช้ดิสก์เพียงแผ่นเดียวเท่านั้น

การจัดเก็บเวลาเพียงอย่างเดียวคือคอขวดที่อยู่ในบริการที่ต่อเนื่อง (เช่น cloud / VPS)

อย่างไรก็ตามมีข้อได้เปรียบที่แน่นอนในการ I / O ที่รวดเร็วกว่าการดำเนินการจัดเก็บ ด้วย SSD การทำงานของไฟล์ (เช่นสถานะ Git / SVN การสำรอง / กู้คืนการคัดลอกไดเรกทอรี ฯลฯ ) จะเร็วขึ้นอย่างมาก ชีวิตนักพัฒนาของคุณจะง่ายขึ้นอย่างมาก (ด้วยงานประจำที่เร็วกว่ามาก)

โปรดทราบว่าดิสก์ไดรฟ์บางตัวเท่านั้นที่ถูกสร้างขึ้น

  • SSD ราคาถูก / ระดับเดสก์ท็อปจะทำงานช้ากว่า HDD ทั่วไป
  • HDD ราคาถูก / ระดับเดสก์ท็อปจะทำงานช้ากว่าฮาร์ดดิสก์แบบองค์กร
  • HDD ราคาถูก / เกรดเดสก์ท็อปจะมีอัตรา NRE ต่ำ (ปกติคือ 10 ^ 14) เมื่อเทียบกับดิสก์องค์กร (ปกติคือ 10 ^ 16)

ดังนั้นโปรดเลือกดิสก์ไดรฟ์ที่สมควรได้รับในเซิร์ฟเวอร์นั่นคือ Intel DC S3700

การเลือกความจุเป็นเรื่องง่ายคุณแค่ต้องมีสองคำสั่ง

สำหรับรูทเอกสาร Magento

cd /path/to/magento/installation 
du -hsL . \
--exclude="/var/log" \
--exclude="/var/session" \
--exclude="/var/cache" \
--exclude="/var/full_page_cache" \
--exclude="/var/report" \
--exclude="/var/tmp" \
--exclude="/includes/src/"    

สำหรับฐานข้อมูล MySQL

SELECT 
IFNULL(B.engine,'Total') "Storage Engine", CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Data Size", CONCAT(LPAD(REPLACE(FORMAT(B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Index Size", CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Table Size" FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize,SUM(data_length+index_length) TSize 
FROM information_schema.tables 
  WHERE table_schema NOT IN ('mysql','information_schema','performance_schema') 
  AND engine IS NOT NULL 
GROUP BY engine 
WITH ROLLUP) B,(SELECT 3 pw) A 
ORDER BY TSize;

.

ใครที่จะเลือก

นั่นขึ้นอยู่กับคุณ ฉันไม่สามารถให้คำแนะนำ [แม้ว่ามันจะชัดเจน :)] - แต่คุณสามารถแสดงความคิดเห็นของคุณเองได้อย่างแน่นอน

  1. หากพวกเขามีฮาร์ดแวร์ให้ตรงกับความต้องการขั้นต่ำของคุณ
  2. หากพวกเขามีมรดก / ชื่อเสียงที่มั่นคงใน Magento (เช่นมีส่วนร่วมในเว็บไซต์เช่นนี้และแสดงให้เห็นถึงประสบการณ์จริง)
  3. หากพวกเขาสามารถให้การสาธิตร้านค้าของคุณบนโฮสติ้งของพวกเขา (เช่นเพื่อให้คุณสามารถดูว่ามันทำงานอย่างไร)
  4. หากพวกเขาสามารถตอบคำถามที่เกี่ยวข้องกับวีโอไอพีของคุณได้ทั้งหมด (เช่นลองทดสอบพวกเขาด้วยคำถามที่คุณเคยมีในอดีต
  5. หากราคาของพวกเขาตรงกับงบประมาณของคุณ
  6. ตรวจสอบให้แน่ใจว่าการสนับสนุนของพวกเขาตรงกับความคาดหวังของคุณ (เช่นคุณเต็มใจที่จะทำทุกอย่างด้วยตัวเองก่อนที่จะติดต่อฝ่ายสนับสนุนหรือคุณมีความคาดหวังว่าพวกเขาสามารถแก้ไขปัญหาวีโอไอพีของคุณในนามของคุณ)
  7. ตรวจสอบให้แน่ใจว่าขอบเขตของงานรวมตรงกับความต้องการของคุณ (เช่นการจัดการอย่างเต็มที่โลหะเปลือย ฯลฯ )
  8. หากโซลูชันสามารถปรับขนาดได้ (เช่นเป็นแพลตฟอร์มเซิร์ฟเวอร์เดียว - สามารถปรับให้เป็นโซลูชันแบบเซิร์ฟเวอร์หลายเครื่องได้)
  9. หากโซลูชันมีซอฟต์แวร์ทั้งหมดที่คุณต้องการสำหรับร้านค้า Magento ของคุณ (เช่น ElasticSearch / Sphinx / SOLR, Redis / Memcache, วานิช ฯลฯ )

มีบางอย่างที่จะเพิ่มที่นี่คุณจะได้รับโฮสต์สองประเภท

  • มีการจัดการ (เช่นที่เซิร์ฟเวอร์มีการตั้งค่าและดูแลอย่างสมบูรณ์)
  • ไม่มีการจัดการ (เช่นที่คุณตั้งค่าเซิร์ฟเวอร์ทั้งหมดด้วยตนเอง)

สิ่งที่เหมาะสมที่สุดสำหรับคุณขึ้นอยู่กับว่าทักษะของคุณคืออะไร ในความเห็นของฉันนักพัฒนาไม่ใช่ผู้ดูแลระบบ - เพียงเพราะคุณสามารถเรียกใช้apt-get install nginx- มันไม่ได้ทำให้คุณดูแลระบบที่มีประสบการณ์ ไม่เช่นนั้นเจ้าของร้านค้าใด ๆ ที่สามารถใช้ Magento Connect สามารถจัดอันดับตัวเองเป็นผู้พัฒนา!

การทำความเข้าใจบทบาทของคุณ (และข้อ จำกัด ) ในฐานะนักพัฒนาซอฟต์แวร์และให้ผู้ที่มีประสบการณ์ในการจัดการเซิร์ฟเวอร์มีค่ามาก ทุกคนสามารถติดตั้งชุดของแพคเกจ แต่ปรับแต่งการกำหนดค่าซอฟต์แวร์ให้มั่นใจว่ามีเสถียรภาพไม่มีข้อผิดพลาดปลอดภัยและประสิทธิภาพสูงเป็นสิ่งที่แตกต่างกัน

ฉันจะเท่านั้นที่เคยแนะนำเส้นทาง DIY ทั้งคนที่มีขนาดใหญ่ปริมาณของประสบการณ์การกำหนดค่าเซิร์ฟเวอร์วีโอไอพีที่ได้นำไปใช้พันเซิร์ฟเวอร์ก่อนที่จะมีการกำหนดค่าที่รู้จักกันผ่านการทดสอบและมีเสถียรภาพ มิฉะนั้นไปกับโฮสต์วีโอไอพีที่มีการจัดการที่รู้ว่าพวกเขากำลังทำอะไรอยู่และอนุญาตให้คุณทำงานของคุณได้อย่างต่อเนื่อง


แหล่งที่มา:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.