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
- Phiên bản Magento?
- Số lượng sản phẩm đơn giản trong danh mục?
- Số lượng danh mục trong danh mục?
- Số lượng thuộc tính trong danh mục?
- Số lượng tập thuộc tính trong danh mục?
- Số lượt xem cửa hàng Magento (Quản trị> Hệ thống> Quản lý cửa hàng)?
- Giao dịch mỗi ngày?
- Giao dịch cao điểm trong một giờ?
Lưu lượng và băng thông
- Mức độ của khách truy cập hàng ngày là gì?
- Đỉnh cao nhất trong một giờ của khách truy cập là gì?
- Số lượt xem trang trên mỗi khách truy cập?
- Du khách chủ yếu đến từ nước nào?
- 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?
- 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?
- Trang web của bạn có cung cấp tải xuống kỹ thuật số không?
- Sử dụng băng thông hiện tại?
- Bạn có yêu cầu dịch vụ lọc dDOS không?
yêu cầu phần cứng
- Sử dụng không gian đĩa hiện tại?
- Bạn có yêu cầu lưu trữ nhật ký dài hạn (tuân thủ PCI-DSS) không?
- Bạn có yêu cầu lưu trữ sao lưu ngoài trang web?
- 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?
- 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?
- 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
- 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?
- 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
- 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ể
- 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
- 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
- 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,
- 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
- 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ế)
- 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ó)
- 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ó)
- Nếu giá của họ phù hợp với ngân sách của bạn
- Đả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)
- Đả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.)
- 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ủ).
- 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: