Làm thế nào để xác định yêu cầu lưu trữ


23

Chúng tôi đang chuẩn bị ra mắt 2 trang web thương mại điện tử sử dụng CE ver 1.9. Mỗi trang web sẽ bắt đầu với khoảng 10000 sku.

Những điều quan trọng chúng ta cần tìm kiếm từ một máy chủ web ... là những thứ như kích thước cơ sở dữ liệu, số lượng hình ảnh, vv .. quan trọng?

Rõ ràng, tốc độ tải trang cũng rất quan trọng.

Làm thế nào để chúng ta tốt nhất chọn một máy chủ thích hợp?

Cảm ơn bạn


Nước chào mừng trên MageOverflow. Thật không may, lưu trữ Magento là một điều phức tạp và có rất nhiều công ty ngoài đó mời bạn thảo luận với họ về yêu cầu của bạn. Không có cách nào để giới thiệu cho bạn bất cứ điều gì với nhiều thông tin hơn. Và với tất cả các thông tin, câu hỏi quá cụ thể là hữu ích.
Fabian Blechschmidt

@FabianBlechschmidt - Tôi không nghĩ là một câu hỏi trùng lặp của câu hỏi được đề cập. Và đó là một câu hỏi khá hợp lý tại đó. Tôi đã viết ra một câu trả lời khá kỹ lưỡng về các yêu cầu kích thước (tôi cũng sẽ đưa ra nhiều chi tiết hơn) và đủ chung chung để làm câu hỏi tham khảo thực sự tốt cho kích thước kiến ​​trúc.
Ben Lessani - Sonassi

Bạn là chuyên gia, vì vậy tôi đã bỏ phiếu để mở lại :-)
Fabian Blechschmidt

Câu trả lời:


31

Tuyên bố miễn trừ trách nhiệm: Sonassi là chủ nhà Magento


TL; DR - Một máy chủ tốt sẽ cho bạn biết chính xác những gì bạn cần (và biện minh cho nó). Bạn không nên tự làm điều này.

Khi một khách hàng tiếp cận chúng tôi, chúng tôi hỏi một vài câu hỏi để hiểu những yêu cầu hiện tại, yêu cầu cao nhất và yêu cầu trong tương lai là gì đối với cửa hàng của họ. Sau đó, chúng tôi sẽ cung cấp một khuyến nghị trên cơ sở đó.

Do chúng tôi có hàng ngàn cửa hàng Magento, chúng tôi hiểu khá chính xác về cơ sở hạ tầng cần thiết cho một bộ yêu cầu khách hàng nhất định, do đó chúng tôi khá dễ dàng đưa ra khuyến nghị (và dự đoán chính xác tài nguyên nào sẽ được sử dụng) khi họ thực sự đi trực tiếp

Chi tiết cần lưu ý ở đây là trong khi chúng tôi chắc chắn có thể cho bạn biết các yêu cầu đối với cơ sở hạ tầng của chúng tôi chạy MageStack - gần như chắc chắn sẽ không giống như một thiết lập ở nơi khác - vì vậy hãy lưu ý điều đó.

Hãy để người khác kích thước yêu cầu của bạn

Cửa hàng và danh mục

  1. Phiên bản Magento?
  2. Số lượng sản phẩm đơn giản trong danh mục?
  3. Số lượng danh mục trong danh mục?
  4. Số lượng thuộc tính trong danh mục?
  5. Số lượng tập thuộc tính trong danh mục?
  6. Số lượt xem cửa hàng Magento (Quản trị> Hệ thống> Quản lý cửa hàng)?
  7. Giao dịch mỗi ngày?
  8. Giao dịch cao điểm trong một giờ?

Lưu lượng và băng thông

  1. Mức độ của khách truy cập hàng ngày là gì?
  2. Đỉnh cao nhất trong một giờ của khách truy cập là gì?
  3. Số lượt xem trang trên mỗi khách truy cập?
  4. Du khách chủ yếu đến từ nước nào?
  5. Bạn có dự đoán lưu lượng truy cập trang web sẽ tăng lên trong 12 tháng tới không, nếu có, bao nhiêu?
  6. Bạn có vận hành các chiến dịch / bản tin có lưu lượng truy cập cao (có mức tăng đáng kể) một cách thường xuyên không?
  7. Trang web của bạn có cung cấp tải xuống kỹ thuật số không?
  8. Sử dụng băng thông hiện tại?
  9. Bạn có yêu cầu dịch vụ lọc dDOS không?

yêu cầu phần cứng

  1. Sử dụng không gian đĩa hiện tại?
  2. Bạn có yêu cầu lưu trữ nhật ký dài hạn (tuân thủ PCI-DSS) không?
  3. Bạn có yêu cầu lưu trữ sao lưu ngoài trang web?
  4. Bạn có cần chạy bất kỳ chuyên gia / phần mềm thay thế nào trên máy chủ không?
  5. Các quy định tuân thủ PCI của bạn có cho phép sử dụng tường lửa phần cứng không?
  6. Bạn có cần một giải pháp chịu lỗi, khả dụng cao hoặc cân bằng tải không?

Thực hành dàn dựng / phát triển

  1. Bạn có cần một môi trường dành riêng để dàn dựng / phát triển không?
  2. Bạn có yêu cầu môi trường Live Test Live để phù hợp với môi trường Live Live (để thử nghiệm trước khi phát trực tiếp) không?

Ngân sách

  1. Bạn có ngân sách hàng tháng không?

Sau đó, sử dụng thông tin này, gửi nó cho nhà cung cấp dịch vụ lưu trữ của bạn và xem những gì họ đề xuất.


Kích thước yêu cầu của riêng bạn

Theo nguyên tắc thông thường, có thể

  1. Tương quan trực tiếp mức lưu lượng của bạn với yêu cầu CPU của bạn
  2. Tương quan trực tiếp các yêu cầu CPU của bạn với các yêu cầu RAM
  3. Tương quan trực tiếp lưu trữ MySQL của bạn với các yêu cầu RAM

Lựa chọn CPU

Đầu tiên bắt đầu bằng cách tăng kích thước lưu lượng truy cập của bạn.

  • Một cửa hàng demo Magento tiêu chuẩn có khả năng cung cấp khoảng 230 đơn vị mỗi GHz, mỗi giờ.
  • Một cửa hàng web điển hình, với hoạt động của người dùng quản trị viên, hoạt động phát triển, thêm / xóa sản phẩm có thể thấy mức độ suy giảm này khoảng 100%, xuống còn 115 đơn vị mỗi GHz, mỗi giờ.
  • Một cửa hàng với một mẫu nặng / được xây dựng kém có thể giảm thêm 100-200%, xuống còn 50 đơn vị mỗi GHz, mỗi giờ.

Sử dụng những con số này, bạn có thể tìm ra chính xác những gì bạn cần về tài nguyên CPU.

Ví dụ. Nếu bạn có 4.025 khách truy cập duy nhất duy trì / ngày - bạn cần tổng tài nguyên CPU 28GHz (ví dụ: 8 lõi @ 3.5GHz hoặc 12 lõi @ 2.3GHz)

Chi tiết quan trọng khác là tốc độ của CPU, có thể có:

  • Thời gian tải trang chậm và hỗ trợ đồng thời thấp (CPU tốc độ xung nhịp thấp (GHz), vài lõi)
  • Thời gian tải trang nhanh, nhưng hỗ trợ đồng thời thấp (CPU tốc độ xung nhịp cao (GHz), vài lõi)
  • Thời gian tải trang chậm, nhưng hỗ trợ đồng thời cao (CPU tốc độ xung nhịp thấp (GHz), rất nhiều lõi)
  • Thời gian tải trang nhanh và hỗ trợ đồng thời cao (CPU tốc độ xung nhịp cao (GHz), rất nhiều lõi)

Lựa chọn RAM

Đối với một máy chủ độc lập (cấu hình tốt nhất cho Magento), quy tắc ở đây là 2GB RAM / CPU Core. Vì vậy, nếu bạn có 8 nhân, thì RAM 16GB là mức tối thiểu.

Để tìm ra những gì bạn cần ngoài việc này, bạn cần phải tính đến kích thước của danh mục của bạn. Làm điều này thật dễ dàng, nhân số lượt xem cửa hàng của bạn so với tổng kích thước danh mục.

Ví dụ. Trong trường hợp của bạn, 1 cửa hàng xem * 10.000 sản phẩm = 10.000

Khuyến nghị của chúng tôi là,

<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   

Bạn muốn lấy số cao hơn trong hai số (ví dụ: từ CPU Core: tỷ lệ RAM và yêu cầu danh mục) hoặc kết hợp hợp lý của hai số.

Lựa chọn ổ cứng

Hãy làm cho một cái gì đó rõ ràng, đối với cửa hàng Magento trung bình (ví dụ: <50 nghìn khách truy cập / ngày), Magento không bị ràng buộc bởi I / O - SSD sẽ không giúp cửa hàng Magento của bạn nhanh hơn; nó sẽ không cải thiện đồng thời và nó sẽ không cải thiện TTFB. Tương tự, sử dụng các cấp RAID sọc (ví dụ: RAID10) cũng sẽ không có lợi thế (vì hầu như mọi tệp trên đĩa sẽ nhỏ hơn kích thước sọc, vì vậy chỉ sử dụng một đĩa đơn).

Việc lưu trữ thời gian duy nhất là một nút cổ chai là trên các dịch vụ dự kiến ​​(ví dụ: đám mây / VPS).

Tuy nhiên, chắc chắn có những lợi thế để I / O nhanh vượt ra ngoài chính hoạt động của cửa hàng. Với SSD, các thao tác tệp (ví dụ: trạng thái Git / SVN, sao lưu / khôi phục, sao chép thư mục, v.v.) nhanh hơn đáng kể. Cuộc sống của nhà phát triển của bạn sẽ dễ dàng hơn đáng kể (với các công việc thường ngày nhanh hơn nhiều).

Cũng lưu ý rằng không phải tất cả các ổ đĩa được tạo ra bằng nhau.

  • SSD giá rẻ / loại máy tính để bàn sẽ hoạt động chậm hơn so với ổ cứng thông thường
  • Ổ cứng loại giá rẻ / máy tính để bàn sẽ hoạt động chậm hơn so với ổ cứng doanh nghiệp
  • Các ổ cứng giá rẻ / loại máy tính để bàn sẽ có tỷ lệ NRE kém (thường là 10 ^ 14) so ​​với các đĩa doanh nghiệp (thường là 10 ^ 16)

Vì vậy, hãy chắc chắn để thực sự chọn các ổ đĩa xứng đáng ở trong một máy chủ, Ie. Intel DC S3700.

Chọn năng lực rất dễ, bạn chỉ cần hai lệnh,

Đối với tài liệu gốc 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/"    

Đối với DB DB

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;

.

Chọn ai

Vâng, đó là tùy thuộc vào bạn. Tôi không thể đưa ra một đề nghị [mặc dù nó sẽ rõ ràng :)] - nhưng bạn chắc chắn có thể đưa ra ý kiến ​​của riêng mình,

  1. Nếu họ có phần cứng phù hợp với yêu cầu tối thiểu của bạn
  2. Nếu họ có một di sản / danh tiếng vững chắc ở Magento (nghĩa là tham gia vào các trang web như thế này và thể hiện trải nghiệm thực tế)
  3. Nếu họ có thể cung cấp một bản trình diễn về cửa hàng của bạn, trên máy chủ của họ (ví dụ: để bạn có thể thấy chính xác cách thức hoạt động của nó)
  4. Nếu họ có thể trả lời bất kỳ và tất cả các câu hỏi liên quan đến Magento của bạn (ví dụ: hãy thử kiểm tra chúng bằng các câu hỏi bạn đã có trong quá khứ và xem cách họ trả lời nó)
  5. Nếu giá của họ phù hợp với ngân sách của bạn
  6. Đảm bảo sự hỗ trợ của họ phù hợp với mong đợi của bạn (ví dụ: bạn có sẵn sàng thực hiện tất cả các công việc cần thiết trước khi liên hệ với bộ phận hỗ trợ hay bạn có kỳ vọng họ có thể gỡ lỗi cho các vấn đề Magento của bạn không)
  7. Đảm bảo phạm vi công việc bao gồm phù hợp với nhu cầu của bạn (ví dụ: được quản lý hoàn toàn, kim loại trần, v.v.)
  8. Nếu giải pháp có thể mở rộng (nghĩa là nền tảng một máy chủ - nó có thể mở rộng thành một giải pháp đa máy chủ).
  9. Nếu giải pháp có tất cả phần mềm bạn cần cho cửa hàng Magento của bạn (Ví dụ: ElasticSearch / Sphinx / SOLR, Redis / Memcache, Varnish, v.v.)

Có một cái gì đó để thêm vào đây, bạn sẽ nhận được hai loại máy chủ lưu trữ

  • Được quản lý (ví dụ: nơi máy chủ được thiết lập và chăm sóc hoàn toàn)
  • Không được quản lý (ví dụ: nơi bạn tự thiết lập toàn bộ máy chủ)

Điều gì là thích hợp nhất cho bạn thực sự phụ thuộc vào kỹ năng của bạn là gì. Theo ý kiến ​​trung thực của tôi, các nhà phát triển không phải là quản trị viên hệ thống - chỉ vì bạn có thể chạy apt-get install nginx- nó không biến bạn thành một sysadmin có kinh nghiệm. Nếu không, bất kỳ chủ cửa hàng nào có thể sử dụng Magento Connect đều có thể tự phân loại mình là nhà phát triển!

Hiểu vai trò của bạn (và giới hạn) với tư cách là nhà phát triển và để ai đó có kinh nghiệm phù hợp trong việc quản lý máy chủ có giá trị cao. Bất cứ ai cũng có thể cài đặt một loạt các gói, nhưng điều chỉnh cấu hình phần mềm, đảm bảo nó ổn định, không có lỗi, an toàn và hiệu suất cao là một điều hoàn toàn khác.

Tôi chỉ muốn giới thiệu toàn bộ tuyến đường DIY cho những người có nhiều kinh nghiệm cấu hình máy chủ Magento, những người đã triển khai hàng ngàn máy chủ trước đây, với các cấu hình đã được thử nghiệm và ổn định. Nếu không, hãy đi với một máy chủ Magento được quản lý để biết họ đang làm gì và cho phép bạn thực hiện công việc của mình không bị gián đoạn.


Nguồn:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.